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 d830f0d0..4cefaccc 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 @@ -3,7 +3,9 @@ package com.ghy.order.service.impl; import com.ghy.common.constant.UserConstants; import com.ghy.common.core.text.Convert; import com.ghy.order.domain.OrderDetail; +import com.ghy.order.domain.OrderMaster; import com.ghy.order.mapper.OrderDetailMapper; +import com.ghy.order.mapper.OrderMasterMapper; import com.ghy.order.service.OrderDetailService; import org.springframework.stereotype.Service; @@ -33,6 +35,9 @@ public class OrderDetailServiceImpl implements OrderDetailService { @Resource private OrderDetailMapper orderDetailMapper; + @Resource + private OrderMasterMapper orderMasterMapper; + @Override public int insertOrderDetail(OrderDetail orderDetail) { return orderDetailMapper.insertOrderDetail(orderDetail); @@ -40,7 +45,21 @@ public class OrderDetailServiceImpl implements OrderDetailService { @Override public int updateOrderDetail(OrderDetail orderDetail) { - return orderDetailMapper.updateOrderDetail(orderDetail); + int orderStatus = orderDetail.getOrderStatus(); + boolean flag = Boolean.TRUE; + int result = orderDetailMapper.updateOrderDetail(orderDetail); + // 判断是否需要更新主单状态.即是否有 + for (OrderDetail detail : orderDetailMapper.selectByOrderMasterId(orderDetail.getOrderMasterId())) { + if (detail.getOrderStatus() < orderStatus) { + flag = false; + } + } + if(flag){ + OrderMaster orderMaster = orderMasterMapper.selectById(orderDetailMapper.selectById(orderDetail.getId()).getOrderMasterId()); + orderMaster.setOrderStatus(orderStatus); + orderMasterMapper.updateOrderMaster(orderMaster); + } + return result; } @Override