|
@@ -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;
|
|
|
}
|
|
|
|