Procházet zdrojové kódy

fix: 邮件解析统计随时间变化为调整问题修复

chenjianhua před 7 měsíci
rodič
revize
34cf241cf1

+ 2 - 8
service-manage/src/main/java/com/simuwang/manage/init/QuartzConfig.java

@@ -69,14 +69,8 @@ public class QuartzConfig implements ApplicationRunner {
                 paramDTO.setHost(mailboxInfoDO.getServer());
                 paramDTO.setProtocol(mailboxInfoDO.getProtocol());
                 quartzBean.setJobParam(JSON.toJSONString(paramDTO));
-                QuartzUtils.createScheduleJob(scheduler,quartzBean);
-                if(mailboxInfoDO.getOpenStatus() == null){
-                    continue;
-                }
-                if(mailboxInfoDO.getOpenStatus().equals(OpenStatusType.YES.getCode())){
-                    QuartzUtils.resumeScheduleJob(scheduler,quartzBean.getJobName(),quartzBean.getGroupName());
-                }else{
-                    QuartzUtils.pauseScheduleJob(scheduler,quartzBean.getJobName(),quartzBean.getGroupName());
+                if(mailboxInfoDO.getOpenStatus() != null && mailboxInfoDO.getOpenStatus().equals(OpenStatusType.YES.getCode())){
+                    QuartzUtils.createScheduleJob(scheduler,quartzBean);
                 }
             }catch (Exception e) {
                 logger.error(e.getMessage(),e);

+ 16 - 4
service-manage/src/main/java/com/simuwang/manage/service/impl/EmailConfigServiceImpl.java

@@ -156,12 +156,24 @@ public class EmailConfigServiceImpl implements EmailConfigService {
         mailboxInfoDO.setUpdateTime(DateUtils.getNowDate());
         emailConfigMapper.updateById(mailboxInfoDO);
         //设置定时任务
+        QuartzUtils.deleteScheduleJob(scheduler,mailboxInfoDO.getEmail(),groupName);
         if(openStatusVO.getOpenStatus().equals(OpenStatusType.YES.getCode())){
-            QuartzUtils.resumeScheduleJob(scheduler,mailboxInfoDO.getEmail(),groupName);
-        }else{
-            QuartzUtils.pauseScheduleJob(scheduler,mailboxInfoDO.getEmail(),groupName);
+            QuartzBean quartzBean = new QuartzBean();
+            quartzBean.setCronExpression(mailboxInfoDO.getCron());
+            quartzBean.setStatus(mailboxInfoDO.getOpenStatus());
+            quartzBean.setGroupName(groupName);
+            quartzBean.setJobName(mailboxInfoDO.getEmail());
+            quartzBean.setJobClass(JOB_CLASS);
+            //请求参数
+            MailboxInfoDTO paramDTO = new MailboxInfoDTO();
+            paramDTO.setAccount(mailboxInfoDO.getEmail());
+            paramDTO.setPassword(mailboxInfoDO.getPassword());
+            paramDTO.setPort(mailboxInfoDO.getPort());
+            paramDTO.setHost(mailboxInfoDO.getServer());
+            paramDTO.setProtocol(mailboxInfoDO.getProtocol());
+            quartzBean.setJobParam(JSON.toJSONString(paramDTO));
+            QuartzUtils.createScheduleJob(scheduler,quartzBean);
         }
-
     }
     @Override
     public List<MailboxInfoDO> getAll() {

+ 6 - 0
service-manage/src/main/java/com/simuwang/manage/service/impl/ParseEmailServiceImpl.java

@@ -78,6 +78,9 @@ public class ParseEmailServiceImpl implements ParseEmailService {
 
     @Override
     public MybatisPage<EmailParseInfoVO> searchEmailList(EmailParseQuery emailParseQuery){
+        if(emailParseQuery.getTimeRange().equals(TimeRange.FromSetup)){
+            emailParseQuery.setEndDate(DateUtil.getTodayDate());
+        }
         if(!emailParseQuery.getTimeRange().equals(TimeRange.Custom) && !emailParseQuery.getTimeRange().equals(TimeRange.FromSetup)){
             emailParseQuery.setEndDate(DateUtils.getAroundToday(1));
             emailParseQuery.setStartDate( DateUtil.RangeTime(emailParseQuery.getTimeRange().getFloatDateSymbel(),DateUtil.getTodayDate()));
@@ -99,6 +102,9 @@ public class ParseEmailServiceImpl implements ParseEmailService {
 
     @Override
     public Map<String, Integer> searchEmailCount(TimeRange timeRange,String startDate,String endDate) {
+        if(timeRange.equals(TimeRange.FromSetup)){
+            endDate= DateUtil.getTodayDate();
+        }
         if(!timeRange.equals(TimeRange.Custom) && !timeRange.equals(TimeRange.FromSetup)){
             endDate = DateUtils.getAroundToday(1);
             startDate = DateUtil.RangeTime(timeRange.getFloatDateSymbel(),DateUtil.getTodayDate());