Quellcode durchsuchen

feat: 邮件模版配置功能开发

chenjianhua vor 7 Monaten
Ursprung
Commit
4dfaaf4e4b
25 geänderte Dateien mit 1027 neuen und 4 gelöschten Zeilen
  1. 8 0
      service-base/src/main/java/com/simuwang/base/mapper/EmailTemplateApplicationRuleMapper.java
  2. 5 0
      service-base/src/main/java/com/simuwang/base/mapper/EmailTemplateDataRuleMapper.java
  3. 14 0
      service-base/src/main/java/com/simuwang/base/mapper/EmailTemplateInfoMapper.java
  4. 11 0
      service-base/src/main/java/com/simuwang/base/mapper/EmailTemplateMappingMapper.java
  5. 14 2
      service-base/src/main/java/com/simuwang/base/pojo/dos/EmailTemplateInfoDO.java
  6. 19 0
      service-base/src/main/java/com/simuwang/base/pojo/dos/EmailTemplateMappingDO.java
  7. 1 1
      service-base/src/main/java/com/simuwang/base/pojo/EmailFileContentDTO.java
  8. 48 0
      service-base/src/main/java/com/simuwang/base/pojo/dto/query/EmailTemplateInfoPageQuery.java
  9. 72 0
      service-base/src/main/java/com/simuwang/base/pojo/dto/query/EmailTemplateSettingPageQuery.java
  10. 41 0
      service-base/src/main/java/com/simuwang/base/pojo/vo/EmailTemplateApplicationRuleVO.java
  11. 45 0
      service-base/src/main/java/com/simuwang/base/pojo/vo/EmailTemplateDataRuleVO.java
  12. 44 0
      service-base/src/main/java/com/simuwang/base/pojo/vo/EmailTemplateInfoVO.java
  13. 44 0
      service-base/src/main/java/com/simuwang/base/pojo/vo/EmailTemplateMappingVO.java
  14. 28 0
      service-base/src/main/java/com/simuwang/base/pojo/vo/SaveTemplateInfoVO.java
  15. 38 0
      service-base/src/main/resources/mapper/EmailTemplateApplicationRuleMapper.xml
  16. 32 0
      service-base/src/main/resources/mapper/EmailTemplateDataRuleMapper.xml
  17. 44 0
      service-base/src/main/resources/mapper/EmailTemplateInfoMapper.xml
  18. 62 0
      service-base/src/main/resources/mapper/EmailTemplateMappingMapper.xml
  19. 1 1
      service-daq/src/main/java/com/simuwang/daq/service/EmailTemplateService.java
  20. 77 0
      service-manage/src/main/java/com/simuwang/manage/api/template/TemplateController.java
  21. 68 0
      service-manage/src/main/java/com/simuwang/manage/api/template/TemplateSettingController.java
  22. 23 0
      service-manage/src/main/java/com/simuwang/manage/service/EmailTemplateInfoService.java
  23. 20 0
      service-manage/src/main/java/com/simuwang/manage/service/EmailTemplateMappingService.java
  24. 195 0
      service-manage/src/main/java/com/simuwang/manage/service/impl/EmailTemplateInfoServiceImpl.java
  25. 73 0
      service-manage/src/main/java/com/simuwang/manage/service/impl/EmailTemplateMappingServiceImpl.java

+ 8 - 0
service-base/src/main/java/com/simuwang/base/mapper/EmailTemplateApplicationRuleMapper.java

@@ -10,4 +10,12 @@ import java.util.List;
 public interface EmailTemplateApplicationRuleMapper {
 
     List<EmailTemplateApplicationRuleDO> queryByTemplateId(@Param("templateIdList") List<Integer> templateIdList);
+
+    void batchInsert(@Param("itemDoList") List<EmailTemplateApplicationRuleDO> templateApplicationRuleDOList);
+
+    void batchUpdate(@Param("itemDoList") List<EmailTemplateApplicationRuleDO> editList);
+
+    void deleteByTemplateId(@Param("templateIdList")List<Integer> idList,@Param("userId") Integer userId);
+
+    void deleteByIdList(@Param("idList") List<Integer> idList,@Param("userId") Integer userId);
 }

+ 5 - 0
service-base/src/main/java/com/simuwang/base/mapper/EmailTemplateDataRuleMapper.java

@@ -11,4 +11,9 @@ public interface EmailTemplateDataRuleMapper {
 
     List<EmailTemplateDataRuleDO> queryByTemplateId(@Param("templateIdList") List<Integer> templateIdList);
 
+    void batchInsert(@Param("itemDoList") List<EmailTemplateDataRuleDO> emailTemplateDataRuleDOList);
+
+    void batchUpdate(@Param("itemDoList")List<EmailTemplateDataRuleDO> editList);
+
+    void deleteByTemplateId(@Param("templateIdList")List<Integer> idList,@Param("userId") Integer userId);
 }

+ 14 - 0
service-base/src/main/java/com/simuwang/base/mapper/EmailTemplateInfoMapper.java

@@ -1,8 +1,22 @@
 package com.simuwang.base.mapper;
 
+import com.simuwang.base.pojo.dos.EmailTemplateInfoDO;
+import com.simuwang.base.pojo.dto.query.EmailTemplateInfoPageQuery;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 @Mapper
 public interface EmailTemplateInfoMapper {
 
+    List<EmailTemplateInfoDO> searchTemplateList(EmailTemplateInfoPageQuery emailTemplateInfoPageQuery);
+
+    long countTemplateList(EmailTemplateInfoPageQuery emailTemplateInfoPageQuery);
+
+    void deleteTemplateList(@Param("idList") List<Integer> idList,@Param("userId")Integer userId);
+
+    Integer saveTemplateInfo(EmailTemplateInfoDO emailDeletionInfoDO);
+
+    void updateTemplateInfo(EmailTemplateInfoDO emailDeletionInfoDO);
 }

+ 11 - 0
service-base/src/main/java/com/simuwang/base/mapper/EmailTemplateMappingMapper.java

@@ -1,6 +1,8 @@
 package com.simuwang.base.mapper;
 
 import com.simuwang.base.pojo.dos.EmailTemplateInfoDO;
+import com.simuwang.base.pojo.dos.EmailTemplateMappingDO;
+import com.simuwang.base.pojo.dto.query.EmailTemplateSettingPageQuery;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -11,4 +13,13 @@ public interface EmailTemplateMappingMapper {
 
     List<EmailTemplateInfoDO> queryByEmail(@Param("email") String email, @Param("type") Integer type);
 
+    List<EmailTemplateMappingDO> searchTemplateSettingList(EmailTemplateSettingPageQuery emailTemplateSettingPageQuery);
+
+    long countTemplateSettingList(EmailTemplateSettingPageQuery emailTemplateSettingPageQuery);
+
+    void deleteTemplateSetting(@Param("idList") List<Integer> idList, @Param("userId") Integer userId);
+
+    void updateEmailTemplateMappingDO(EmailTemplateMappingDO emailTemplateMappingDO);
+
+    void saveEmailTemplateMappingDO(EmailTemplateMappingDO emailTemplateMappingDO);
 }

+ 14 - 2
service-base/src/main/java/com/simuwang/base/pojo/dos/EmailTemplateInfoDO.java

@@ -1,8 +1,10 @@
 package com.simuwang.base.pojo.dos;
 
+import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.simuwang.base.pojo.vo.EmailTemplateInfoVO;
 import lombok.Data;
 
 import java.util.Date;
@@ -13,7 +15,7 @@ public class EmailTemplateInfoDO {
     /**
      * 主键Id
      */
-    @TableId(value = "id")
+    @TableId(value = "id",type = IdType.AUTO)
     private Integer id;
     /**
      * 模板名称
@@ -26,7 +28,7 @@ public class EmailTemplateInfoDO {
     @TableId(value = "type")
     private Integer type;
     /**
-     * 模版方向:1-行,2-列
+     * 模版方向:1-行,2-列,-1其他
      */
     @TableId(value = "direction")
     private Integer direction;
@@ -75,4 +77,14 @@ public class EmailTemplateInfoDO {
      */
     @TableField(value = "updatetime")
     private Date updateTime;
+
+    public EmailTemplateInfoVO toVO() {
+        EmailTemplateInfoVO vo = new EmailTemplateInfoVO();
+        vo.setName(this.name);
+        vo.setId(this.id);
+        vo.setStatus(this.status);
+        vo.setDescription(this.description);
+        vo.setType(this.type);
+        return vo;
+    }
 }

+ 19 - 0
service-base/src/main/java/com/simuwang/base/pojo/dos/EmailTemplateMappingDO.java

@@ -3,6 +3,7 @@ package com.simuwang.base.pojo.dos;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.simuwang.base.pojo.vo.EmailTemplateMappingVO;
 import lombok.Data;
 
 import java.util.Date;
@@ -70,4 +71,22 @@ public class EmailTemplateMappingDO {
      */
     @TableField(value = "updatetime")
     private Date updateTime;
+
+    /**
+     * 模版名称
+     */
+    private String templateName;
+
+    public EmailTemplateMappingVO toVO() {
+        EmailTemplateMappingVO vo = new EmailTemplateMappingVO();
+        vo.setTemplateId(this.templateId);
+        vo.setId(this.id);
+        vo.setCompanyName(this.companyName);
+        vo.setTitle(this.title);
+        vo.setDescription(this.description);
+        vo.setTemplateName(this.templateName);
+        vo.setStatus(this.status);
+        vo.setEmail(this.email);
+        return vo;
+    }
 }

+ 1 - 1
service-base/src/main/java/com/simuwang/base/pojo/EmailFileContentDTO.java

@@ -1,4 +1,4 @@
-package com.simuwang.base.pojo;
+package com.simuwang.base.pojo.dto;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 48 - 0
service-base/src/main/java/com/simuwang/base/pojo/dto/query/EmailTemplateInfoPageQuery.java

@@ -0,0 +1,48 @@
+package com.simuwang.base.pojo.dto.query;
+
+import com.simuwang.base.common.support.query.PageQuery;
+
+/**
+ * FileName: EmailTemplateInfoPageQuery
+ * Author:   chenjianhua
+ * Date:     2024/9/25 18:48
+ * Description: ${DESCRIPTION}
+ */
+public class EmailTemplateInfoPageQuery extends PageQuery {
+    /**
+     * 模版名称
+     */
+    private String name;
+    /**
+     * 模板类型:1-excel类型,2-正文类型
+     */
+    private Integer type;
+    /**
+     * 状态:0-关闭,1-开启
+     */
+    private Integer status;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+}

+ 72 - 0
service-base/src/main/java/com/simuwang/base/pojo/dto/query/EmailTemplateSettingPageQuery.java

@@ -0,0 +1,72 @@
+package com.simuwang.base.pojo.dto.query;
+
+import com.simuwang.base.common.support.query.PageQuery;
+
+/**
+ * FileName: EmailTemplateSettingPageQuery
+ * Author:   chenjianhua
+ * Date:     2024/9/25 20:26
+ * Description: ${DESCRIPTION}
+ */
+public class EmailTemplateSettingPageQuery extends PageQuery {
+    /**
+     * 模版名称(email_template_info.name)
+     */
+    private String templateName;
+    /**
+     * 标题名称
+     */
+    private String title;
+    /**
+     * 来源邮箱地址
+     */
+    private String email;
+    /**
+     * 公司名称
+     */
+    private String companyName;
+    /**
+     * 状态:0-关闭,1-开启
+     */
+    private Integer status;
+
+    public String getTemplateName() {
+        return templateName;
+    }
+
+    public void setTemplateName(String templateName) {
+        this.templateName = templateName;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public String getCompanyName() {
+        return companyName;
+    }
+
+    public void setCompanyName(String companyName) {
+        this.companyName = companyName;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+}

+ 41 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/EmailTemplateApplicationRuleVO.java

@@ -0,0 +1,41 @@
+package com.simuwang.base.pojo.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class EmailTemplateApplicationRuleVO {
+    /**
+     * 主键Id
+     */
+    private Integer id;
+    /**
+     * 模版id(email_template_info.id)
+     */
+    private Integer templateId;
+    /**
+     * 字段类型:1-邮件标题,2-附件名称,3-表格内容
+     */
+    private Integer type;
+    /**
+     * 表格行
+     */
+    private Integer row;
+    /**
+     * 表格列
+     */
+    private String column;
+    /**
+     * 包含关键字(多个以英文逗号隔开)
+     */
+    private String containKeyword;
+    /**
+     * 不包含关键字(多个以英文逗号隔开)
+     */
+    private String notContainKeyword;
+
+}

+ 45 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/EmailTemplateDataRuleVO.java

@@ -0,0 +1,45 @@
+package com.simuwang.base.pojo.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class EmailTemplateDataRuleVO {
+    /**
+     * 主键Id
+     */
+    private Integer id;
+    /**
+     * 模版id(email_template_info.id)
+     */
+    private Integer templateId;
+    /**
+     * 字段名称:1-备案编码,2-基金名称,3-净值日期,4-单位净值,5-累计净值,6-资产份额,7-资产净值
+     */
+    private Integer fieldName;
+    /**
+     * 提取位置:1-正文,2-正文表格
+     */
+    private Integer position;
+    /**
+     * 表格行
+     */
+    private Integer row;
+    /**
+     * 表格列
+     */
+    private String column;
+    /**
+     * 提取规则
+     */
+    private String fieldRule;
+    /**
+     * 单位转换
+     */
+    private Integer unitConvert;
+
+}

+ 44 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/EmailTemplateInfoVO.java

@@ -0,0 +1,44 @@
+package com.simuwang.base.pojo.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class EmailTemplateInfoVO {
+    /**
+     * 主键Id
+     */
+    private Integer id;
+    /**
+     * 模板名称
+     */
+    private String name;
+    /**
+     * 模板类型:1-excel类型,2-正文类型
+     */
+    private Integer type;
+    /**
+     * 模版方向:1-行,2-列,-1其他
+     */
+    private Integer direction;
+    /**
+     * 循环开始数字或者字母
+     */
+    private String startIndex;
+    /**
+     * 循环结束数字或者字母
+     */
+    private String endIndex;
+    /**
+     * 模版备注
+     */
+    private String description;
+    /**
+     * 状态:0-关闭,1-开启
+     */
+    private Integer status;
+}

+ 44 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/EmailTemplateMappingVO.java

@@ -0,0 +1,44 @@
+package com.simuwang.base.pojo.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class EmailTemplateMappingVO {
+    /**
+     * 主键Id
+     */
+    private Integer id;
+    /**
+     * 模版id(email_template_info.id)
+     */
+    private Integer templateId;
+    /**
+     * 模版名称(email_template_info.name)
+     */
+    private String templateName;
+    /**
+     * 标题名称
+     */
+    private String title;
+    /**
+     * 邮箱地址
+     */
+    private String email;
+    /**
+     * 公司名称
+     */
+    private String companyName;
+    /**
+     * 备注
+     */
+    private String description;
+    /**
+     * 状态:0-关闭,1-开启
+     */
+    private Integer status;
+}

+ 28 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/SaveTemplateInfoVO.java

@@ -0,0 +1,28 @@
+package com.simuwang.base.pojo.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * FileName: SaveTemplateInfoVO
+ * Author:   chenjianhua
+ * Date:     2024/9/25 19:06
+ * Description: ${DESCRIPTION}
+ */
+@Data
+public class SaveTemplateInfoVO {
+    /**
+     * 模版基本信息
+     */
+    private EmailTemplateInfoVO emailTemplateInfoVO;
+    /**
+     * 适用规则信息
+     */
+    private List<EmailTemplateApplicationRuleVO> emailTemplateApplicationRuleVOList;
+    /**
+     * 字段匹配位置信息
+     */
+    private List<EmailTemplateDataRuleVO> emailTemplateDataRuleVOList;
+
+}

+ 38 - 0
service-base/src/main/resources/mapper/EmailTemplateApplicationRuleMapper.xml

@@ -15,6 +15,44 @@
         <result column="updaterid" property="updaterId"/>
         <result column="updatetime" property="updateTime"/>
     </resultMap>
+    <insert id="batchInsert">
+        insert into PPW_EMAIL.email_template_application_rule(template_id,type,row,column,contain_keyword,not_contain_keyword,isvalid,creatorid,createtime,updaterid,updatetime)
+        values
+        <foreach collection="itemDoList" item="itemDo" index="index" separator=",">
+            (#{itemDo.templateId},#{itemDo.type},#{itemDo.row},#{itemDo.column},#{itemDo.containKeyword},#{itemDo.notContainKeyword},
+            #{itemDo.isvalid}, #{itemDo.creatorId}, #{itemDo.createTime}, #{itemDo.updaterId}, #{itemDo.updateTime})
+        </foreach>
+    </insert>
+    <update id="batchUpdate">
+        <foreach collection="itemDoList" item="itemDo" index="index" open="" close="" separator=";">
+            update PPW_EMAIL.email_template_application_rule
+            <set>
+                template_id=#{itemDo.templateId},
+                type = #{itemDo.type},
+                row=#{itemDo.row},
+                column=#{itemDo.column},
+                contain_keyword=#{itemDo.containKeyword},
+                not_contain_keyword=#{itemDo.notContainKeyword},
+                updatetime=#{itemDo.updateTime},
+                updaterid=#{itemDo.updaterId}
+            </set>
+            where isvalid = 1 and id=#{itemDo.id}
+        </foreach>
+    </update>
+    <update id="deleteByTemplateId">
+        update PPW_EMAIL.email_template_application_rule set isvalid=0,updatetime=sysdate(),updaterid=#{userId}
+        and template_id in
+        <foreach collection="templateIdList" index="index" item="templateId" open="(" separator="," close=")">
+            #{templateId}
+        </foreach>
+    </update>
+    <delete id="deleteByIdList">
+        update PPW_EMAIL.email_template_application_rule set isvalid=0,updatetime=sysdate(),updaterid=#{userId}
+        where isvalid = 1 and id in
+        <foreach collection="idList" index="index" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
 
     <select id="queryByTemplateId" resultMap="BaseResultMap">
         select *

+ 32 - 0
service-base/src/main/resources/mapper/EmailTemplateDataRuleMapper.xml

@@ -16,6 +16,38 @@
         <result column="updaterid" property="updaterId"/>
         <result column="updatetime" property="updateTime"/>
     </resultMap>
+    <insert id="batchInsert">
+        insert into PPW_EMAIL.email_template_data_rule(template_id,field_name,position,row,column,field_rule,unit_convert,isvalid,creatorid,createtime,updaterid,updatetime)
+        values
+        <foreach collection="itemDoList" item="itemDo" index="index" separator=",">
+            (#{itemDo.templateId},#{itemDo.fieldName},#{itemDo.position},#{itemDo.row},#{itemDo.column},#{itemDo.fieldRule},#{itemDo.unitConvert},
+            #{itemDo.isvalid}, #{itemDo.creatorId}, #{itemDo.createTime}, #{itemDo.updaterId}, #{itemDo.updateTime})
+        </foreach>
+    </insert>
+    <update id="batchUpdate">
+        <foreach collection="itemDoList" item="itemDo" index="index" open="" close="" separator=";">
+            update PPW_EMAIL.email_template_data_rule
+            <set>
+                template_id=#{itemDo.templateId},
+                field_name = #{itemDo.fieldName},
+                position=#{itemDo.position},
+                row=#{itemDo.row},
+                column=#{itemDo.column},
+                field_rule=#{itemDo.fieldRule},
+                unit_convert=#{itemDo.unitConvert},
+                updatetime=#{itemDo.updateTime},
+                updaterid=#{itemDo.updaterId}
+            </set>
+            where isvalid = 1 and id=#{itemDo.id}
+        </foreach>
+    </update>
+    <update id="deleteByTemplateId">
+        update PPW_EMAIL.email_template_data_rule set isvalid=0,updatetime=sysdate(),updaterid=#{userId}
+        where isvalid=1 and template_id in
+        <foreach collection="templateIdList" index="index" item="templateId" open="(" separator="," close=")">
+            #{templateId}
+        </foreach>
+    </update>
 
     <select id="queryByTemplateId" resultMap="BaseResultMap">
         select *

+ 44 - 0
service-base/src/main/resources/mapper/EmailTemplateInfoMapper.xml

@@ -16,6 +16,50 @@
         <result column="updaterid" property="updaterId"/>
         <result column="updatetime" property="updateTime"/>
     </resultMap>
+    <insert id="saveTemplateInfo"  useGeneratedKeys="true" keyProperty="id">
+        insert into PPW_EMAIL.email_template_info(name,type,direction,start_index,end_index,description,status,isvalid,creatorid,createtime,updaterid,updatetime)
+        values
+            (#{name},#{type},#{direction},#{startIndex},#{endIndex},#{description},#{status},#{isvalid},#{creatorId},#{createTime},#{updaterId},#{updateTime})
+    </insert>
+    <update id="deleteTemplateList">
+        update PPW_EMAIL.email_template_info set isvalid=0,updatetime=sysdate(),updaterid=#{userId} where isvalid=1
+        and id in
+        <foreach item="id" collection="idList" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+    <update id="updateTemplateInfo">
+        update PPW_EMAIL.email_template_info set name=#{name},type=#{type},description=#{description},status=#{status},updatetime=#{updateTime},updaterid=#{updaterId}
+        where id=#{id} and isvalid=1
+    </update>
+    <select id="searchTemplateList" resultMap="BaseResultMap">
+        select id,name,type,direction,start_index,end_index,description,status,isvalid,creatorid,createtime,updaterid,updatetime
+        from PPW_EMAIL.email_template_info where isvalid=1
+        <if test="name != null and name !=''">
+            and name =#{name}
+        </if>
+        <if test="type != null">
+            and type =#{type}
+        </if>
+        <if test="status != null">
+            and status =#{status}
+        </if>
+        order by updatetime desc
+        limit #{offset},#{pageSize}
+    </select>
+    <select id="countTemplateList" resultType="java.lang.Long">
+        select count(1)
+        from PPW_EMAIL.email_template_info where isvalid=1
+        <if test="name != null and name !=''">
+            and name =#{name}
+        </if>
+        <if test="type != null">
+            and type =#{type}
+        </if>
+        <if test="status != null">
+            and status =#{status}
+        </if>
+    </select>
 
 
 </mapper>

+ 62 - 0
service-base/src/main/resources/mapper/EmailTemplateMappingMapper.xml

@@ -14,7 +14,25 @@
         <result column="createtime" property="createTime"/>
         <result column="updaterid" property="updaterId"/>
         <result column="updatetime" property="updateTime"/>
+        <result column="template_name" property="templateName"/>
     </resultMap>
+    <insert id="saveEmailTemplateMappingDO">
+        insert into PPW_EMAIL.email_template_mapping(template_id,title,email,company_name,description,status,isvalid,creatorid,createtime,updaterid,updatetime)
+        values
+            (#{templateId},#{title},#{email},#{companyName},#{description},#{status},#{isvalid},#{creatorId},#{createTime},#{updaterId},#{updateTime})
+    </insert>
+    <update id="deleteTemplateSetting">
+        update  PPW_EMAIL.email_template_mapping set isvalid=0,updatetime=sysdate(),updaterid=#{userId}
+        where isvalid=1 and id in
+        <foreach item="id" collection="idList" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+    <update id="updateEmailTemplateMappingDO">
+        update PPW_EMAIL.email_template_mapping set template_id=#{templateId},title=#{title},email=#{email},company_name=#{companyName},
+                                                    description=#{description}, status=#{status},updatetime=#{updateTime},updaterid=#{updaterId}
+        where isvalid=1 and id=#{id}
+    </update>
 
     <select id="queryByEmail" resultType="com.simuwang.base.pojo.dos.EmailTemplateInfoDO">
         select t1.template_id as id,
@@ -29,5 +47,49 @@
           and t1.isvalid = 1
           and t2.status = 1
     </select>
+    <select id="searchTemplateSettingList" resultMap="BaseResultMap">
+        select mapping.id,mapping.template_id,mapping.title,mapping.email,mapping.company_name,mapping.description,mapping.status
+        t.name as template_name
+        from PPW_EMAIL.email_template_mapping mapping
+            join PPW_EMAIL.email_template_info t on t.id = mapping.template_id and t.isvalid = 1 and t.status = 1
+        where mapping,isvalid=1
+        <if test="title != null and title != ''">
+            mapping.title like concat('%',#{title},'%')
+        </if>
+        <if test="email != null and email != ''">
+            mapping.email like concat('%',#{email},'%')
+        </if>
+        <if test="companyName != null and companyName != ''">
+            mapping.company_name like concat('%',#{companyName},'%')
+        </if>
+        <if test="templateName != null and templateName != ''">
+            t.name like concat('%',#{templateName},'%')
+        </if>
+        <if test="status != null">
+            mapping.status=#{status}
+        </if>
+        limit #{offset},#{pageSize}
+    </select>
+    <select id="countTemplateSettingList" resultType="java.lang.Long">
+        select count(mapping.id)
+        from PPW_EMAIL.email_template_mapping mapping
+        join PPW_EMAIL.email_template_info t on t.id = mapping.template_id and t.isvalid = 1 and t.status = 1
+        where mapping,isvalid=1
+        <if test="title != null and title != ''">
+            mapping.title like concat('%',#{title},'%')
+        </if>
+        <if test="email != null and email != ''">
+            mapping.email like concat('%',#{email},'%')
+        </if>
+        <if test="companyName != null and companyName != ''">
+            mapping.company_name like concat('%',#{companyName},'%')
+        </if>
+        <if test="templateName != null and templateName != ''">
+            t.name like concat('%',#{templateName},'%')
+        </if>
+        <if test="status != null">
+            mapping.status=#{status}
+        </if>
+    </select>
 
 </mapper>

+ 1 - 1
service-daq/src/main/java/com/simuwang/daq/service/EmailTemplateService.java

@@ -14,7 +14,7 @@ import com.simuwang.base.common.util.NavDataUtil;
 import com.simuwang.base.mapper.EmailTemplateApplicationRuleMapper;
 import com.simuwang.base.mapper.EmailTemplateDataRuleMapper;
 import com.simuwang.base.mapper.EmailTemplateMappingMapper;
-import com.simuwang.base.pojo.EmailFileContentDTO;
+import com.simuwang.base.pojo.dto.EmailFileContentDTO;
 import com.simuwang.base.pojo.dos.EmailTemplateApplicationRuleDO;
 import com.simuwang.base.pojo.dos.EmailTemplateDataRuleDO;
 import com.simuwang.base.pojo.dos.EmailTemplateInfoDO;

+ 77 - 0
service-manage/src/main/java/com/simuwang/manage/api/template/TemplateController.java

@@ -0,0 +1,77 @@
+package com.simuwang.manage.api.template;
+
+import com.simuwang.base.common.support.MybatisPage;
+import com.simuwang.base.pojo.dto.query.DeletionPageQuery;
+import com.simuwang.base.pojo.dto.query.EmailTemplateInfoPageQuery;
+import com.simuwang.base.pojo.vo.*;
+import com.simuwang.logging.SystemLog;
+import com.simuwang.manage.service.EmailTemplateInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * FileName: TemplateController
+ * Author:   chenjianhua
+ * Date:     2024/9/25 18:46
+ * Description: ${DESCRIPTION}
+ */
+@RestController
+@RequestMapping("/v1/template")
+public class TemplateController {
+
+    @Autowired
+    private EmailTemplateInfoService emailTemplateInfoService;
+
+    /**
+     * 模版详情页面展示数据
+     * @param emailTemplateInfoPageQuery
+     * @return
+     */
+    @SystemLog(value = "模版详情页面展示数据")
+    @RequestMapping("search-template-list")
+    public MybatisPage<EmailTemplateInfoVO> searchTemplateList(EmailTemplateInfoPageQuery emailTemplateInfoPageQuery){
+        MybatisPage<EmailTemplateInfoVO> result = emailTemplateInfoService.searchTemplateList(emailTemplateInfoPageQuery);
+        return result;
+    }
+
+
+    /**
+     * 批量删除模版
+     * @param idListVO
+     * @return
+     */
+    @SystemLog(value = "批量删除模版")
+    @RequestMapping("delete-template-list")
+    public boolean deleteTemplateList(@RequestBody IdListVO idListVO){
+        emailTemplateInfoService.deleteTemplateList(idListVO);
+        return true;
+    }
+
+
+    /**
+     * 批量删除模版
+     * @param saveTemplateInfoVO
+     * @return
+     */
+    @SystemLog(value = "保存模版信息")
+    @RequestMapping("save-template-list")
+    public boolean saveTemplateList(@RequestBody SaveTemplateInfoVO saveTemplateInfoVO){
+        emailTemplateInfoService.saveTemplateList(saveTemplateInfoVO);
+        return true;
+    }
+
+    /**
+     * 批量删除适用规则
+     * @param idListVO
+     * @return
+     */
+    @SystemLog(value = "批量删除适用规则")
+    @RequestMapping("delete-application-rule")
+    public boolean deleteApplicationRuleList(@RequestBody IdListVO idListVO){
+        emailTemplateInfoService.deleteApplicationRuleList(idListVO);
+        return true;
+    }
+
+}

+ 68 - 0
service-manage/src/main/java/com/simuwang/manage/api/template/TemplateSettingController.java

@@ -0,0 +1,68 @@
+package com.simuwang.manage.api.template;
+
+import com.simuwang.base.common.support.MybatisPage;
+import com.simuwang.base.pojo.dto.query.EmailTemplateInfoPageQuery;
+import com.simuwang.base.pojo.dto.query.EmailTemplateSettingPageQuery;
+import com.simuwang.base.pojo.vo.EmailTemplateInfoVO;
+import com.simuwang.base.pojo.vo.EmailTemplateMappingVO;
+import com.simuwang.base.pojo.vo.IdListVO;
+import com.simuwang.base.pojo.vo.SaveTemplateInfoVO;
+import com.simuwang.logging.SystemLog;
+import com.simuwang.manage.service.EmailTemplateInfoService;
+import com.simuwang.manage.service.EmailTemplateMappingService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * FileName: TemplateController
+ * Author:   chenjianhua
+ * Date:     2024/9/25 18:46
+ * Description: ${DESCRIPTION}
+ */
+@RestController
+@RequestMapping("/v1/template-setting")
+public class TemplateSettingController {
+
+    @Autowired
+    private EmailTemplateMappingService emailTemplateMappingService;
+
+    /**
+     * 模版设置页面展示数据
+     * @param emailTemplateSettingPageQuery
+     * @return
+     */
+    @SystemLog(value = "模版设置页面展示数据")
+    @RequestMapping("search-template-setting-list")
+    public MybatisPage<EmailTemplateMappingVO> searchTemplateSettingList(EmailTemplateSettingPageQuery emailTemplateSettingPageQuery){
+        MybatisPage<EmailTemplateMappingVO> result = emailTemplateMappingService.searchTemplateSettingList(emailTemplateSettingPageQuery);
+        return result;
+    }
+
+
+    /**
+     * 批量删除模版设置
+     * @param idListVO
+     * @return
+     */
+    @SystemLog(value = "批量删除模版设置")
+    @RequestMapping("delete-template-setting")
+    public boolean deleteTemplateSetting(@RequestBody IdListVO idListVO){
+        emailTemplateMappingService.deleteTemplateSetting(idListVO);
+        return true;
+    }
+
+
+    /**
+     * 保存模版设置
+     * @param emailTemplateMappingVO
+     * @return
+     */
+    @SystemLog(value = "保存模版设置")
+    @RequestMapping("save-template-setting")
+    public boolean saveTemplateSetting(@RequestBody EmailTemplateMappingVO emailTemplateMappingVO){
+        emailTemplateMappingService.saveTemplateSetting(emailTemplateMappingVO);
+        return true;
+    }
+}

+ 23 - 0
service-manage/src/main/java/com/simuwang/manage/service/EmailTemplateInfoService.java

@@ -0,0 +1,23 @@
+package com.simuwang.manage.service;
+
+import com.simuwang.base.common.support.MybatisPage;
+import com.simuwang.base.pojo.dto.query.EmailTemplateInfoPageQuery;
+import com.simuwang.base.pojo.vo.EmailTemplateInfoVO;
+import com.simuwang.base.pojo.vo.IdListVO;
+import com.simuwang.base.pojo.vo.SaveTemplateInfoVO;
+
+/**
+ * FileName: EmailTemplateInfoService
+ * Author:   chenjianhua
+ * Date:     2024/9/25 18:50
+ * Description: ${DESCRIPTION}
+ */
+public interface EmailTemplateInfoService {
+    MybatisPage<EmailTemplateInfoVO> searchTemplateList(EmailTemplateInfoPageQuery emailTemplateInfoPageQuery);
+
+    void deleteTemplateList(IdListVO idListVO);
+
+    void saveTemplateList(SaveTemplateInfoVO saveTemplateInfoVO);
+
+    void deleteApplicationRuleList(IdListVO idListVO);
+}

+ 20 - 0
service-manage/src/main/java/com/simuwang/manage/service/EmailTemplateMappingService.java

@@ -0,0 +1,20 @@
+package com.simuwang.manage.service;
+
+import com.simuwang.base.common.support.MybatisPage;
+import com.simuwang.base.pojo.dto.query.EmailTemplateSettingPageQuery;
+import com.simuwang.base.pojo.vo.EmailTemplateMappingVO;
+import com.simuwang.base.pojo.vo.IdListVO;
+
+/**
+ * FileName: EmailTemplateMappingService
+ * Author:   chenjianhua
+ * Date:     2024/9/25 20:25
+ * Description: ${DESCRIPTION}
+ */
+public interface EmailTemplateMappingService {
+    MybatisPage<EmailTemplateMappingVO> searchTemplateSettingList(EmailTemplateSettingPageQuery emailTemplateSettingPageQuery);
+
+    void deleteTemplateSetting(IdListVO idListVO);
+
+    void saveTemplateSetting(EmailTemplateMappingVO emailTemplateMappingVO);
+}

+ 195 - 0
service-manage/src/main/java/com/simuwang/manage/service/impl/EmailTemplateInfoServiceImpl.java

@@ -0,0 +1,195 @@
+package com.simuwang.manage.service.impl;
+
+import com.simuwang.base.common.support.MybatisPage;
+import com.simuwang.base.common.util.DateUtils;
+import com.simuwang.base.common.util.StringUtil;
+import com.simuwang.base.mapper.EmailTemplateApplicationRuleMapper;
+import com.simuwang.base.mapper.EmailTemplateDataRuleMapper;
+import com.simuwang.base.mapper.EmailTemplateInfoMapper;
+import com.simuwang.base.pojo.dos.EmailTemplateApplicationRuleDO;
+import com.simuwang.base.pojo.dos.EmailTemplateDataRuleDO;
+import com.simuwang.base.pojo.dos.EmailTemplateInfoDO;
+import com.simuwang.base.pojo.dto.query.EmailTemplateInfoPageQuery;
+import com.simuwang.base.pojo.vo.*;
+import com.simuwang.manage.service.EmailTemplateInfoService;
+import com.simuwang.shiro.utils.UserUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * FileName: EmailTemplateInfoServiceImpl
+ * Author:   chenjianhua
+ * Date:     2024/9/25 18:50
+ * Description: ${DESCRIPTION}
+ */
+@Service
+public class EmailTemplateInfoServiceImpl implements EmailTemplateInfoService {
+
+    @Autowired
+    private EmailTemplateInfoMapper emailTemplateInfoMapper;
+
+    @Autowired
+    private EmailTemplateDataRuleMapper emailTemplateDataRuleMapper;
+
+    @Autowired
+    private EmailTemplateApplicationRuleMapper emailTemplateApplicationRuleMapper;
+
+    @Override
+    public MybatisPage<EmailTemplateInfoVO> searchTemplateList(EmailTemplateInfoPageQuery emailTemplateInfoPageQuery) {
+        List<EmailTemplateInfoDO> emailTemplateInfoDOList = emailTemplateInfoMapper.searchTemplateList(emailTemplateInfoPageQuery);
+        List<EmailTemplateInfoVO> emailTemplateInfoVOList = emailTemplateInfoDOList.stream().map(EmailTemplateInfoDO::toVO).collect(Collectors.toList());
+        long total = emailTemplateInfoMapper.countTemplateList(emailTemplateInfoPageQuery);
+        return MybatisPage.of(total,emailTemplateInfoVOList);
+    }
+
+    @Override
+    public void deleteTemplateList(IdListVO idListVO) {
+        Integer userId = UserUtils.getLoginUser().getUserId();
+        List<Integer> idList = idListVO.getIdList();
+        emailTemplateInfoMapper.deleteTemplateList(idList,userId);
+        emailTemplateApplicationRuleMapper.deleteByTemplateId(idList,userId);
+        emailTemplateDataRuleMapper.deleteByTemplateId(idList,userId);
+    }
+
+    @Override
+    public void saveTemplateList(SaveTemplateInfoVO saveTemplateInfoVO) {
+        EmailTemplateInfoVO emailTemplateInfoVO = saveTemplateInfoVO.getEmailTemplateInfoVO();
+        EmailTemplateInfoDO emailDeletionInfoDO = toEmailTemplateInfoDO(emailTemplateInfoVO);
+        Integer templateId;
+        if(StringUtil.isNull(emailDeletionInfoDO.getId())){
+            //保存
+            templateId = emailTemplateInfoMapper.saveTemplateInfo(emailDeletionInfoDO);
+            List<EmailTemplateDataRuleVO> emailTemplateDataRuleVOList = saveTemplateInfoVO.getEmailTemplateDataRuleVOList();
+            if(emailTemplateDataRuleVOList.size() > 0){
+                emailTemplateDataRuleVOList.forEach(e -> e.setTemplateId(templateId));
+                List<EmailTemplateDataRuleDO> emailTemplateDataRuleDOList = new ArrayList<>();
+                for(EmailTemplateDataRuleVO dataRuleVO : emailTemplateDataRuleVOList){
+                    EmailTemplateDataRuleDO emailTemplateDataRuleDO = toEmailTemplateDataRuleDO(dataRuleVO);
+                    emailTemplateDataRuleDOList.add(emailTemplateDataRuleDO);
+                }
+                emailTemplateDataRuleMapper.batchInsert(emailTemplateDataRuleDOList);
+            }
+            List<EmailTemplateApplicationRuleVO> emailTemplateApplicationRuleVOList = saveTemplateInfoVO.getEmailTemplateApplicationRuleVOList();
+            if(emailTemplateApplicationRuleVOList.size() > 0){
+                emailTemplateApplicationRuleVOList.forEach(e -> e.setTemplateId(templateId));
+                List<EmailTemplateApplicationRuleDO> templateApplicationRuleDOList = new ArrayList<>();
+                for(EmailTemplateApplicationRuleVO applicationRuleVO : emailTemplateApplicationRuleVOList){
+                    EmailTemplateApplicationRuleDO applicationRuleDO = toEmailTemplateApplicationRuleDO(applicationRuleVO);
+                    templateApplicationRuleDOList.add(applicationRuleDO);
+                }
+                emailTemplateApplicationRuleMapper.batchInsert(templateApplicationRuleDOList);
+            }
+        }else{
+            templateId = emailDeletionInfoDO.getId();
+            emailTemplateInfoMapper.updateTemplateInfo(emailDeletionInfoDO);
+            List<EmailTemplateDataRuleVO> emailTemplateDataRuleVOList = saveTemplateInfoVO.getEmailTemplateDataRuleVOList();
+            if(emailTemplateDataRuleVOList.size() > 0){
+                emailTemplateDataRuleVOList.forEach(e -> e.setTemplateId(templateId));
+                List<EmailTemplateDataRuleDO> addList = new ArrayList<>();
+                List<EmailTemplateDataRuleDO> editList = new ArrayList<>();
+                for(EmailTemplateDataRuleVO dataRuleVO : emailTemplateDataRuleVOList){
+                    EmailTemplateDataRuleDO emailTemplateDataRuleDO = toEmailTemplateDataRuleDO(dataRuleVO);
+                    if(StringUtil.isNull(emailTemplateDataRuleDO.getId())){
+                        addList.add(emailTemplateDataRuleDO);
+                    }else{
+                        addList.add(emailTemplateDataRuleDO);
+                    }
+                }
+                if(addList.size() > 0){
+                    emailTemplateDataRuleMapper.batchInsert(addList);
+                }
+                if(editList.size() > 0){
+                    emailTemplateDataRuleMapper.batchUpdate(editList);
+                }
+            }
+            List<EmailTemplateApplicationRuleVO> emailTemplateApplicationRuleVOList = saveTemplateInfoVO.getEmailTemplateApplicationRuleVOList();
+            if(emailTemplateApplicationRuleVOList.size() > 0){
+                emailTemplateApplicationRuleVOList.forEach(e -> e.setTemplateId(templateId));
+                List<EmailTemplateApplicationRuleDO> addList = new ArrayList<>();
+                List<EmailTemplateApplicationRuleDO> editList = new ArrayList<>();
+                for(EmailTemplateApplicationRuleVO applicationRuleVO : emailTemplateApplicationRuleVOList){
+                    EmailTemplateApplicationRuleDO applicationRuleDO = toEmailTemplateApplicationRuleDO(applicationRuleVO);
+                    if(StringUtil.isNull(applicationRuleDO.getId())){
+                        addList.add(applicationRuleDO);
+                    }else{
+                        editList.add(applicationRuleDO);
+                    }
+                }
+                if(addList.size() > 0){
+                    emailTemplateApplicationRuleMapper.batchInsert(addList);
+                }
+                if(editList.size() > 0){
+                    emailTemplateApplicationRuleMapper.batchUpdate(editList);
+                }
+            }
+
+        }
+    }
+
+    @Override
+    public void deleteApplicationRuleList(IdListVO idListVO) {
+        Integer userId = UserUtils.getLoginUser().getUserId();
+        emailTemplateApplicationRuleMapper.deleteByIdList(idListVO.getIdList(),userId);
+    }
+
+    private EmailTemplateApplicationRuleDO toEmailTemplateApplicationRuleDO(EmailTemplateApplicationRuleVO applicationRuleVO) {
+        Integer userId = UserUtils.getLoginUser().getUserId();
+        EmailTemplateApplicationRuleDO applicationRuleDO = new EmailTemplateApplicationRuleDO();
+        applicationRuleDO.setId(applicationRuleVO.getId());
+        applicationRuleDO.setTemplateId(applicationRuleVO.getTemplateId());
+        applicationRuleDO.setColumn(applicationRuleVO.getColumn());
+        applicationRuleDO.setRow(applicationRuleVO.getRow());
+        applicationRuleDO.setContainKeyword(applicationRuleVO.getContainKeyword());
+        applicationRuleDO.setNotContainKeyword(applicationRuleVO.getNotContainKeyword());
+        applicationRuleDO.setIsvalid(1);
+        applicationRuleDO.setType(applicationRuleVO.getType());
+        applicationRuleDO.setUpdaterId(userId);
+        applicationRuleDO.setUpdateTime(DateUtils.getNowDate());
+        if(StringUtil.isNull(applicationRuleDO.getId())){
+            applicationRuleDO.setCreateTime(DateUtils.getNowDate());
+            applicationRuleDO.setCreatorId(userId);
+        }
+        return applicationRuleDO;
+    }
+
+    private EmailTemplateDataRuleDO toEmailTemplateDataRuleDO(EmailTemplateDataRuleVO dataRuleVO) {
+        Integer userId = UserUtils.getLoginUser().getUserId();
+        EmailTemplateDataRuleDO emailTemplateDataRuleDO = new EmailTemplateDataRuleDO();
+        emailTemplateDataRuleDO.setTemplateId(dataRuleVO.getTemplateId());
+        emailTemplateDataRuleDO.setId(dataRuleVO.getId());
+        emailTemplateDataRuleDO.setFieldRule(dataRuleVO.getFieldRule());
+        emailTemplateDataRuleDO.setColumn(dataRuleVO.getColumn());
+        emailTemplateDataRuleDO.setRow(dataRuleVO.getRow());
+        emailTemplateDataRuleDO.setPosition(dataRuleVO.getPosition());
+        emailTemplateDataRuleDO.setUnitConvert(dataRuleVO.getUnitConvert());
+        emailTemplateDataRuleDO.setIsvalid(1);
+        emailTemplateDataRuleDO.setUpdaterId(userId);
+        emailTemplateDataRuleDO.setUpdateTime(DateUtils.getNowDate());
+        if(StringUtil.isNull(dataRuleVO.getId())){
+            emailTemplateDataRuleDO.setCreateTime(DateUtils.getNowDate());
+            emailTemplateDataRuleDO.setCreatorId(userId);
+        }
+        return emailTemplateDataRuleDO;
+    }
+
+    private EmailTemplateInfoDO toEmailTemplateInfoDO(EmailTemplateInfoVO emailTemplateInfoVO) {
+        Integer userId = UserUtils.getLoginUser().getUserId();
+        EmailTemplateInfoDO emailDeletionInfoDO = new EmailTemplateInfoDO();
+        emailDeletionInfoDO.setId(emailTemplateInfoVO.getId());
+        emailDeletionInfoDO.setName(emailTemplateInfoVO.getName());
+        emailDeletionInfoDO.setStatus(emailTemplateInfoVO.getStatus());
+        emailDeletionInfoDO.setDescription(emailTemplateInfoVO.getDescription());
+        emailDeletionInfoDO.setIsvalid(1);
+        emailDeletionInfoDO.setUpdateTime(DateUtils.getNowDate());
+        emailDeletionInfoDO.setUpdaterId(userId);
+        if(StringUtil.isNull(emailTemplateInfoVO.getId())){
+            emailDeletionInfoDO.setCreateTime(DateUtils.getNowDate());
+            emailDeletionInfoDO.setCreatorId(userId);
+        }
+        return emailDeletionInfoDO;
+    }
+}

+ 73 - 0
service-manage/src/main/java/com/simuwang/manage/service/impl/EmailTemplateMappingServiceImpl.java

@@ -0,0 +1,73 @@
+package com.simuwang.manage.service.impl;
+
+import com.simuwang.base.common.support.MybatisPage;
+import com.simuwang.base.common.util.DateUtils;
+import com.simuwang.base.common.util.StringUtil;
+import com.simuwang.base.mapper.EmailTemplateMappingMapper;
+import com.simuwang.base.pojo.dos.EmailTemplateMappingDO;
+import com.simuwang.base.pojo.dto.query.EmailTemplateSettingPageQuery;
+import com.simuwang.base.pojo.vo.EmailTemplateMappingVO;
+import com.simuwang.base.pojo.vo.IdListVO;
+import com.simuwang.manage.service.EmailTemplateMappingService;
+import com.simuwang.shiro.utils.UserUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * FileName: EmailTemplateMappingServiceImpl
+ * Author:   chenjianhua
+ * Date:     2024/9/25 20:25
+ * Description: ${DESCRIPTION}
+ */
+@Service
+public class EmailTemplateMappingServiceImpl implements EmailTemplateMappingService {
+    @Autowired
+    private EmailTemplateMappingMapper emailTemplateMappingMapper;
+
+    @Override
+    public MybatisPage<EmailTemplateMappingVO> searchTemplateSettingList(EmailTemplateSettingPageQuery emailTemplateSettingPageQuery) {
+        List<EmailTemplateMappingDO> emailTemplateMappingDOList = emailTemplateMappingMapper.searchTemplateSettingList(emailTemplateSettingPageQuery);
+        List<EmailTemplateMappingVO> emailTemplateMappingVOList = emailTemplateMappingDOList.stream().map(EmailTemplateMappingDO::toVO).collect(Collectors.toList());
+        long total = emailTemplateMappingMapper.countTemplateSettingList(emailTemplateSettingPageQuery);
+        return MybatisPage.of(total,emailTemplateMappingVOList);
+    }
+
+    @Override
+    public void deleteTemplateSetting(IdListVO idListVO) {
+        Integer userId = UserUtils.getLoginUser().getUserId();
+        emailTemplateMappingMapper.deleteTemplateSetting(idListVO.getIdList(),userId);
+    }
+
+    @Override
+    public void saveTemplateSetting(EmailTemplateMappingVO emailTemplateMappingVO) {
+        EmailTemplateMappingDO emailTemplateMappingDO = toEmailTemplateMappingDO(emailTemplateMappingVO);
+        if(StringUtil.isNull(emailTemplateMappingDO.getId())){
+            emailTemplateMappingMapper.updateEmailTemplateMappingDO(emailTemplateMappingDO);
+        }else{
+            emailTemplateMappingMapper.saveEmailTemplateMappingDO(emailTemplateMappingDO);
+        }
+    }
+
+    private EmailTemplateMappingDO toEmailTemplateMappingDO(EmailTemplateMappingVO vo) {
+        Integer userId = UserUtils.getLoginUser().getUserId();
+        EmailTemplateMappingDO emailTemplateMappingDO = new EmailTemplateMappingDO();
+        emailTemplateMappingDO.setEmail(vo.getEmail());
+        emailTemplateMappingDO.setId(vo.getId());
+        emailTemplateMappingDO.setTemplateId(vo.getTemplateId());
+        emailTemplateMappingDO.setTemplateName(vo.getTemplateName());
+        emailTemplateMappingDO.setStatus(vo.getStatus());
+        emailTemplateMappingDO.setTitle(vo.getTitle());
+        emailTemplateMappingDO.setCompanyName(vo.getCompanyName());
+        emailTemplateMappingDO.setUpdateTime(DateUtils.getNowDate());
+        emailTemplateMappingDO.setIsvalid(1);
+        emailTemplateMappingDO.setUpdaterId(userId);
+        if(StringUtil.isNull(emailTemplateMappingDO.getId())){
+            emailTemplateMappingDO.setCreateTime(DateUtils.getNowDate());
+            emailTemplateMappingDO.setCreatorId(userId);
+        }
+        return emailTemplateMappingDO;
+    }
+}