From 8d125fddd335e86de81944f7a4899f0bf74ddbbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Mon, 25 Nov 2024 14:22:19 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A4=9A=E6=9D=A1=E9=80=80=E6=AC=BEdeta?= =?UTF-8?q?il=E5=90=88=E5=B9=B6=E4=B8=BA=E5=8D=95=E6=9D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/service/OrderService.java | 36 +++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) 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 27d80de..4e63053 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -219,22 +219,30 @@ 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 : detailHashMap.values()) { - num = num + orderDetail.getNum(); + if (!"unpaid".equals(orderInfo.getStatus())) { + 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())); + } + }); + + for (TbOrderDetail orderDetail : detailHashMap.values()) { + num = num + orderDetail.getNum(); + } + orderInfo.setDetailList(new ArrayList<>(detailHashMap.values())); + }else { + orderInfo.setDetailList(list); } - orderInfo.setDetailList(new ArrayList<>(detailHashMap.values())); + + orderInfo.setTotalNumber(num); } //