Browse Source

管乐迷商城改造

zouxuan 1 year ago
parent
commit
e1d7bbbfc3

+ 15 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SellOrderServiceImpl.java

@@ -254,14 +254,22 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
 
     @Override
     public List<OrderCreate.OrderItem> convertMallOrder(List<SellOrder> sellOrderList) {
+        //按组合商品分组
         List<OrderCreate.OrderItem> orderItems = new ArrayList<>();
-        for (SellOrder e : sellOrderList) {
-            OrderCreate.OrderItem orderItemCreate = new OrderCreate.OrderItem();
-            orderItemCreate.setProductQuantity(e.getNum());
-            orderItemCreate.setProductSkuId(e.getGoodsSkuId().longValue());
-            orderItemCreate.setRealAmount(e.getExpectAmount());
-            orderItems.add(orderItemCreate);
-        }
+        Map<Integer, List<SellOrder>> goodsIdSellOrderMap = sellOrderList.stream().collect(Collectors.groupingBy(SellOrder::getParentGoodsId));
+        goodsIdSellOrderMap.keySet().forEach(e -> {
+            List<SellOrder> sellOrders = goodsIdSellOrderMap.get(e);
+            //按sku分组
+            Map<Integer, List<SellOrder>> skuIdSellOrderMap = sellOrders.stream().collect(Collectors.groupingBy(SellOrder::getGoodsSkuId));
+            skuIdSellOrderMap.keySet().forEach(skuId -> {
+                List<SellOrder> orders = skuIdSellOrderMap.get(skuId);
+                OrderCreate.OrderItem orderItemCreate = new OrderCreate.OrderItem();
+                orderItemCreate.setProductQuantity(orders.size());
+                orderItemCreate.setProductSkuId(skuId.longValue());
+                orderItemCreate.setRealAmount(orders.get(0).getExpectAmount());
+                orderItems.add(orderItemCreate);
+            });
+        });
         return orderItems;
     }