EmailTemplateInfoServiceImpl.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. package com.simuwang.manage.service.impl;
  2. import com.simuwang.base.common.conts.UserConstants;
  3. import com.simuwang.base.common.support.MybatisPage;
  4. import com.simuwang.base.common.util.DateUtils;
  5. import com.simuwang.base.common.util.StringUtil;
  6. import com.simuwang.base.mapper.daq.EmailTemplateApplicationRuleMapper;
  7. import com.simuwang.base.mapper.daq.EmailTemplateDataRuleMapper;
  8. import com.simuwang.base.mapper.daq.EmailTemplateInfoMapper;
  9. import com.simuwang.base.pojo.dos.EmailTemplateApplicationRuleDO;
  10. import com.simuwang.base.pojo.dos.EmailTemplateDataRuleDO;
  11. import com.simuwang.base.pojo.dos.EmailTemplateInfoDO;
  12. import com.simuwang.base.pojo.dos.SysConfigDO;
  13. import com.simuwang.base.pojo.dto.query.EmailTemplateInfoPageQuery;
  14. import com.simuwang.base.pojo.vo.*;
  15. import com.simuwang.manage.service.EmailTemplateInfoService;
  16. import com.simuwang.shiro.utils.UserUtils;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.stereotype.Service;
  19. import java.util.ArrayList;
  20. import java.util.List;
  21. import java.util.stream.Collectors;
  22. /**
  23. * FileName: EmailTemplateInfoServiceImpl
  24. * Author: chenjianhua
  25. * Date: 2024/9/25 18:50
  26. * Description: ${DESCRIPTION}
  27. */
  28. @Service
  29. public class EmailTemplateInfoServiceImpl implements EmailTemplateInfoService {
  30. @Autowired
  31. private EmailTemplateInfoMapper emailTemplateInfoMapper;
  32. @Autowired
  33. private EmailTemplateDataRuleMapper emailTemplateDataRuleMapper;
  34. @Autowired
  35. private EmailTemplateApplicationRuleMapper emailTemplateApplicationRuleMapper;
  36. @Override
  37. public MybatisPage<EmailTemplateInfoVO> searchTemplateList(EmailTemplateInfoPageQuery emailTemplateInfoPageQuery) {
  38. List<EmailTemplateInfoDO> emailTemplateInfoDOList = emailTemplateInfoMapper.searchTemplateList(emailTemplateInfoPageQuery);
  39. List<EmailTemplateInfoVO> emailTemplateInfoVOList = emailTemplateInfoDOList.stream().map(EmailTemplateInfoDO::toVO).collect(Collectors.toList());
  40. long total = emailTemplateInfoMapper.countTemplateList(emailTemplateInfoPageQuery);
  41. return MybatisPage.of(total,emailTemplateInfoVOList);
  42. }
  43. @Override
  44. public void deleteTemplateList(IdListVO idListVO) {
  45. Integer userId = UserUtils.getLoginUser().getUserId();
  46. List<Integer> idList = idListVO.getIdList();
  47. emailTemplateInfoMapper.deleteTemplateList(idList,userId);
  48. emailTemplateApplicationRuleMapper.deleteByTemplateId(idList,userId);
  49. emailTemplateDataRuleMapper.deleteByTemplateId(idList,userId);
  50. }
  51. @Override
  52. public void saveTemplateList(SaveTemplateInfoVO saveTemplateInfoVO) {
  53. EmailTemplateInfoVO emailTemplateInfoVO = saveTemplateInfoVO.getEmailTemplateInfoVO();
  54. EmailTemplateInfoDO emailDeletionInfoDO = toEmailTemplateInfoDO(emailTemplateInfoVO);
  55. Integer templateId;
  56. if(StringUtil.isNull(emailDeletionInfoDO.getId())){
  57. //保存
  58. emailTemplateInfoMapper.saveTemplateInfo(emailDeletionInfoDO);
  59. templateId = emailDeletionInfoDO.getId();
  60. List<EmailTemplateDataRuleVO> emailTemplateDataRuleVOList = saveTemplateInfoVO.getEmailTemplateDataRuleVOList();
  61. if(emailTemplateDataRuleVOList.size() > 0){
  62. emailTemplateDataRuleVOList.forEach(e -> e.setTemplateId(templateId));
  63. List<EmailTemplateDataRuleDO> emailTemplateDataRuleDOList = new ArrayList<>();
  64. for(EmailTemplateDataRuleVO dataRuleVO : emailTemplateDataRuleVOList){
  65. EmailTemplateDataRuleDO emailTemplateDataRuleDO = toEmailTemplateDataRuleDO(dataRuleVO);
  66. emailTemplateDataRuleDOList.add(emailTemplateDataRuleDO);
  67. }
  68. emailTemplateDataRuleMapper.batchInsert(emailTemplateDataRuleDOList);
  69. }
  70. List<EmailTemplateApplicationRuleVO> emailTemplateApplicationRuleVOList = saveTemplateInfoVO.getEmailTemplateApplicationRuleVOList();
  71. if(emailTemplateApplicationRuleVOList.size() > 0){
  72. emailTemplateApplicationRuleVOList.forEach(e -> e.setTemplateId(templateId));
  73. List<EmailTemplateApplicationRuleDO> templateApplicationRuleDOList = new ArrayList<>();
  74. for(EmailTemplateApplicationRuleVO applicationRuleVO : emailTemplateApplicationRuleVOList){
  75. EmailTemplateApplicationRuleDO applicationRuleDO = toEmailTemplateApplicationRuleDO(applicationRuleVO);
  76. templateApplicationRuleDOList.add(applicationRuleDO);
  77. }
  78. emailTemplateApplicationRuleMapper.batchInsert(templateApplicationRuleDOList);
  79. }
  80. }else{
  81. templateId = emailDeletionInfoDO.getId();
  82. emailTemplateInfoMapper.updateTemplateInfo(emailDeletionInfoDO);
  83. List<EmailTemplateDataRuleVO> emailTemplateDataRuleVOList = saveTemplateInfoVO.getEmailTemplateDataRuleVOList();
  84. if(emailTemplateDataRuleVOList.size() > 0){
  85. emailTemplateDataRuleVOList.forEach(e -> e.setTemplateId(templateId));
  86. List<EmailTemplateDataRuleDO> addList = new ArrayList<>();
  87. List<EmailTemplateDataRuleDO> editList = new ArrayList<>();
  88. for(EmailTemplateDataRuleVO dataRuleVO : emailTemplateDataRuleVOList){
  89. EmailTemplateDataRuleDO emailTemplateDataRuleDO = toEmailTemplateDataRuleDO(dataRuleVO);
  90. if(StringUtil.isNull(emailTemplateDataRuleDO.getId())){
  91. addList.add(emailTemplateDataRuleDO);
  92. }else{
  93. editList.add(emailTemplateDataRuleDO);
  94. }
  95. }
  96. if(addList.size() > 0){
  97. emailTemplateDataRuleMapper.batchInsert(addList);
  98. }
  99. if(editList.size() > 0){
  100. emailTemplateDataRuleMapper.batchUpdate(editList);
  101. }
  102. }
  103. List<EmailTemplateApplicationRuleVO> emailTemplateApplicationRuleVOList = saveTemplateInfoVO.getEmailTemplateApplicationRuleVOList();
  104. if(emailTemplateApplicationRuleVOList.size() > 0){
  105. emailTemplateApplicationRuleVOList.forEach(e -> e.setTemplateId(templateId));
  106. List<Integer> templateIdList = new ArrayList<>();
  107. templateIdList.add(templateId);
  108. Integer userId = UserUtils.getLoginUser().getUserId();
  109. emailTemplateApplicationRuleMapper.deleteByTemplateId(templateIdList,userId);
  110. List<EmailTemplateApplicationRuleDO> addList = new ArrayList<>();
  111. for(EmailTemplateApplicationRuleVO applicationRuleVO : emailTemplateApplicationRuleVOList){
  112. EmailTemplateApplicationRuleDO applicationRuleDO = toEmailTemplateApplicationRuleDO(applicationRuleVO);
  113. addList.add(applicationRuleDO);
  114. }
  115. if(addList.size() > 0){
  116. emailTemplateApplicationRuleMapper.batchInsert(addList);
  117. }
  118. }
  119. }
  120. }
  121. @Override
  122. public void deleteApplicationRuleList(IdListVO idListVO) {
  123. Integer userId = UserUtils.getLoginUser().getUserId();
  124. emailTemplateApplicationRuleMapper.deleteByIdList(idListVO.getIdList(),userId);
  125. }
  126. @Override
  127. public void controlTemplateConfig(StatusVO statusVO) {
  128. EmailTemplateInfoDO emailTemplateInfoDO = emailTemplateInfoMapper.searchTemplateById(statusVO.getId());
  129. emailTemplateInfoDO.setStatus(statusVO.getStatus());
  130. Integer userId = UserUtils.getLoginUser().getUserId();
  131. emailTemplateInfoDO.setUpdaterId(userId);
  132. emailTemplateInfoDO.setUpdateTime(DateUtils.getNowDate());
  133. emailTemplateInfoMapper.updateTemplateInfo(emailTemplateInfoDO);
  134. }
  135. @Override
  136. public SaveTemplateInfoVO searchTemplateInfo(Integer id) {
  137. SaveTemplateInfoVO vo = new SaveTemplateInfoVO();
  138. EmailTemplateInfoDO emailTemplateInfoDO = emailTemplateInfoMapper.searchTemplateById(id);
  139. vo.setEmailTemplateInfoVO(emailTemplateInfoDO.toVO());
  140. List<Integer> idList = new ArrayList<>();
  141. idList.add(id);
  142. List<EmailTemplateDataRuleDO> ruleDOList = emailTemplateDataRuleMapper.queryByTemplateId(idList);
  143. List<EmailTemplateDataRuleVO> ruleVOList = ruleDOList.stream().map(EmailTemplateDataRuleDO::toVO).collect(Collectors.toList());
  144. vo.setEmailTemplateDataRuleVOList(ruleVOList);
  145. List<EmailTemplateApplicationRuleDO> applicationRuleDOList = emailTemplateApplicationRuleMapper.queryByTemplateId(idList);
  146. List<EmailTemplateApplicationRuleVO> applicationRuleVOList = applicationRuleDOList.stream().map(EmailTemplateApplicationRuleDO::toVO).collect(Collectors.toList());
  147. vo.setEmailTemplateApplicationRuleVOList(applicationRuleVOList);
  148. return vo;
  149. }
  150. @Override
  151. public boolean checkConfigKeyUnique(SaveTemplateInfoVO saveTemplateInfoVO) {
  152. EmailTemplateInfoVO infoVO = saveTemplateInfoVO.getEmailTemplateInfoVO();
  153. Integer id = StringUtil.isNull(infoVO.getId()) ? -1 : infoVO.getId();
  154. EmailTemplateInfoDO info = emailTemplateInfoMapper.searchTemplateByName(infoVO.getName());
  155. if (StringUtil.isNotNull(info) && info.getId().intValue() != id.intValue())
  156. {
  157. return UserConstants.NOT_UNIQUE;
  158. }
  159. return UserConstants.UNIQUE;
  160. }
  161. private EmailTemplateApplicationRuleDO toEmailTemplateApplicationRuleDO(EmailTemplateApplicationRuleVO applicationRuleVO) {
  162. Integer userId = UserUtils.getLoginUser().getUserId();
  163. EmailTemplateApplicationRuleDO applicationRuleDO = new EmailTemplateApplicationRuleDO();
  164. applicationRuleDO.setId(applicationRuleVO.getId());
  165. applicationRuleDO.setTemplateId(applicationRuleVO.getTemplateId());
  166. applicationRuleDO.setColumn(applicationRuleVO.getColumn());
  167. applicationRuleDO.setRow(applicationRuleVO.getRow());
  168. applicationRuleDO.setContainKeyword(applicationRuleVO.getContainKeyword());
  169. applicationRuleDO.setNotContainKeyword(applicationRuleVO.getNotContainKeyword());
  170. applicationRuleDO.setIsvalid(1);
  171. applicationRuleDO.setType(applicationRuleVO.getType());
  172. applicationRuleDO.setUpdaterId(userId);
  173. applicationRuleDO.setUpdateTime(DateUtils.getNowDate());
  174. applicationRuleDO.setCreateTime(DateUtils.getNowDate());
  175. applicationRuleDO.setCreatorId(userId);
  176. return applicationRuleDO;
  177. }
  178. private EmailTemplateDataRuleDO toEmailTemplateDataRuleDO(EmailTemplateDataRuleVO dataRuleVO) {
  179. Integer userId = UserUtils.getLoginUser().getUserId();
  180. EmailTemplateDataRuleDO emailTemplateDataRuleDO = new EmailTemplateDataRuleDO();
  181. emailTemplateDataRuleDO.setTemplateId(dataRuleVO.getTemplateId());
  182. emailTemplateDataRuleDO.setId(dataRuleVO.getId());
  183. emailTemplateDataRuleDO.setFieldRule(dataRuleVO.getFieldRule());
  184. emailTemplateDataRuleDO.setColumn(dataRuleVO.getColumn());
  185. emailTemplateDataRuleDO.setRow(dataRuleVO.getRow());
  186. emailTemplateDataRuleDO.setPosition(dataRuleVO.getPosition());
  187. emailTemplateDataRuleDO.setUnitConvert(dataRuleVO.getUnitConvert());
  188. emailTemplateDataRuleDO.setFieldName(dataRuleVO.getFieldName());
  189. emailTemplateDataRuleDO.setReplaceText(dataRuleVO.getReplaceText());
  190. emailTemplateDataRuleDO.setIsvalid(1);
  191. emailTemplateDataRuleDO.setUpdaterId(userId);
  192. emailTemplateDataRuleDO.setUpdateTime(DateUtils.getNowDate());
  193. if(StringUtil.isNull(dataRuleVO.getId())){
  194. emailTemplateDataRuleDO.setCreateTime(DateUtils.getNowDate());
  195. emailTemplateDataRuleDO.setCreatorId(userId);
  196. }
  197. return emailTemplateDataRuleDO;
  198. }
  199. private EmailTemplateInfoDO toEmailTemplateInfoDO(EmailTemplateInfoVO emailTemplateInfoVO) {
  200. Integer userId = UserUtils.getLoginUser().getUserId();
  201. EmailTemplateInfoDO emailDeletionInfoDO = new EmailTemplateInfoDO();
  202. emailDeletionInfoDO.setId(emailTemplateInfoVO.getId());
  203. emailDeletionInfoDO.setName(emailTemplateInfoVO.getName());
  204. emailDeletionInfoDO.setStatus(emailTemplateInfoVO.getStatus());
  205. emailDeletionInfoDO.setDirection(emailTemplateInfoVO.getDirection());
  206. emailDeletionInfoDO.setStartIndex(emailTemplateInfoVO.getStartIndex());
  207. emailDeletionInfoDO.setEndIndex(emailTemplateInfoVO.getEndIndex());
  208. emailDeletionInfoDO.setDescription(emailTemplateInfoVO.getDescription());
  209. emailDeletionInfoDO.setType(emailTemplateInfoVO.getType());
  210. emailDeletionInfoDO.setIsvalid(1);
  211. emailDeletionInfoDO.setUpdateTime(DateUtils.getNowDate());
  212. emailDeletionInfoDO.setUpdaterId(userId);
  213. if(StringUtil.isNull(emailTemplateInfoVO.getId())){
  214. emailDeletionInfoDO.setCreateTime(DateUtils.getNowDate());
  215. emailDeletionInfoDO.setCreatorId(userId);
  216. }
  217. return emailDeletionInfoDO;
  218. }
  219. }