EmailTemplateInfoServiceImpl.java 13 KB

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