EmailConfigController.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. package com.simuwang.manage.api.email;
  2. import com.simuwang.base.common.support.MybatisPage;
  3. import com.simuwang.base.pojo.dto.query.EmailPageQuery;
  4. import com.simuwang.base.pojo.vo.*;
  5. import com.simuwang.manage.service.EmailConfigService;
  6. import com.smppw.common.pojo.ResultVo;
  7. import com.smppw.common.pojo.enums.status.ResultCode;
  8. import org.slf4j.Logger;
  9. import org.slf4j.LoggerFactory;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.web.bind.annotation.*;
  12. /**
  13. * 接收邮箱配置管理
  14. * Author: chenjianhua
  15. * Date: 2024/9/9 11:40
  16. * Description: ${DESCRIPTION}
  17. */
  18. @RestController
  19. @RequestMapping("/v1/email")
  20. public class EmailConfigController{
  21. @Autowired
  22. private EmailConfigService emailConfigService;
  23. private static final Logger logger = LoggerFactory.getLogger(EmailConfigController.class);
  24. /**
  25. * 页面展示查询
  26. * @param emailPageQuery 邮箱
  27. * @return
  28. */
  29. @RequestMapping("search-email-list")
  30. public MybatisPage<MailboxInfoTableVO> searchEmailConfigList(EmailPageQuery emailPageQuery){
  31. MybatisPage<MailboxInfoTableVO> result = emailConfigService.searchEmailConfigList(emailPageQuery);
  32. return result;
  33. }
  34. /**
  35. * 保存邮箱配置
  36. * @param mailboxInfoVO
  37. * @return
  38. */
  39. @PostMapping("save-email-config")
  40. public ResultVo saveEmailConfig(@RequestBody MailboxInfoVO mailboxInfoVO){
  41. ResultVo vo = new ResultVo(ResultCode.SAVE_SUCCESS.getCode());
  42. try{
  43. if(mailboxInfoVO.getId() == null && !emailConfigService.checkEmailUnique(mailboxInfoVO.getEmail())){
  44. vo.setCode(ResultCode.SAVE_FAILED.getCode());
  45. vo.setMsg("邮箱地址已存在,无需添加");
  46. return vo;
  47. }
  48. emailConfigService.saveEmailConfig(mailboxInfoVO);
  49. vo.setData(true);
  50. }catch (Exception e){
  51. vo.setCode(ResultCode.SAVE_FAILED.getCode());
  52. logger.error(e.getMessage(),e);
  53. }
  54. return vo;
  55. }
  56. /**
  57. * 开启关闭邮箱启动状态
  58. * @param openStatusVO
  59. * @return
  60. */
  61. @PostMapping("control-email-status")
  62. public ResultVo controlEmailConfig(@RequestBody OpenStatusVO openStatusVO){
  63. ResultVo vo = new ResultVo(ResultCode.SAVE_SUCCESS.getCode());
  64. try{
  65. emailConfigService.controlEmailConfig(openStatusVO);
  66. vo.setData(true);
  67. }catch (Exception e){
  68. vo.setCode(ResultCode.SAVE_FAILED.getCode());
  69. logger.error(e.getMessage(),e);
  70. }
  71. return vo;
  72. }
  73. /**
  74. * 根据ID查询邮箱配置
  75. * @param idVO
  76. * @return
  77. */
  78. @GetMapping("search-email-config")
  79. public ResultVo searchEmailConfig(IdVO idVO){
  80. ResultVo vo = new ResultVo(ResultCode.SAVE_SUCCESS.getCode());
  81. try{
  82. MailboxInfoVO mailboxInfoVO = emailConfigService.searchEmailConfigById(idVO.getId());
  83. vo.setData(mailboxInfoVO);
  84. }catch (Exception e){
  85. vo.setCode(ResultCode.SAVE_FAILED.getCode());
  86. logger.error(e.getMessage(),e);
  87. }
  88. return vo;
  89. }
  90. /**
  91. * 批量删除邮箱配置
  92. * @param idListVO
  93. * @return
  94. */
  95. @RequestMapping("delete-email-config")
  96. public boolean deleteEmailConfig(@RequestBody IdListVO idListVO){
  97. emailConfigService.deleteEmailConfig(idListVO.getIdList());
  98. return true;
  99. }
  100. /**
  101. * 手动触发指定时间区间的邮件解析
  102. * @param parseParamVO
  103. * @return
  104. */
  105. @RequestMapping("parse-email")
  106. public boolean parseEmail(@RequestBody ParseParamVO parseParamVO){
  107. emailConfigService.parseEmail(parseParamVO);
  108. return true;
  109. }
  110. /**
  111. * 立即执行一次
  112. * @param idVO
  113. * @return
  114. */
  115. @RequestMapping("run-once")
  116. public boolean runOnce(@RequestBody IdVO idVO){
  117. emailConfigService.runOnce(idVO.getId());
  118. return true;
  119. }
  120. /**
  121. * 邮箱连接测试
  122. * @param mailboxInfoVO
  123. * @return
  124. */
  125. @RequestMapping("connect-test")
  126. public ResultVo connectTest(@RequestBody MailboxInfoVO mailboxInfoVO){
  127. ResultVo vo = new ResultVo(ResultCode.SUCCESS.getCode());
  128. try{
  129. vo = emailConfigService.connectTest(mailboxInfoVO);
  130. }catch (Exception e){
  131. vo.setMsg(e.getMessage());
  132. }
  133. return vo;
  134. }
  135. }