Pārlūkot izejas kodu

feat:邮件解析如果是非渠道1发来的邮件不做托管限制

chenjianhua 1 mēnesi atpakaļ
vecāks
revīzija
68eeaa9e68

+ 1 - 1
service-base/src/main/java/com/simuwang/base/mapper/daq/EmailTemplateMapper.java

@@ -15,7 +15,7 @@ public interface EmailTemplateMapper extends BaseMapper<EmailTemplateDO> {
 
     Long countEmailTemplateList(EmailTemplatePageQuery emailTemplatePageQuery);
 
-    EmailTemplateDO selectByCode(String templateCode);
+    EmailTemplateDO selectByCode(@Param("templateCode") String templateCode,@Param("channelId")Integer channelId);
 
     EmailTemplateDO searchTemplateById(Integer id);
 

+ 26 - 0
service-base/src/main/java/com/simuwang/base/pojo/dos/EmailTemplateDO.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.simuwang.base.common.util.DateUtils;
+import com.simuwang.base.pojo.vo.EmailTemplatePageVO;
 import com.simuwang.base.pojo.vo.EmailTemplateVO;
 import lombok.Data;
 
@@ -65,9 +66,34 @@ public class EmailTemplateDO {
     @TableField("updatetime")
     private Date updateTime;
 
+    @TableField("channel_id")
+    private Integer channelId;
+
+    @TableField(exist = false)
+    private String channelName;
+
     public EmailTemplateVO toVO(){
         EmailTemplateVO vo = new EmailTemplateVO();
         vo.setId(id);
+        vo.setChannelId(String.valueOf(channelId));
+        vo.setChannelName(channelName);
+        vo.setTemplateCode(templateCode);
+        vo.setEmailBody(this.emailBody);
+        vo.setEmailTitle(emailTitle);
+        vo.setOpenStatus(openStatus);
+        vo.setIsvalid(isvalid);
+        vo.setCreateTime(DateUtils.format(createTime, "yyyy-MM-dd HH:mm:ss"));
+        vo.setCreatorId(creatorId);
+        vo.setUpdateTime(DateUtils.format(updateTime, "yyyy-MM-dd HH:mm:ss"));
+        vo.setUpdaterId(updaterId);
+        return vo;
+    }
+
+    public EmailTemplatePageVO toPageVO(){
+        EmailTemplatePageVO vo = new EmailTemplatePageVO();
+        vo.setId(id);
+        vo.setChannelId(channelId);
+        vo.setChannelName(channelName);
         vo.setTemplateCode(templateCode);
         vo.setEmailBody(this.emailBody);
         vo.setEmailTitle(emailTitle);

+ 12 - 0
service-base/src/main/java/com/simuwang/base/pojo/dto/query/EmailTemplatePageQuery.java

@@ -10,6 +10,10 @@ import com.simuwang.base.common.support.query.PageQuery;
  */
 public class EmailTemplatePageQuery extends PageQuery {
     /**
+     * 渠道名称
+     */
+    private String channelName;
+    /**
      * 模版名称
      */
     private String emailTitle;
@@ -33,4 +37,12 @@ public class EmailTemplatePageQuery extends PageQuery {
     public void setOpenStatus(Integer openStatus) {
         this.openStatus = openStatus;
     }
+
+    public String getChannelName() {
+        return channelName;
+    }
+
+    public void setChannelName(String channelName) {
+        this.channelName = channelName;
+    }
 }

+ 52 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/EmailTemplatePageVO.java

@@ -0,0 +1,52 @@
+package com.simuwang.base.pojo.vo;
+
+import lombok.Data;
+
+@Data
+public class EmailTemplatePageVO {
+    /**
+     * 主键ID
+     */
+    private Integer id;
+    /**
+     * 模板编码
+     */
+    private String templateCode;
+    /**
+     * 邮件标题
+     */
+    private String emailTitle;
+    /**
+     * 邮件正文
+     */
+    private String emailBody;
+
+    /**
+     * 开启状态1-开启,0-关闭
+     */
+    private Integer openStatus;
+    /**
+     * 有效标识,1-有效,0-无效
+     */
+    private Integer isvalid;
+    /**
+     * 创建人ID
+     */
+    private Integer creatorId;
+    /**
+     * 修改人ID
+     */
+    private Integer updaterId;
+    /**
+     * 创建时间
+     */
+    private String createTime;
+    /**
+     * 修改时间
+     */
+    private String updateTime;
+
+    private Integer channelId;
+
+    private String channelName;
+}

+ 4 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/EmailTemplateVO.java

@@ -47,4 +47,8 @@ public class EmailTemplateVO {
      * 修改时间
      */
     private String updateTime;
+
+    private String channelId;
+
+    private String channelName;
 }

+ 38 - 15
service-base/src/main/resources/mapper/daq/EmailTemplateMapper.xml

@@ -3,6 +3,8 @@
 <mapper namespace="com.simuwang.base.mapper.daq.EmailTemplateMapper">
     <resultMap id="BaseResultMap" type="com.simuwang.base.pojo.dos.EmailTemplateDO">
         <id column="id" property="id"/>
+        <result column="channel_id" property="channelId"/>
+        <result column="channel_name" property="channelName"/>
         <result column="template_code" property="templateCode"/>
         <result column="email_title" property="emailTitle"/>
         <result column="email_body" property="emailBody"/>
@@ -14,9 +16,9 @@
         <result column="updatetime" property="updateTime"/>
     </resultMap>
     <insert id="saveTemplateInfo"  useGeneratedKeys="true" keyProperty="id">
-        insert into email_template(template_code,email_title,email_body,open_status,isvalid,creatorid,createtime,updaterid,updatetime)
+        insert into email_template(channel_id,template_code,email_title,email_body,open_status,isvalid,creatorid,createtime,updaterid,updatetime)
         values
-            (#{templateCode},#{emailTitle},#{emailBody},#{openStatus},#{isvalid},#{creatorId},#{createTime},#{updaterId},#{updateTime})
+            (#{channelId},#{templateCode},#{emailTitle},#{emailBody},#{openStatus},#{isvalid},#{creatorId},#{createTime},#{updaterId},#{updateTime})
     </insert>
     <update id="deleteTemplateList">
         update email_template set isvalid=0,updatetime=now(),updaterid=#{userId} where isvalid=1
@@ -26,45 +28,66 @@
         </foreach>
     </update>
     <update id="updateTemplateInfo">
-        update email_template set template_code=#{templateCode},email_title=#{emailTitle},email_body=#{emailBody},open_status=#{openStatus},updatetime=#{updateTime},updaterid=#{updaterId}
+        update email_template set channel_id = #{channelId}, template_code=#{templateCode},email_title=#{emailTitle},email_body=#{emailBody},open_status=#{openStatus},updatetime=#{updateTime},updaterid=#{updaterId}
         where id=#{id} and isvalid=1
     </update>
     <update id="updateOpenStatus">
         update email_template set open_status =#{item.status},updatetime=now(),updaterid=#{userId} where id=#{item.id}
     </update>
     <select id="searchEmailTemplateList" resultMap="BaseResultMap">
-        select id,template_code,email_title,email_body,open_status,isvalid,creatorid,createtime,updaterid,updatetime
-        from email_template where isvalid=1
+        select et.id,
+               et.channel_id,
+               ci.channel_name,
+               et.template_code,
+               et.email_title,
+               et.email_body,
+               et.open_status,
+               et.isvalid,
+               et.creatorid,
+               et.createtime,
+               et.updaterid,
+               et.updatetime
+        from email_template et
+        join channel_info ci on ci.id = et.channel_id
+        where et.isvalid=1 and ci.isvalid=1
         <if test="emailTitle != null and emailTitle !=''">
-            and email_title like concat('%',#{emailTitle},'%')
+            and et.email_title like concat('%',#{emailTitle},'%')
         </if>
         <if test="openStatus != null">
-            and open_status =#{openStatus}
+            and et.open_status =#{openStatus}
+        </if>
+        <if test="channelName != null and channelName != ''">
+            and ci.channel_name =#{channelName}
         </if>
         order by updatetime desc
         limit #{offset},#{pageSize}
     </select>
     <select id="countEmailTemplateList" resultType="java.lang.Long">
-        select count(1)
-        from email_template where isvalid=1
+        select count(et.id)
+        from email_template et
+        join channel_info ci on ci.id = et.channel_id
+        where et.isvalid=1 and ci.isvalid=1
         <if test="emailTitle != null and emailTitle !=''">
-            and email_title like concat('%',#{emailTitle},'%')
+            and et.email_title like concat('%',#{emailTitle},'%')
         </if>
         <if test="openStatus != null">
-            and open_status =#{openStatus}
+            and et.open_status =#{openStatus}
+        </if>
+        <if test="channelName != null and channelName != ''">
+            and ci.channel_name =#{channelName}
         </if>
     </select>
     <select id="searchTemplateById" resultMap="BaseResultMap">
-        select id,template_code,email_title,email_body,open_status,isvalid,creatorid,createtime,updaterid,updatetime
+        select id,channel_id,template_code,email_title,email_body,open_status,isvalid,creatorid,createtime,updaterid,updatetime
         from email_template where isvalid=1 and id=#{id}
     </select>
     <select id="searchTemplateByName" resultMap="BaseResultMap">
-        select id,template_code,email_title,email_body,open_status,isvalid,creatorid,createtime,updaterid,updatetime
+        select id,channel_id,template_code,email_title,email_body,open_status,isvalid,creatorid,createtime,updaterid,updatetime
         from email_template where isvalid=1 and email_title=#{emailTitle} limit 1
     </select>
     <select id="selectByCode" resultMap="BaseResultMap">
-        select id,template_code,email_title,email_body,open_status,isvalid,creatorid,createtime,updaterid,updatetime
-        from email_template where isvalid=1 and template_code=#{templateCode}
+        select id,channel_id,template_code,email_title,email_body,open_status,isvalid,creatorid,createtime,updaterid,updatetime
+        from email_template where isvalid=1 and template_code=#{templateCode} and channel_id=#{channelId}
     </select>
 
 

+ 12 - 0
service-manage/src/main/java/com/simuwang/manage/api/channel/ChannelController.java

@@ -96,6 +96,18 @@ public class ChannelController {
 
     /**
      * 查询渠道信息
+     * @param  idVO
+     * @return
+     */
+    @SystemLog(value = "根据邮箱配置信息ID查询渠道信息")
+    @RequestMapping("search-channel-info")
+    public ResultVo searchChannelInfo(IdVO idVO){
+        ResultVo vo = channelService.searchChannelInfo(idVO.getId());
+        return vo;
+    }
+
+    /**
+     * 查询渠道信息
      * @param  channelPageQuery
      * @return
      */

+ 1 - 0
service-manage/src/main/java/com/simuwang/manage/api/email/EmailConfigController.java

@@ -26,6 +26,7 @@ public class EmailConfigController{
 
     @Autowired
     private EmailConfigService emailConfigService;
+
     private static final Logger logger = LoggerFactory.getLogger(EmailConfigController.class);
     /**
      * 页面展示查询

+ 1 - 1
service-manage/src/main/java/com/simuwang/manage/api/emailTemplate/EmailTemplateController.java

@@ -24,7 +24,7 @@ public class EmailTemplateController {
      */
     @SystemLog(value = "邮件模版列表查询")
     @RequestMapping("search-email-template-list")
-    public MybatisPage<EmailTemplateVO> searchEmailTemplateList(EmailTemplatePageQuery emailTemplatePageQuery){
+    public MybatisPage<EmailTemplatePageVO> searchEmailTemplateList(EmailTemplatePageQuery emailTemplatePageQuery){
         return emailTemplateService.searchEmailTemplateList(emailTemplatePageQuery);
     }
 

+ 2 - 0
service-manage/src/main/java/com/simuwang/manage/service/ChannelService.java

@@ -33,4 +33,6 @@ public interface ChannelService {
     ResultVo saveChannelResponsibility(ChannelResponsibilityInfoVO channelResponsibilityInfoVO);
 
     List<ChannelInfoDO> selectChannelInfolist(List<String> list);
+
+    ResultVo searchChannelInfo(Integer id);
 }

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

@@ -2,12 +2,13 @@ package com.simuwang.manage.service;
 
 import com.simuwang.base.common.support.MybatisPage;
 import com.simuwang.base.pojo.dto.query.EmailTemplatePageQuery;
+import com.simuwang.base.pojo.vo.EmailTemplatePageVO;
 import com.simuwang.base.pojo.vo.EmailTemplateVO;
 import com.simuwang.base.pojo.vo.IdListVO;
 import com.simuwang.base.pojo.vo.StatusVO;
 
 public interface EmailTemplateService {
-    MybatisPage<EmailTemplateVO> searchEmailTemplateList(EmailTemplatePageQuery emailTemplatePageQuery);
+    MybatisPage<EmailTemplatePageVO> searchEmailTemplateList(EmailTemplatePageQuery emailTemplatePageQuery);
 
     EmailTemplateVO searchEmailTemplate(Integer id);
 

+ 15 - 0
service-manage/src/main/java/com/simuwang/manage/service/impl/ChannelServiceImpl.java

@@ -13,6 +13,7 @@ import com.simuwang.base.pojo.dto.query.ChannelPageQuery;
 import com.simuwang.base.pojo.vo.*;
 import com.simuwang.daq.service.AbstractEmailParser;
 import com.simuwang.manage.service.ChannelService;
+import com.simuwang.manage.service.EmailConfigService;
 import com.simuwang.shiro.utils.UserUtils;
 import com.smppw.common.pojo.ResultVo;
 import com.smppw.common.pojo.enums.status.ResultCode;
@@ -38,6 +39,8 @@ public class ChannelServiceImpl implements ChannelService {
     private UserAuthService userAuthService;
     @Autowired
     private ChannelResponbilityMapper channelResponbilityMapper;
+    @Autowired
+    private EmailConfigService emailConfigService;
     private static final Logger log = LoggerFactory.getLogger(ChannelServiceImpl.class);
 
     @Override
@@ -183,4 +186,16 @@ public class ChannelServiceImpl implements ChannelService {
     public List<ChannelInfoDO> selectChannelInfolist(List<String> list) {
         return channelMapper.selectBatchIds(list);
     }
+
+    @Override
+    public ResultVo searchChannelInfo(Integer id) {
+        ResultVo vo = new ResultVo(ResultCode.SAVE_SUCCESS.getCode());
+        MailboxInfoVO mailboxInfoVO = emailConfigService.searchEmailConfigById(id);
+        String email = mailboxInfoVO.getEmail();
+        ChannelEmailInfoDO emailInfoDO = channelEmailMapper.selectByEmail(email);
+        Integer channelId = emailInfoDO.getChannelId();
+        ChannelInfoDO channelInfoDO = channelMapper.selectById(channelId);
+        vo.setData(channelInfoDO);
+        return vo;
+    }
 }

+ 4 - 4
service-manage/src/main/java/com/simuwang/manage/service/impl/CompanyEmailConfigServiceImpl.java

@@ -176,7 +176,7 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
             getAssetNotRemarkDeletion(fundId,emailDeletionInfoDOS);
         }
         if(emailDeletionInfoDOS.size() > 0){
-            EmailTemplateDO emailTemplateDO = emailTemplateMapper.selectByCode(DELETION_TEMPLATE_CODE);
+            EmailTemplateDO emailTemplateDO = emailTemplateMapper.selectByCode(DELETION_TEMPLATE_CODE,1);
             if(emailTemplateDO == null){
                 return;
             }
@@ -397,7 +397,7 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
             getAssetDeletion(fundId,emailDeletionInfoDOS);
         }
         if(emailDeletionInfoDOS.size() > 0){
-            EmailTemplateDO emailTemplateDO = emailTemplateMapper.selectByCode(DELETION_TEMPLATE_CODE);
+            EmailTemplateDO emailTemplateDO = emailTemplateMapper.selectByCode(DELETION_TEMPLATE_CODE,1);
             if(emailTemplateDO == null){
                 return;
             }
@@ -641,7 +641,7 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
             emailDeletionInfoDOS.addAll(distributeDeletionList);
         }
         if(emailDeletionInfoDOS.size() > 0){
-            EmailTemplateDO emailTemplateDO = emailTemplateMapper.selectByCode(DISTRIBUTION_DELETION_TEMPLATE_CODE);
+            EmailTemplateDO emailTemplateDO = emailTemplateMapper.selectByCode(DISTRIBUTION_DELETION_TEMPLATE_CODE,1);
             if(emailTemplateDO == null){
                 return;
             }
@@ -706,7 +706,7 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
             emailDeletionInfoDOS.addAll(distributeDeletionList);
         }
         if(emailDeletionInfoDOS.size() > 0){
-            EmailTemplateDO emailTemplateDO = emailTemplateMapper.selectByCode(DISTRIBUTION_DELETION_TEMPLATE_CODE);
+            EmailTemplateDO emailTemplateDO = emailTemplateMapper.selectByCode(DISTRIBUTION_DELETION_TEMPLATE_CODE,1);
             if(emailTemplateDO == null){
                 return;
             }

+ 25 - 17
service-manage/src/main/java/com/simuwang/manage/service/impl/EmailTemplateServiceImpl.java

@@ -5,6 +5,7 @@ import com.simuwang.base.common.support.MybatisPage;
 import com.simuwang.base.mapper.daq.EmailTemplateMapper;
 import com.simuwang.base.pojo.dos.EmailTemplateDO;
 import com.simuwang.base.pojo.dto.query.EmailTemplatePageQuery;
+import com.simuwang.base.pojo.vo.EmailTemplatePageVO;
 import com.simuwang.base.pojo.vo.EmailTemplateVO;
 import com.simuwang.base.pojo.vo.IdListVO;
 import com.simuwang.base.pojo.vo.StatusVO;
@@ -23,9 +24,9 @@ public class EmailTemplateServiceImpl implements EmailTemplateService {
     private EmailTemplateMapper emailTemplateMapper;
 
     @Override
-    public MybatisPage<EmailTemplateVO> searchEmailTemplateList(EmailTemplatePageQuery emailTemplatePageQuery) {
+    public MybatisPage<EmailTemplatePageVO> searchEmailTemplateList(EmailTemplatePageQuery emailTemplatePageQuery) {
         List<EmailTemplateDO> emailTemplateDOList = emailTemplateMapper.searchEmailTemplateList(emailTemplatePageQuery);
-        List<EmailTemplateVO> emailTemplateVOList = emailTemplateDOList.stream().map(EmailTemplateDO::toVO).collect(Collectors.toUnmodifiableList());
+        List<EmailTemplatePageVO> emailTemplateVOList = emailTemplateDOList.stream().map(EmailTemplateDO::toPageVO).collect(Collectors.toUnmodifiableList());
         Long total = emailTemplateMapper.countEmailTemplateList(emailTemplatePageQuery);
         return MybatisPage.of(total, emailTemplateVOList);
     }
@@ -38,26 +39,33 @@ public class EmailTemplateServiceImpl implements EmailTemplateService {
 
     @Override
     public void saveEmailTemplate(EmailTemplateVO emailTemplateVO) {
-        EmailTemplateDO emailTemplateDO = new EmailTemplateDO();
-        BeanUtil.copyProperties(emailTemplateVO, emailTemplateDO);
-        emailTemplateDO.setIsvalid(1);
-        Integer userId = UserUtils.getLoginUser().getUserId();
-        emailTemplateDO.setCreatorId(userId);
-        emailTemplateDO.setUpdaterId(userId);
-        emailTemplateDO.setCreateTime(new Date());
-        emailTemplateDO.setUpdateTime(new Date());
-        emailTemplateMapper.insertOrUpdate(emailTemplateDO);
+        String channelIds = emailTemplateVO.getChannelId();
+        for (String channelId : channelIds.split(",")) {
+            EmailTemplateDO emailTemplateDO = new EmailTemplateDO();
+            emailTemplateVO.setChannelId(channelId);
+            BeanUtil.copyProperties(emailTemplateVO, emailTemplateDO);
+            emailTemplateDO.setIsvalid(1);
+            Integer userId = UserUtils.getLoginUser().getUserId();
+            emailTemplateDO.setCreatorId(userId);
+            emailTemplateDO.setUpdaterId(userId);
+            emailTemplateDO.setCreateTime(new Date());
+            emailTemplateDO.setUpdateTime(new Date());
+            emailTemplateMapper.insertOrUpdate(emailTemplateDO);
+        }
     }
 
     @Override
     public boolean checkEmailTemplateUnique(EmailTemplateVO emailTemplateVO) {
         String templateCode = emailTemplateVO.getTemplateCode();
-        EmailTemplateDO emailTemplateDO = emailTemplateMapper.selectByCode(templateCode);
-        if(emailTemplateDO==null){
-            return true;
-        }
-        if(emailTemplateVO.getId() != null && emailTemplateDO.getId().intValue() != emailTemplateVO.getId().intValue()){
-            return false;
+        String channelIds = emailTemplateVO.getChannelId();
+        for (String channelId : channelIds.split(",")) {
+            EmailTemplateDO emailTemplateDO = emailTemplateMapper.selectByCode(templateCode,Integer.valueOf(channelId));
+            if(emailTemplateDO==null){
+                return true;
+            }
+            if(emailTemplateVO.getId() != null && emailTemplateDO.getId().intValue() != emailTemplateVO.getId().intValue()){
+                return false;
+            }
         }
         return true;
     }

+ 1 - 1
service-manage/src/main/java/com/simuwang/manage/task/SendDeletionEmailTask.java

@@ -95,7 +95,7 @@ public class SendDeletionEmailTask {
             fundDeletionFile.setReadable(true);
             fundDeletionFile.setExecutable(true);
             MailboxInfoDTO dto = getFromEmailInfo();
-            EmailTemplateDO emailTemplateDO = emailTemplateMapper.selectByCode(PAIPAI_EMAIL);
+            EmailTemplateDO emailTemplateDO = emailTemplateMapper.selectByCode(PAIPAI_EMAIL,1);
             if(emailTemplateDO == null){
                 return;
             }