From 09aae17a0276300b5dcde27fefc21809aa39fa63 Mon Sep 17 00:00:00 2001 From: chc <1501738723@qq.com> Date: Tue, 27 May 2025 19:31:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=B2=E6=9F=93=E4=BC=98=E6=83=A0=E5=88=B8?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E5=A2=9E=E5=8A=A0=E4=B8=80=E6=AC=A1=E9=81=8D?= =?UTF-8?q?=E5=8E=86=EF=BC=8C=E7=A1=AE=E4=BF=9D=E4=BC=98=E6=83=A0=E5=88=B8?= =?UTF-8?q?=E4=B8=80=E5=AE=9A=E5=8F=AF=E4=BB=A5=E6=AD=A3=E5=B8=B8=E4=BD=BF?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/order/cart/render/impl/CouponRender.java | 12 ++++++++++-- .../modules/order/cart/service/CartServiceImpl.java | 4 +++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CouponRender.java b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CouponRender.java index 36d0423ab..c79934265 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CouponRender.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CouponRender.java @@ -212,13 +212,21 @@ public class CouponRender implements CartRenderStep { MemberCouponDTO platformCoupon = tradeDTO.getPlatformCoupon(); //如果有勾选平台优惠券 if (platformCoupon != null) { - renderSku(tradeDTO, platformCoupon); + for (MemberCoupon canUseCoupon : tradeDTO.getCanUseCoupons()) { + if(canUseCoupon.getCouponId().equals(platformCoupon.getMemberCoupon().getCouponId())){ + renderSku(tradeDTO, platformCoupon); + } + } } //计算商家优惠券 Map map = tradeDTO.getStoreCoupons(); if (map != null && map.size() > 0) { for (MemberCouponDTO memberCouponDTO : map.values()) { - renderSku(tradeDTO, memberCouponDTO); + for (MemberCoupon canUseCoupon : tradeDTO.getCanUseCoupons()) { + if(canUseCoupon.getCouponId().equals(memberCouponDTO.getMemberCoupon().getCouponId())){ + renderSku(tradeDTO, memberCouponDTO); + } + } } } } diff --git a/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java index fc70f12a8..549e5a7a0 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java @@ -638,13 +638,15 @@ public class CartServiceImpl implements CartService { if (Boolean.FALSE.equals(cartSkuVO.getChecked())) { continue; } + //使用优惠券时判断最新的sku价格。与后面渲染一致 + GoodsSku goodsSku = goodsSkuService.getGoodsSkuByIdFromCache(cartSkuVO.getGoodsSku().getId()); //有促销金额则用促销金额,否则用商品原价 if (cartSkuVO.getPromotionMap() != null && !cartSkuVO.getPromotionMap().isEmpty()) { if (cartSkuVO.getPromotionMap().keySet().stream().anyMatch(i -> i.contains(PromotionTypeEnum.PINTUAN.name()) || i.contains(PromotionTypeEnum.SECKILL.name()))) { cartPrice = CurrencyUtil.add(cartPrice, CurrencyUtil.mul(cartSkuVO.getPurchasePrice(), cartSkuVO.getNum())); skuPrice.put(cartSkuVO.getGoodsSku().getId(), CurrencyUtil.mul(cartSkuVO.getPurchasePrice(), cartSkuVO.getNum())); } else { - cartPrice = CurrencyUtil.add(cartPrice, CurrencyUtil.mul(cartSkuVO.getGoodsSku().getPrice(), cartSkuVO.getNum())); + cartPrice = CurrencyUtil.add(cartPrice, CurrencyUtil.mul(goodsSku.getPrice(), cartSkuVO.getNum())); skuPrice.put(cartSkuVO.getGoodsSku().getId(), CurrencyUtil.mul(cartSkuVO.getGoodsSku().getPrice(), cartSkuVO.getNum())); } } else {