Parcourir la source

1、解决数据同步es会同步过期数据问题

rayson il y a 8 mois
Parent
commit
8f009ed840

+ 9 - 6
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/mq/consumer/ESConsumer.java

@@ -132,7 +132,7 @@ public class ESConsumer implements RocketMQListener<ESJobAdvertisedMergeSendMess
             return;
         }
         // 判断职位是否过期
-        if (checkJobExpireTime(job)) {
+        if (checkJobExpireTimeAndEnable(job)) {
             jobDel(job.getId());
             return;
         }
@@ -158,7 +158,7 @@ public class ESConsumer implements RocketMQListener<ESJobAdvertisedMergeSendMess
             return;
         }
         // 判断职位是否过期
-        if (checkJobExpireTime(job)) {
+        if (checkJobExpireTimeAndEnable(job)) {
             return;
         }
         EnterpriseDO enterpriseDO = enterpriseMapper.selectById(job.getEnterpriseId());
@@ -175,15 +175,18 @@ public class ESConsumer implements RocketMQListener<ESJobAdvertisedMergeSendMess
     }
 
     /**
-     * 判断是否过期
+     * 判断是否过期和是否开启
      *
      * @param job 职位信息
-     * @return true 过期 false 未过期
+     * @return true 过期|不是开启 false 未过期
      **/
-    private boolean checkJobExpireTime(JobAdvertisedDO job) {
+    private boolean checkJobExpireTimeAndEnable(JobAdvertisedDO job) {
         if(null == job.getExpireTime()) {
             return false;
         }
+        if(!JobStatusEnum.ENABLE.getStatus().equals(job.getStatus())) {
+            return true;
+        }
         return job.getExpireTime().isBefore(LocalDateTime.now());
     }
 
@@ -230,7 +233,7 @@ public class ESConsumer implements RocketMQListener<ESJobAdvertisedMergeSendMess
         List<JobAdvertisedDO> jobAdvertisedList = jobAdvertisedMapper.selectList();
         for (JobAdvertisedDO job : jobAdvertisedList) {
             // 判断职位是否过期
-            if (checkJobExpireTime(job)) {
+            if (checkJobExpireTimeAndEnable(job)) {
                 continue;
             }
             EnterpriseDO enterpriseDO = enterpriseMapper.selectById(job.getEnterpriseId());