ParseSchedulerTask.java 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package com.simuwang.manage.task;
  2. import ch.qos.logback.core.util.StringUtil;
  3. import cn.hutool.crypto.asymmetric.KeyType;
  4. import cn.hutool.crypto.asymmetric.RSA;
  5. import cn.hutool.extra.spring.SpringUtil;
  6. import com.alibaba.fastjson2.JSON;
  7. import com.simuwang.base.common.enums.EmailCron;
  8. import com.simuwang.base.common.util.DateUtils;
  9. import com.simuwang.base.common.util.QuartzUtils;
  10. import com.simuwang.base.config.DaqProperties;
  11. import com.simuwang.base.pojo.dos.MailboxInfoDO;
  12. import com.simuwang.base.pojo.dto.MailboxInfoDTO;
  13. import com.simuwang.daq.service.EmailParseApiService;
  14. import com.simuwang.manage.service.EmailConfigService;
  15. import org.quartz.JobDataMap;
  16. import org.quartz.JobExecutionContext;
  17. import org.quartz.JobExecutionException;
  18. import org.slf4j.Logger;
  19. import org.slf4j.LoggerFactory;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.scheduling.quartz.QuartzJobBean;
  22. import org.springframework.stereotype.Component;
  23. import java.time.Duration;
  24. import java.time.LocalDateTime;
  25. import java.util.Date;
  26. /**
  27. * FileName: ParseSchedulerTask
  28. * Author: chenjianhua
  29. * Date: 2024/9/17 10:48
  30. * Description: ${DESCRIPTION}
  31. */
  32. @Component
  33. public class ParseSchedulerTask extends QuartzJobBean {
  34. private EmailParseApiService emailParseApiService;
  35. private EmailConfigService emailConfigService;
  36. private static final Logger log = LoggerFactory.getLogger(ParseSchedulerTask.class);
  37. @Override
  38. protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
  39. emailParseApiService = SpringUtil.getBean(EmailParseApiService.class);
  40. emailConfigService = SpringUtil.getBean(EmailConfigService.class);
  41. log.info("ParseSchedulerTask {}", context.getJobDetail().getKey());JobDataMap jobDataMap = context.getJobDetail().getJobDataMap();
  42. log.info("ParseSchedulerTask jobDataMap {}", JSON.toJSONString(jobDataMap));
  43. String account = jobDataMap.get("account").toString();
  44. String port = jobDataMap.get("port").toString();
  45. String protocol = jobDataMap.get("protocol").toString();
  46. String host = jobDataMap.get("host").toString();
  47. String password = jobDataMap.get("password").toString();
  48. MailboxInfoDTO paramDTO = new MailboxInfoDTO();
  49. paramDTO.setAccount(account);
  50. paramDTO.setPassword(password);
  51. paramDTO.setPort(port);
  52. paramDTO.setHost(host);
  53. paramDTO.setProtocol(protocol);
  54. MailboxInfoDO mailboxInfoDO = emailConfigService.selectEmailConfigByEmail(account);
  55. if(mailboxInfoDO != null){
  56. Date startDate = null;
  57. Date endDate = null;
  58. if(EmailCron.getEmailCronByCron(mailboxInfoDO.getCron()) == EmailCron.EVERY_HOUR){
  59. endDate = DateUtils.getNowDate();
  60. startDate = DateUtils.addHours(DateUtils.getNowDate(),-1);
  61. }else{
  62. endDate = DateUtils.getNowDate();
  63. startDate = DateUtils.addHours(DateUtils.getNowDate(),-24);
  64. }
  65. log.info(account+"开始执行邮件解析任务,时间:"+LocalDateTime.now());
  66. emailParseApiService.parseEmail(paramDTO,startDate,endDate);
  67. log.info(account+"結束执行邮件解析任务,时间:"+LocalDateTime.now());
  68. }
  69. }
  70. }