From dcaf9f4adbf511c542eb4125d030b800ef3ea86d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Thu, 21 Nov 2024 16:41:18 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=8A=98=E6=89=A3=E9=87=91=E9=A2=9D?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/shopimpl/TbShopTableServiceImpl.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 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 06fba60d..54933f1d 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 @@ -1337,11 +1337,20 @@ public class TbShopTableServiceImpl implements TbShopTableService { outRecords.add(tbActivateOutRecord); cashierCart.setUseCouponInfo(JSONObject.toJSONString(tbActivateOutRecord)); - couponVo.setFinalDiscountAmount(discountAmount); // 优惠券未消耗完毕 if (balanceCart != null && getCanUseCoupon(couponMap, balanceCart.getProductId()) != null) { - discountAmount = reduceProCoupon(couponMap, balanceCart, usedCouponMap, discountAmount, balanceCartList, outRecords, memberId); + // 递归调用并累加递归返回的折扣金额 + discountAmount = discountAmount.add(reduceProCoupon( + couponMap, + balanceCart, + usedCouponMap, + BigDecimal.ZERO, // 避免重复累加,递归时传入新的初始值 + balanceCartList, + outRecords, + memberId + )); } + couponVo.setFinalDiscountAmount(discountAmount); return discountAmount; } return discountAmount;