Selaa lähdekoodia

Merge branch 'feature/0613-opt' into develop-new

yuanliang 1 vuosi sitten
vanhempi
commit
5d3d0f1a44

+ 14 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/OmsOrderReturnApplyServiceImpl.java

@@ -37,6 +37,7 @@ import java.math.RoundingMode;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -154,10 +155,23 @@ public class OmsOrderReturnApplyServiceImpl implements OmsOrderReturnApplyServic
             return;
         }
 
+        OmsOrderItemExample itemExample = new OmsOrderItemExample();
+        itemExample.createCriteria().andOrderSnEqualTo(orderSn);
+        List<OmsOrderItem> items = orderItemMapper.selectByExample(itemExample);
+        Map<Long, Integer> itemIdNumMap = items.stream().collect(Collectors.groupingBy(OmsOrderItem::getId, Collectors.summingInt(OmsOrderItem::getProductQuantity)));
+
 
         OmsOrderReturnApplyExample applyExample = new OmsOrderReturnApplyExample();
         applyExample.createCriteria().andOrderSnEqualTo(orderSn);
         List<OmsOrderReturnApply> applyList = returnApplyMapper.selectByExample(applyExample);
+        Map<Long, Integer> returnMap = applyList.stream().collect(Collectors.groupingBy(OmsOrderReturnApply::getOrderItemId, Collectors.summingInt(OmsOrderReturnApply::getProductCount)));
+
+        // 全部退货才更新状态
+        for (Long itemId : itemIdNumMap.keySet()) {
+            if (!itemIdNumMap.get(itemId).equals(returnMap.getOrDefault(itemId, 0))) {
+                return;
+            }
+        }
 
         List<Integer> statusList = applyList.stream().map(OmsOrderReturnApply::getStatus).distinct().collect(Collectors.toList());
         // 全部退回完成,更新订单状态为已关闭