MailTemplateServiceImpl.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. package com.fdkankan.ucenter.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.fdkankan.common.exception.BusinessException;
  4. import com.fdkankan.ucenter.common.constants.ResultCode;
  5. import com.fdkankan.ucenter.entity.*;
  6. import com.fdkankan.ucenter.mapper.IMailTemplateMapper;
  7. import com.fdkankan.ucenter.service.IMailTemplateService;
  8. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  9. import com.fdkankan.ucenter.service.IScenePlusExtService;
  10. import com.fdkankan.ucenter.util.SendMailUtils;
  11. import lombok.extern.slf4j.Slf4j;
  12. import org.apache.commons.lang3.StringUtils;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Service;
  15. import java.util.HashMap;
  16. import java.util.List;
  17. /**
  18. * <p>
  19. * 服务实现类
  20. * </p>
  21. *
  22. * @author
  23. * @since 2023-01-10
  24. */
  25. @Service
  26. @Slf4j
  27. public class MailTemplateServiceImpl extends ServiceImpl<IMailTemplateMapper, MailTemplate> implements IMailTemplateService {
  28. @Autowired
  29. IScenePlusExtService scenePlusExtService;
  30. @Override
  31. public Boolean sendMail(String email , MailTemplate mailTemplate, String file) {
  32. if(mailTemplate == null){
  33. throw new BusinessException(ResultCode.FAILURE_CODE_400005,ResultCode.FAILURE_MSG_400005);
  34. }
  35. return SendMailUtils.sendMail(mailTemplate.getSendMail(), mailTemplate.getSendPassword(), mailTemplate.getSendHost(),
  36. email, mailTemplate.getSubject(), mailTemplate.getMsg(), file);
  37. }
  38. @Override
  39. public MailTemplate getTemplate(Integer type,String lang) {
  40. LambdaQueryWrapper<MailTemplate> wrapper = new LambdaQueryWrapper<>();
  41. wrapper.eq(MailTemplate::getType,type);
  42. wrapper.eq(MailTemplate::getLang,lang);
  43. return this.getOne(wrapper);
  44. }
  45. @Override
  46. public Boolean sendCodeMail(String email, String code,String lang) {
  47. MailTemplate mailTemplate = this.getTemplate(2,lang);
  48. if(mailTemplate != null){
  49. String msg = mailTemplate.getMsg();
  50. if(StringUtils.isNotBlank(code)){
  51. msg = msg.replace("{code}",code);
  52. }
  53. mailTemplate.setMsg(msg);
  54. }
  55. return sendMail(email,mailTemplate,null);
  56. }
  57. @Override
  58. public Boolean sendPeExMail(String email) {
  59. MailTemplate mailTemplate = this.getTemplate(3,"en");
  60. return sendMail(email,mailTemplate,null);
  61. }
  62. @Override
  63. public Boolean sendPeNoExMail(String email,Integer day) {
  64. MailTemplate mailTemplate = this.getTemplate(4,"en");
  65. if(mailTemplate != null){
  66. String msg = mailTemplate.getMsg();
  67. if(day != null && day >0){
  68. msg = msg.replace("{day}",day.toString());
  69. }
  70. mailTemplate.setMsg(msg);
  71. }
  72. return sendMail(email,mailTemplate,null);
  73. }
  74. @Override
  75. public Boolean sendPeTodayExMail(String email) {
  76. MailTemplate mailTemplate = this.getTemplate(5,"en");
  77. return sendMail(email,mailTemplate,null);
  78. }
  79. @Override
  80. public Boolean sendSceneCooperation(List<ScenePro> proList, List<ScenePlus> plusList, String username,String lang) {
  81. try {
  82. if(proList.size()<=0 && plusList.size() <=0){
  83. return false;
  84. }
  85. StringBuilder webSites = new StringBuilder();
  86. for (ScenePro scenePro : proList) {
  87. webSites.append(scenePro.getWebSite()).append("<p>&nbsp;</p>");
  88. }
  89. for (ScenePlus scenePlus : plusList) {
  90. ScenePlusExt scenePlusExt = scenePlusExtService.getByPlusId(scenePlus.getId());
  91. if(scenePlusExt != null){
  92. webSites.append(scenePlusExt.getWebSite()).append("<p>&nbsp;</p>");
  93. }
  94. }
  95. if(StringUtils.isBlank(webSites)){
  96. return false;
  97. }
  98. MailTemplate mailTemplate = this.getTemplate(6,lang);
  99. if(mailTemplate != null){
  100. String msg = mailTemplate.getMsg();
  101. if(StringUtils.isNotBlank(webSites)){
  102. msg = msg.replace("{sceneWebSites}",webSites.toString());
  103. }
  104. mailTemplate.setMsg(msg);
  105. }
  106. return sendMail(username,mailTemplate,null);
  107. }catch (Exception e){
  108. log.error("邮件发送失败,type:{},error:{}","协作场景邮件",e);
  109. }
  110. return false;
  111. }
  112. @Override
  113. public Boolean sendCameraCooperation(HashMap<Long, Camera> cameraMap, String username, String lang) {
  114. try {
  115. if(cameraMap.size()<=0 ){
  116. return false;
  117. }
  118. StringBuilder snCodes = new StringBuilder();
  119. for (Long cameraId : cameraMap.keySet()) {
  120. if(cameraMap.get(cameraId) != null){
  121. snCodes.append(cameraMap.get(cameraId).getSnCode()).append("<p>&nbsp;</p>");
  122. }
  123. }
  124. if(StringUtils.isBlank(snCodes)){
  125. return false;
  126. }
  127. MailTemplate mailTemplate = this.getTemplate(8,lang);
  128. if(mailTemplate != null){
  129. String msg = mailTemplate.getMsg();
  130. if(StringUtils.isNotBlank(snCodes)){
  131. msg = msg.replace("{snCodes}",snCodes.toString());
  132. }
  133. mailTemplate.setMsg(msg);
  134. }
  135. return sendMail(username,mailTemplate,null);
  136. }catch (Exception e){
  137. log.error("邮件发送失败,type:{},error:{}","协作场景邮件",e);
  138. }
  139. return false;
  140. }
  141. }