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 c9806d07..6ebfc8f1 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 @@ -366,19 +366,6 @@ public class OrderDetailServiceImpl implements OrderDetailService { // 更新订单状态 orderDetailMapper.updateStatus(orderDetailId, OrderStatus.FINISH.code()); - 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) { - orderMasterMapper.updateStatus(orderDetail.getOrderMasterId(), OrderStatus.FINISH.code()); - } // 加价单手续费补偿成功与否 boolean compensate = false; @@ -514,6 +501,25 @@ 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