diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java index 6ebfc8f1..f707e4c6 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java @@ -33,7 +33,6 @@ import com.huifu.adapay.core.exception.BaseAdaPayException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; -import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; @@ -45,7 +44,10 @@ import java.math.RoundingMode; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatterBuilder; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; @@ -63,8 +65,6 @@ public class OrderDetailServiceImpl implements OrderDetailService { .appendValue(DAY_OF_MONTH, 2).appendValue(HOUR_OF_DAY, 2) .appendValue(MINUTE_OF_HOUR, 2).appendValue(SECOND_OF_MINUTE, 2).toFormatter(); - @Resource - private ThreadPoolTaskExecutor executor; @Resource private OrderDetailMapper orderDetailMapper; @Resource @@ -501,25 +501,6 @@ public class OrderDetailServiceImpl implements OrderDetailService { logger.error("自动发起提现失败: 子订单code={}, deptId={}, memberId={}", odCode, financialDetail.getDeptId(), memberId, e); } // --------------------- 自动提现流程 end --------------------- - - // --------------------- 触发主订单完单流程 start --------------------- - try { - List orderDetails = orderDetailMapper.selectByOrderMasterId(orderDetail.getOrderMasterId()); - Set statusSet = orderDetails.stream().map(OrderDetail::getOrderStatus).collect(Collectors.toSet()); - boolean allFinish = true; - for (Integer integer : statusSet) { - if (integer < 5) { - allFinish = false; - break; - } - } - // 如果已经不存在"已完成"和"已取消"以外的子订单 就把主订单也改为完成 - if (allFinish) { - orderMasterService.finish(orderDetail.getOrderMasterId()); - } - } catch (Exception e) { - logger.error(e.getMessage(), e); - } } @Override diff --git a/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java b/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java index badd6c85..a74b2526 100644 --- a/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java +++ b/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java @@ -3,6 +3,7 @@ package com.ghy.quartz.service.impl; import com.ghy.common.enums.FinancialDetailType; import com.ghy.common.enums.OrderStatus; import com.ghy.order.domain.OrderDetail; +import com.ghy.order.domain.OrderMaster; import com.ghy.order.service.OrderDetailService; import com.ghy.order.service.OrderMasterService; import com.ghy.payment.domain.FinancialDetail; @@ -23,6 +24,8 @@ import java.math.BigDecimal; import java.util.Collections; import java.util.Date; import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; @Service public class OrderServiceImpl implements OrderService { @@ -149,5 +152,27 @@ public class OrderServiceImpl implements OrderService { } } } + + List orderMasters = orderMasterService.selectUnfinished(); + for (OrderMaster om : orderMasters) { + try { + List ods = orderDetailService.selectByOrderMasterId(om.getId()); + Set statusSet = ods.stream().map(OrderDetail::getOrderStatus).collect(Collectors.toSet()); + boolean allFinish = true; + for (Integer integer : statusSet) { + if (integer < 5) { + allFinish = false; + break; + } + } + // 如果已经不存在"已完成"和"已取消"以外的子订单 就把主订单也改为完成 + if (allFinish) { + logger.info("主订单可以完成了[id={} code={}]", om.getId(), om.getCode()); + orderMasterService.finish(om.getId()); + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + } } }