ParseSchedulerTask.java 3.0 KB

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