diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java index 44e8fe3..27d80de 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -219,11 +219,22 @@ public class OrderService { List list = mpOrderDetailMapper.selectList(new LambdaQueryWrapper() .eq(TbOrderDetail::getOrderId, orderInfo.getId()) .ne(TbOrderDetail::getProductId, TableConstant.CART_SEAT_ID)); + HashMap detailHashMap = new HashMap<>(); + list.forEach(item -> { + TbOrderDetail orderDetail = detailHashMap.get(item.getCartId().toString()); + if (orderDetail == null) { + detailHashMap.put(item.getCartId().toString(), item); + }else { + orderDetail.setNum(orderDetail.getNum() + item.getNum()); + orderDetail.setPriceAmount(orderDetail.getPriceAmount().add(item.getPriceAmount())); + orderDetail.setPackAmount(orderDetail.getPackAmount().add(item.getPackAmount())); + } + }); int num = 0; - for (TbOrderDetail orderDetail : list) { + for (TbOrderDetail orderDetail : detailHashMap.values()) { num = num + orderDetail.getNum(); } - orderInfo.setDetailList(list); + orderInfo.setDetailList(new ArrayList<>(detailHashMap.values())); orderInfo.setTotalNumber(num); } //