EmailConfigServiceImpl.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package com.simuwang.manage.service.impl;
  2. import com.simuwang.base.common.conts.UserConstants;
  3. import com.simuwang.base.common.enums.EmailCron;
  4. import com.simuwang.base.common.enums.ResultCode;
  5. import com.simuwang.base.common.util.EmailUtil;
  6. import com.simuwang.base.common.util.StringUtil;
  7. import com.simuwang.base.mapper.MailboxInfoMapper;
  8. import com.simuwang.base.pojo.dos.MailboxInfoDO;
  9. import com.simuwang.base.pojo.dto.MailboxInfoDTO;
  10. import com.simuwang.base.pojo.vo.MailboxInfoTableVO;
  11. import com.simuwang.base.pojo.vo.MailboxInfoVO;
  12. import com.simuwang.manage.service.EmailConfigService;
  13. import jakarta.mail.MessagingException;
  14. import jakarta.mail.Store;
  15. import org.quartz.Scheduler;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Service;
  18. import org.springframework.transaction.annotation.Transactional;
  19. import java.util.Date;
  20. import java.util.List;
  21. /**
  22. * FileName: EmailConfigServiceImpl
  23. * Author: chenjianhua
  24. * Date: 2024/9/9 13:40
  25. * Description: ${DESCRIPTION}
  26. */
  27. @Service
  28. public class EmailConfigServiceImpl implements EmailConfigService {
  29. @Autowired
  30. private MailboxInfoMapper emailConfigMapper;
  31. @Autowired
  32. private Scheduler scheduler;
  33. @Override
  34. public List<MailboxInfoTableVO> searchEmailConfigList(String email) {
  35. List<MailboxInfoTableVO> mailboxInfoTableVOS = emailConfigMapper.searchEmailConfigList(email);
  36. for(MailboxInfoTableVO mailboxInfoTableVO : mailboxInfoTableVOS){ //cron表达式转文本描述
  37. mailboxInfoTableVO.setCron(EmailCron.getEmailCronByCron(mailboxInfoTableVO.getCron()).getText());
  38. }
  39. return mailboxInfoTableVOS;
  40. }
  41. @Override
  42. @Transactional
  43. public void saveEmailConfig(MailboxInfoVO mailboxInfoVO) {
  44. MailboxInfoDO mailboxInfoDO = toMailboxInfoDO(mailboxInfoVO);
  45. if(mailboxInfoVO.getId() == null){
  46. mailboxInfoDO.setCreateTime(new Date());
  47. mailboxInfoDO.setCron(EmailCron.getEmailCronByText(mailboxInfoVO.getCron()).getCron());
  48. emailConfigMapper.insert(mailboxInfoDO);
  49. }else{
  50. emailConfigMapper.updateById(mailboxInfoDO);
  51. }
  52. }
  53. @Override
  54. public String connectTest(MailboxInfoVO mailboxInfoVO) {
  55. MailboxInfoDTO mailboxInfoDTO = new MailboxInfoDTO();
  56. mailboxInfoDTO.setAccount(mailboxInfoVO.getEmail());
  57. mailboxInfoDTO.setPassword(mailboxInfoVO.getPassword());
  58. mailboxInfoDTO.setPort(mailboxInfoVO.getPort());
  59. mailboxInfoDTO.setHost(mailboxInfoVO.getServer());
  60. mailboxInfoDTO.setProtocol(mailboxInfoVO.getProtocol());
  61. Store store = EmailUtil.getStoreNew(mailboxInfoDTO);
  62. if(store != null){
  63. try {
  64. store.close();
  65. } catch (MessagingException e) {
  66. throw new RuntimeException(e);
  67. }
  68. return ResultCode.CONNECT_SUCCESS.getMsg();
  69. }
  70. return ResultCode.CONNECT_ERROR.getMsg();
  71. }
  72. @Override
  73. public void deleteEmailConfig(List<Integer> idList) {
  74. emailConfigMapper.deleteEmailConfigByIds(idList);
  75. }
  76. @Override
  77. public boolean checkEmailUnique(String email) {
  78. MailboxInfoDO mailboxInfoDO = emailConfigMapper.checkEmailUnique(email);
  79. if (StringUtil.isNotNull(mailboxInfoDO))
  80. {
  81. return UserConstants.NOT_UNIQUE;
  82. }
  83. return UserConstants.UNIQUE;
  84. }
  85. private MailboxInfoDO toMailboxInfoDO(MailboxInfoVO mailboxInfoVO) {
  86. MailboxInfoDO mailboxInfoDO = new MailboxInfoDO();
  87. mailboxInfoDO.setIsvalid(1);
  88. mailboxInfoDO.setId(mailboxInfoVO.getId());
  89. mailboxInfoDO.setEmail(mailboxInfoVO.getEmail());
  90. mailboxInfoDO.setCron(EmailCron.getEmailCronByText(mailboxInfoVO.getCron()).getCron());
  91. mailboxInfoDO.setServer(mailboxInfoVO.getServer());
  92. mailboxInfoDO.setPort(mailboxInfoVO.getPort());
  93. mailboxInfoDO.setDescription(mailboxInfoVO.getDescription());
  94. mailboxInfoDO.setPassword(mailboxInfoVO.getPassword());
  95. mailboxInfoDO.setType(mailboxInfoVO.getType());
  96. mailboxInfoDO.setProtocol(mailboxInfoVO.getProtocol());
  97. mailboxInfoDO.setOpenStatus(mailboxInfoVO.getOpenStatus());
  98. mailboxInfoDO.setUpdateTime(new Date());
  99. mailboxInfoDO.setUpdaterId(999);
  100. mailboxInfoDO.setCreatorId(999);
  101. return mailboxInfoDO;
  102. }
  103. }