From e9a77d64952862d28870acdc41068de62914b418 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 04 Jul 2022 14:06:58 +0800
Subject: [PATCH] add cms template

---
 src/main/java/com/xcong/farmer/cms/modules/system/dto/TemplateListDto.java                 |   24 ++++++++
 src/main/java/com/xcong/farmer/cms/modules/system/service/ICmsTemplateService.java         |   17 +++++
 src/main/java/com/xcong/farmer/cms/modules/system/mapper/CmsTemplateMapper.java            |    7 ++
 src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/CmsTemplateServiceImpl.java |   48 ++++++++++++++++
 src/main/resources/mapper/CmsTemplateMapper.xml                                            |   14 ++++
 src/main/java/com/xcong/farmer/cms/modules/system/entity/CmsTemplateEntity.java            |    2 
 src/main/java/com/xcong/farmer/cms/modules/system/controller/CmsTemplateController.java    |   47 +++++++++++++++
 src/main/java/com/xcong/farmer/cms/modules/system/util/LoginUserUtil.java                  |    4 +
 8 files changed, 163 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/controller/CmsTemplateController.java b/src/main/java/com/xcong/farmer/cms/modules/system/controller/CmsTemplateController.java
new file mode 100644
index 0000000..8b0dcea
--- /dev/null
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/controller/CmsTemplateController.java
@@ -0,0 +1,47 @@
+package com.xcong.farmer.cms.modules.system.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.xcong.farmer.cms.common.response.Result;
+import com.xcong.farmer.cms.modules.system.dto.TemplateListDto;
+import com.xcong.farmer.cms.modules.system.entity.CmsTemplateEntity;
+import com.xcong.farmer.cms.modules.system.service.ICmsTemplateService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+
+/**
+ * @author wzy
+ * @date 2022-07-04
+ **/
+@RestController
+@RequestMapping(value = "/api/template")
+@Api(value = "CmsTemplateController", tags = "模板接口类")
+public class CmsTemplateController {
+
+    @Autowired
+    private ICmsTemplateService cmsTemplateService;
+
+    @ApiOperation(value = "上传模板", notes = "上传模板接口")
+    @PostMapping(value = "/uploadTemplate")
+    public Result uploadTemplate(MultipartFile file) {
+
+        return Result.ok("上传成功");
+    }
+
+    @ApiOperation(value = "模板列表", notes = "模板列表接口")
+    @PostMapping(value = "/list")
+    public Result list(@RequestBody @Valid TemplateListDto templateListDto) {
+        return Result.ok(cmsTemplateService.findInPage(templateListDto));
+    }
+
+    @ApiOperation(value = "删除模板", notes = "删除模板")
+    @PostMapping(value = "/delete/{id}")
+    public Result delete(@PathVariable("id") Long id) {
+        cmsTemplateService.delete(id);
+        return Result.ok("删除成功");
+    }
+}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/dto/TemplateListDto.java b/src/main/java/com/xcong/farmer/cms/modules/system/dto/TemplateListDto.java
new file mode 100644
index 0000000..e57f675
--- /dev/null
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/dto/TemplateListDto.java
@@ -0,0 +1,24 @@
+package com.xcong.farmer.cms.modules.system.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wzy
+ * @date 2022-07-04
+ **/
+@Data
+@ApiModel(value = "TemplateListDto", description = "模板列表接口参数接收类")
+public class TemplateListDto {
+
+    @NotNull(message = "参数不能为空")
+    @ApiModelProperty(value = "每页条数", example = "10")
+    private Integer pageSize;
+
+    @NotNull(message = "参数不能为空")
+    @ApiModelProperty(value = "第几页", example = "1")
+    private Integer pageNum;
+}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/entity/CmsTemplateEntity.java b/src/main/java/com/xcong/farmer/cms/modules/system/entity/CmsTemplateEntity.java
index 8d8dfa1..07a83b9 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/entity/CmsTemplateEntity.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/entity/CmsTemplateEntity.java
@@ -22,4 +22,6 @@
      * 类型 1-文件 2-代码
      */
     private Integer type;
+
+    private Long companyId;
 }
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/mapper/CmsTemplateMapper.java b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/CmsTemplateMapper.java
index 64d67fb..6e8a7c8 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/mapper/CmsTemplateMapper.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/CmsTemplateMapper.java
@@ -1,7 +1,14 @@
 package com.xcong.farmer.cms.modules.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xcong.farmer.cms.modules.system.entity.CmsTemplateEntity;
+import org.apache.ibatis.annotations.Param;
 
 public interface CmsTemplateMapper extends BaseMapper<CmsTemplateEntity> {
+
+    IPage<CmsTemplateEntity> selectInPage(IPage<CmsTemplateEntity> page, @Param("record") CmsTemplateEntity cmsTemplateEntity);
+
+    int delete(@Param("id") Long id, @Param("companyId") Long companyId);
 }
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/ICmsTemplateService.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/ICmsTemplateService.java
new file mode 100644
index 0000000..9633445
--- /dev/null
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/ICmsTemplateService.java
@@ -0,0 +1,17 @@
+package com.xcong.farmer.cms.modules.system.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xcong.farmer.cms.modules.system.dto.TemplateListDto;
+import com.xcong.farmer.cms.modules.system.entity.CmsTemplateEntity;
+import org.springframework.web.multipart.MultipartFile;
+
+public interface ICmsTemplateService extends IService<CmsTemplateEntity> {
+
+    void updateTemplate(MultipartFile file);
+
+    IPage<CmsTemplateEntity> findInPage(TemplateListDto templateListDto);
+
+    void delete(Long id);
+}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/CmsTemplateServiceImpl.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/CmsTemplateServiceImpl.java
new file mode 100644
index 0000000..f1795c0
--- /dev/null
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/CmsTemplateServiceImpl.java
@@ -0,0 +1,48 @@
+package com.xcong.farmer.cms.modules.system.service.Impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xcong.farmer.cms.core.template.TemplateConfiguration;
+import com.xcong.farmer.cms.modules.system.dto.TemplateListDto;
+import com.xcong.farmer.cms.modules.system.entity.CmsTemplateEntity;
+import com.xcong.farmer.cms.modules.system.mapper.CmsTemplateMapper;
+import com.xcong.farmer.cms.modules.system.service.ICmsTemplateService;
+import com.xcong.farmer.cms.modules.system.util.LoginUserUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * @author wzy
+ * @date 2022-07-04
+ **/
+@Service
+public class CmsTemplateServiceImpl extends ServiceImpl<CmsTemplateMapper, CmsTemplateEntity> implements ICmsTemplateService {
+
+    @Autowired
+    private TemplateConfiguration cfg;
+
+    @Override
+    public void updateTemplate(MultipartFile file) {
+        String templatePath = cfg.templatePath;
+        String staticPath = cfg.staticPath;
+    }
+
+    @Override
+    public IPage<CmsTemplateEntity> findInPage(TemplateListDto templateListDto) {
+        Long companyId = LoginUserUtil.getCompanyId();
+        IPage<CmsTemplateEntity> page = new Page<>(templateListDto.getPageNum(), templateListDto.getPageSize());
+
+        CmsTemplateEntity template = new CmsTemplateEntity();
+        template.setCompanyId(companyId);
+        return this.baseMapper.selectInPage(page, template);
+    }
+
+    @Override
+    public void delete(Long id) {
+        Long companyId = LoginUserUtil.getCompanyId();
+        this.baseMapper.delete(id, companyId);
+    }
+}
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/util/LoginUserUtil.java b/src/main/java/com/xcong/farmer/cms/modules/system/util/LoginUserUtil.java
index ac1f9e0..29c76ce 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/util/LoginUserUtil.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/util/LoginUserUtil.java
@@ -16,4 +16,8 @@
         HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
         return (UserEntity) request.getSession().getAttribute("user");
     }
+
+    public static Long getCompanyId() {
+        return getLoginUser().getCompanyId() == null ? 0L : getLoginUser().getCompanyId();
+    }
 }
diff --git a/src/main/resources/mapper/CmsTemplateMapper.xml b/src/main/resources/mapper/CmsTemplateMapper.xml
index 3b8d2c5..217f175 100644
--- a/src/main/resources/mapper/CmsTemplateMapper.xml
+++ b/src/main/resources/mapper/CmsTemplateMapper.xml
@@ -2,4 +2,18 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xcong.farmer.cms.modules.system.mapper.CmsTemplateMapper">
 
+    <select id="selectInPage" resultType="com.xcong.farmer.cms.modules.system.entity.CmsTemplateEntity">
+        select * from cms_template
+        <where>
+            1=1
+            <if test="record.companyId != null and record.companyId != 0">
+                and company_id=#{record.companyId}
+            </if>
+        </where>
+    </select>
+
+    <delete id="delete">
+        delete from cms_template
+        where id=#{id} and company_id=#{companyId}
+    </delete>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1