修改子订单完成的逻辑

This commit is contained in:
HH 2022-12-14 19:48:04 +08:00
parent 5606c8fdbc
commit adecf6be3b
1 changed files with 19 additions and 13 deletions

View File

@ -366,19 +366,6 @@ public class OrderDetailServiceImpl implements OrderDetailService {
// 更新订单状态
orderDetailMapper.updateStatus(orderDetailId, OrderStatus.FINISH.code());
List<OrderDetail> orderDetails = orderDetailMapper.selectByOrderMasterId(orderDetail.getOrderMasterId());
Set<Integer> 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<OrderDetail> orderDetails = orderDetailMapper.selectByOrderMasterId(orderDetail.getOrderMasterId());
Set<Integer> 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