Sfoglia il codice sorgente

Merge branch 'zx_saas_goods' of http://git.dayaedu.com/yonge/mec into test

zouxuan 1 anno fa
parent
commit
b10e8af55e

+ 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.stream().map(SellOrder::getExpectAmount).reduce(BigDecimal.ZERO, BigDecimal::add).divide(new BigDecimal(orders.size()), 2, RoundingMode.DOWN));
+                orderItems.add(orderItemCreate);
+            });
+        });
         return orderItems;
     }
 

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentRouteOrderServiceImpl.java

@@ -544,15 +544,15 @@ public class StudentPaymentRouteOrderServiceImpl extends BaseServiceImpl<Long, S
                 outOrderInfoDto.setCoopName(cooperationOrgan.getName());
             }
         }
+        BigDecimal goodsAmount = BigDecimal.ZERO;
         List<SellOrder> sellOrders = sellOrderService.getDao().getOrderSellOrder(orderId);
         if(CollectionUtils.isNotEmpty(sellOrders)){
-            BigDecimal goodsAmount = sellOrders.stream().map(SellOrder::getActualAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+            goodsAmount = sellOrders.stream().map(SellOrder::getActualAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
             outOrderInfoDto.setSellOrders(sellOrders);
-            BigDecimal serviceAmount = outOrderInfoDto.getStudentPaymentOrder().getActualAmount().subtract(goodsAmount);
-            outOrderInfoDto.setServiceAmount(serviceAmount);
             outOrderInfoDto.setGoodsAmount(goodsAmount);
         }
-
+        BigDecimal serviceAmount = outOrderInfoDto.getStudentPaymentOrder().getActualAmount().subtract(goodsAmount);
+        outOrderInfoDto.setServiceAmount(serviceAmount);
         return outOrderInfoDto;
     }