Jelajahi Sumber

fix: 模版信息重复名称校验

chenjianhua 7 bulan lalu
induk
melakukan
41d5c37448

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

@@ -21,4 +21,6 @@ public interface EmailTemplateInfoMapper {
     void updateTemplateInfo(EmailTemplateInfoDO emailDeletionInfoDO);
 
     EmailTemplateInfoDO searchTemplateById(@Param("id") Integer id);
+
+    EmailTemplateInfoDO searchTemplateByName(String name);
 }

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

@@ -64,6 +64,10 @@
         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 and id=#{id}
     </select>
+    <select id="searchTemplateByName" resultType="com.simuwang.base.pojo.dos.EmailTemplateInfoDO">
+        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 and name=#{name} limit 1
+    </select>
 
 
 </mapper>

+ 9 - 2
service-manage/src/main/java/com/simuwang/manage/api/template/TemplateController.java

@@ -75,9 +75,16 @@ public class TemplateController {
      */
     @SystemLog(value = "保存模版信息")
     @RequestMapping("save-template-list")
-    public boolean saveTemplateList(@RequestBody SaveTemplateInfoVO saveTemplateInfoVO){
+    public ResultVo saveTemplateList(@RequestBody SaveTemplateInfoVO saveTemplateInfoVO){
+        ResultVo vo = new ResultVo(ResultCode.SAVE_SUCCESS.getCode());
+        if(!emailTemplateInfoService.checkConfigKeyUnique(saveTemplateInfoVO)){
+            vo.setMsg("已存在相同的模版配置名称,不能重复添加");
+            vo.setData(false);
+            return vo;
+        }
         emailTemplateInfoService.saveTemplateList(saveTemplateInfoVO);
-        return true;
+        vo.setData(true);
+        return vo;
     }
 
     /**

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

@@ -25,4 +25,6 @@ public interface EmailTemplateInfoService {
     void controlTemplateConfig(StatusVO statusVO);
 
     SaveTemplateInfoVO searchTemplateInfo(Integer id);
+
+    boolean checkConfigKeyUnique(SaveTemplateInfoVO saveTemplateInfoVO);
 }

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

@@ -1,5 +1,6 @@
 package com.simuwang.manage.service.impl;
 
+import com.simuwang.base.common.conts.UserConstants;
 import com.simuwang.base.common.support.MybatisPage;
 import com.simuwang.base.common.util.DateUtils;
 import com.simuwang.base.common.util.StringUtil;
@@ -9,6 +10,7 @@ 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.dos.SysConfigDO;
 import com.simuwang.base.pojo.dto.query.EmailTemplateInfoPageQuery;
 import com.simuwang.base.pojo.vo.*;
 import com.simuwang.manage.service.EmailTemplateInfoService;
@@ -160,6 +162,18 @@ public class EmailTemplateInfoServiceImpl implements EmailTemplateInfoService {
         return vo;
     }
 
+    @Override
+    public boolean checkConfigKeyUnique(SaveTemplateInfoVO saveTemplateInfoVO) {
+        EmailTemplateInfoVO infoVO = saveTemplateInfoVO.getEmailTemplateInfoVO();
+        Integer id = StringUtil.isNull(infoVO.getId()) ? -1 : infoVO.getId();
+        EmailTemplateInfoDO info = emailTemplateInfoMapper.searchTemplateByName(infoVO.getName());
+        if (StringUtil.isNotNull(info) && info.getId().intValue() != id.intValue())
+        {
+            return UserConstants.NOT_UNIQUE;
+        }
+        return UserConstants.UNIQUE;
+    }
+
     private EmailTemplateApplicationRuleDO toEmailTemplateApplicationRuleDO(EmailTemplateApplicationRuleVO applicationRuleVO) {
         Integer userId = UserUtils.getLoginUser().getUserId();
         EmailTemplateApplicationRuleDO applicationRuleDO = new EmailTemplateApplicationRuleDO();

+ 1 - 1
service-manage/src/main/java/com/simuwang/manage/service/impl/system/SysConfigServiceImpl.java

@@ -68,7 +68,7 @@ public class SysConfigServiceImpl implements SysConfigService {
         Integer userId = UserUtils.getLoginUser().getUserId();
         ResultVo vo = new ResultVo(ResultCode.SAVE_SUCCESS);
         vo.setData(true);
-        if(sysConfigVO.getConfigId() == null && !checkConfigKeyUnique(sysConfigVO)){
+        if(!checkConfigKeyUnique(sysConfigVO)){
             vo.setMsg("已存在相同的参数配置信息,无须重复添加");
             vo.setData(false);
             return vo;