Эх сурвалжийг харах

xxljob动态参数定时已完成

jyc 3 долоо хоног өмнө
parent
commit
b780f145ea

+ 26 - 13
alien-job/src/main/java/shop/alien/job/store/LawyerOrderJob.java

@@ -2,6 +2,8 @@ package shop.alien.job.store;
 
 import com.alibaba.fastjson2.util.DateUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.xxl.job.core.handler.annotation.XxlJob;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -13,6 +15,7 @@ import shop.alien.mapper.LawyerConsultationOrderMapper;
 
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 团购上下架数据统计
@@ -30,22 +33,32 @@ public class LawyerOrderJob {
     private final LawyerConsultationOrderMapper lawyerConsultationOrderMapper;
 
     /**
-     * 待支付订单超时处理
+     * 接单订单完成处理
      */
     @XxlJob("acceptOrderStatus")
     @Transactional(rollbackFor = Exception.class)
-    public void acceptOrderStatus() {
-        String format = DateUtils.format(shop.alien.util.common.DateUtils.calcDays(new Date(), -4), "yyyy-MM-dd");
-        LambdaQueryWrapper<LawyerConsultationOrder> lambdaQueryWrapper = new LambdaQueryWrapper<LawyerConsultationOrder>()
-                .eq(LawyerConsultationOrder::getOrderStatus, 1)
-                .like(LawyerConsultationOrder::getAcceptOrdersTime, format)
-                .eq(LawyerConsultationOrder::getDeleteFlag, 0);
-        List<LawyerConsultationOrder> lawyerConsultationOrders = lawyerConsultationOrderMapper.selectList(lambdaQueryWrapper);
-        for (LawyerConsultationOrder lawyerConsultationOrder : lawyerConsultationOrders) {
-            LawyerConsultationOrder order = new LawyerConsultationOrder();
-            order.setId(lawyerConsultationOrder.getId());
-            order.setOrderStatus(4);
-            lawyerConsultationOrderMapper.updateById(order);
+    public void acceptOrderStatus(String param) {
+        if (StringUtils.isNotEmpty(param)) {
+            LambdaQueryWrapper<LawyerConsultationOrder> lambdaQueryWrapper = new LambdaQueryWrapper<LawyerConsultationOrder>()
+                    .eq(LawyerConsultationOrder::getOrderStatus, 2)
+                    .eq(LawyerConsultationOrder::getDeleteFlag, 0);
+            List<LawyerConsultationOrder> lawyerConsultationOrders = lawyerConsultationOrderMapper.selectList(lambdaQueryWrapper);
+            LambdaUpdateWrapper<LawyerConsultationOrder> lawyerConsultationOrderLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+            lawyerConsultationOrderLambdaUpdateWrapper.set(LawyerConsultationOrder::getOrderStatus, 3)
+                    .in(LawyerConsultationOrder::getId, lawyerConsultationOrders.stream().map(LawyerConsultationOrder::getId).collect(Collectors.toList()));
+            lawyerConsultationOrderMapper.update(null, lawyerConsultationOrderLambdaUpdateWrapper);
+        } else {
+            log.info("开始执行待接单订单超时处理任务");
+            String format = DateUtils.format(shop.alien.util.common.DateUtils.calcDays(new Date(), -4), "yyyy-MM-dd");
+            LambdaQueryWrapper<LawyerConsultationOrder> lambdaQueryWrapper = new LambdaQueryWrapper<LawyerConsultationOrder>()
+                    .eq(LawyerConsultationOrder::getOrderStatus, 2)
+                    .like(LawyerConsultationOrder::getAcceptOrdersTime, format)
+                    .eq(LawyerConsultationOrder::getDeleteFlag, 0);
+            List<LawyerConsultationOrder> lawyerConsultationOrders = lawyerConsultationOrderMapper.selectList(lambdaQueryWrapper);
+            LambdaUpdateWrapper<LawyerConsultationOrder> lawyerConsultationOrderLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+            lawyerConsultationOrderLambdaUpdateWrapper.set(LawyerConsultationOrder::getOrderStatus, 3)
+                    .in(LawyerConsultationOrder::getId, lawyerConsultationOrders.stream().map(LawyerConsultationOrder::getId).collect(Collectors.toList()));
+            lawyerConsultationOrderMapper.update(null, lawyerConsultationOrderLambdaUpdateWrapper);
         }
     }
 }