From ba6af5e2cf62b9d35b936b48095a0f2816d04e63 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, 18 Nov 2024 11:40:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E6=83=A0=E5=88=B8=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E9=A1=BA=E5=BA=8F=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/shopimpl/TbShopTableServiceImpl.java | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index d78f59fc..dd334f6a 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -2187,12 +2187,16 @@ public class TbShopTableServiceImpl implements TbShopTableService { List cashierCarts = mpCashierCartService.selectByOrderIdAndState(orderInfo.getId()); List detailList = mpOrderDetailService.selectByOrderId(orderInfo.getId()); BigDecimal discount = payDTO.getDiscount(); - cashierCarts.forEach(item -> { - item.setTotalAmount(item.getTotalAmount().multiply(discount).setScale(2, RoundingMode.HALF_UP)); + BigDecimal totalAmount = BigDecimal.ZERO; + for (TbCashierCart cashierCart : cashierCarts) { + if (cashierCart.getUserCouponId() == null) { + cashierCart.setTotalAmount(cashierCart.getTotalAmount().multiply(discount).setScale(2, RoundingMode.HALF_UP)); + totalAmount = cashierCart.getTotalAmount(); + } // item.setSalePrice(item.getSalePrice().multiply(discount).setScale(2, RoundingMode.HALF_UP)); // item.setMemberPrice(item.getMemberPrice().multiply(discount).setScale(2, RoundingMode.HALF_UP)); - }); + } detailList.forEach(item -> { item.setPriceAmount(item.getPriceAmount().multiply(discount).setScale(2, RoundingMode.HALF_UP)); @@ -2203,15 +2207,15 @@ public class TbShopTableServiceImpl implements TbShopTableService { mpCashierCartService.updateBatchById(cashierCarts); mpOrderDetailService.updateBatchById(detailList); BigDecimal oldAmount = orderInfo.getOrderAmount(); - BigDecimal finalAmount = orderInfo.getOrderAmount().multiply(payDTO.getDiscount()).setScale(2, RoundingMode.HALF_UP); - BigDecimal discountAmount = oldAmount.subtract(finalAmount); +// BigDecimal finalAmount = orderInfo.getOrderAmount().multiply(payDTO.getDiscount()).setScale(2, RoundingMode.HALF_UP); + BigDecimal discountAmount = oldAmount.subtract(totalAmount); orderInfo.setDiscountAmount(discountAmount); orderInfo.setDiscountRatio(payDTO.getDiscount()); - orderInfo.setOrderAmount(finalAmount); - orderInfo.setAmount(finalAmount); - orderInfo.setSettlementAmount(finalAmount); + orderInfo.setOrderAmount(totalAmount); + orderInfo.setAmount(totalAmount); + orderInfo.setSettlementAmount(totalAmount); mpOrderInfoService.updateById(orderInfo); - return finalAmount; + return totalAmount; } @Override