From 976ce313c5c4034a38dc5d9e35c9b574aeea96b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Fri, 22 Nov 2024 14:41:35 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=8F=96=E6=B6=88=E5=88=B8=E5=90=8C?= =?UTF-8?q?=E6=97=B6=E7=BD=AE=E7=A9=BA=E8=B4=AD=E7=89=A9=E8=BD=A6=E5=88=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/entity/TbOrderInfo.java | 1 + .../system/cashierservice/service/CartService.java | 4 ++-- .../system/cashierservice/service/PayService.java | 13 +++++++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbOrderInfo.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbOrderInfo.java index 38ef2ad..cbdc02d 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbOrderInfo.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbOrderInfo.java @@ -135,6 +135,7 @@ public class TbOrderInfo implements Serializable { private BigDecimal productCouponDiscountAmount; private String couponInfoList; private int isPostpaid; + private Object useCouponInfo; public void setDescription(String shopName) { this.shopName = shopName; diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java index b17ad28..3c3c24f 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java @@ -1305,7 +1305,7 @@ public class CartService { } else { if (!TableConstant.CashierCart.ID.equals(tbCashierCart.getProductId())) { TbProductSkuWithBLOBs sku = productSkuMapper.selectByPrimaryKey(Integer.valueOf(tbCashierCart.getSkuId())); - tbCashierCart.setIsMember(sku.getMemberPrice() != null && sku.getMemberPrice().compareTo(BigDecimal.ZERO) > 0 ? 1 : 0); + tbCashierCart.setIsMember(!shopEatTypeInfoDTO.isMemberPrice() ? 0 : 1); } } tbCashierCart.resetTotalAmount(); @@ -1534,7 +1534,7 @@ public class CartService { private void returnCoupon(TbOrderInfo orderInfo) { // 返还优惠券 - PayService.returnCoupon(orderInfo, shopCouponService); + PayService.returnCoupon(orderInfo, shopCouponService, mpCashierCartMapper); } private void consumeCoupon(List outRecordList, Integer memberId, TbOrderInfo orderInfo) { diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java index 80cafb6..369c3c3 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -419,7 +419,7 @@ public class PayService { } // 返还优惠券 - returnCoupon(orderInfo, shopCouponService); + returnCoupon(orderInfo, shopCouponService, mpCashierCartMapper); BigDecimal shouldPayAmount = orderInfo.getOriginAmount().multiply(BigDecimal.valueOf(freeDineConfig.getRechargeTimes())); @@ -491,7 +491,7 @@ public class PayService { return shouldPayAmount; } - static void returnCoupon(TbOrderInfo orderInfo, TbShopCouponService shopCouponService) { + static void returnCoupon(TbOrderInfo orderInfo, TbShopCouponService shopCouponService, MpCashierCartMapper cashierCartMapper) { if (StrUtil.isNotBlank(orderInfo.getCouponInfoList())) { OrderCouponInfoDTO couponInfoDTO = JSONObject.parseObject(orderInfo.getCouponInfoList(), OrderCouponInfoDTO.class); // 券返还 @@ -502,6 +502,15 @@ public class PayService { shopCouponService.refund(couponInfoDTO.getOutRecordList()); couponInfoDTO.setOutRecordList(new ArrayList<>()); orderInfo.setCouponInfoList(JSONObject.toJSONString(couponInfoDTO)); + orderInfo.setUserCouponId(null); + orderInfo.setUseCouponInfo(null); + + // 修改购物车券信息 + cashierCartMapper.update(null, new LambdaUpdateWrapper() + .eq(TbCashierCart::getOrderId, orderInfo.getId()) + .set(TbCashierCart::getUserCouponId, null) + .set(TbCashierCart::getUseCouponInfo, null)); + } } }