From 7d2f08b605edb80f4fca71aca74e0d99b91a2316 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, 15 Nov 2024 13:57:07 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=AE=A2=E5=8D=95=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E4=BC=98=E6=83=A0=E5=88=B8=E6=8A=98=E6=89=A3=E4=BB=B7=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/dto/OrderCouponInfoDTO.java | 6 ++--- .../entity/vo/TbUserCouponVo.java | 1 + .../cashierservice/service/CartService.java | 22 +++++++++++-------- .../cashierservice/service/PayService.java | 4 ++-- .../impl/TbCashierCartServiceImpl.java | 2 +- 5 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/OrderCouponInfoDTO.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/OrderCouponInfoDTO.java index 8320046..d6d7188 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/OrderCouponInfoDTO.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/OrderCouponInfoDTO.java @@ -14,8 +14,8 @@ public class OrderCouponInfoDTO { private TbShopUser shopUser; private List outRecordList = new ArrayList<>(); // 满减优惠券 - private HashMap fullReductionCouponMap = new HashMap<>(); + private HashMap fullReductionCouponMap = new HashMap<>(); // 商品优惠券 - private HashMap productCouponMap = new HashMap<>(); - private HashMap> couponMap; + private HashMap productCouponMap = new HashMap<>(); + private HashMap> couponMap; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/TbUserCouponVo.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/TbUserCouponVo.java index 389808f..8effc04 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/TbUserCouponVo.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/TbUserCouponVo.java @@ -27,6 +27,7 @@ public class TbUserCouponVo { private boolean isUse = false; private Integer currentUseNum = 0; + private BigDecimal currentDiscountAmount = new BigDecimal(0); public void setEndTime(Date endTime) { 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 6697214..c35cce4 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java @@ -705,7 +705,7 @@ public class CartService { throw new MsgException(couponVo.getName() + "数量不足: " + couponVo.getNum()); } couponVo.setCurrentUseNum(item.getNum()); - infoDTO.getFullReductionCouponMap().put(couponVo.getId(), couponVo); + infoDTO.getFullReductionCouponMap().put(couponVo.getId().toString(), couponVo); return; } couponVo = productCoupon.get(item.getUserCouponId()); @@ -713,7 +713,7 @@ public class CartService { throw new MsgException("存在不可用优惠券"); } couponVo.setCurrentUseNum(item.getNum()); - infoDTO.getProductCouponMap().put(item.getUserCouponId(), couponVo); + infoDTO.getProductCouponMap().put(item.getUserCouponId().toString(), couponVo); }); infoDTO.setShopUser(shopUser); @@ -955,6 +955,7 @@ public class CartService { tbActivateOutRecord.setStatus(TableConstant.ActivateOutRecord.Status.CLOSED.getValue()); tbActivateOutRecord.setCreateTime(DateUtil.date()); tbActivateOutRecord.setRefNum(0); + couponVo.setCurrentDiscountAmount(couponVo.getDiscountAmount()); } @@ -1128,7 +1129,7 @@ public class CartService { return null; } - private BigDecimal reduceProCoupon(HashMap> couponMap, TbCashierCart cashierCart, HashMap> couponMap, TbCashierCart cashierCart, HashMap> usedCouponMap, BigDecimal discountAmount, ArrayList balanceCartList, ArrayList outRecords, Integer memberId) { TbUserCouponVo couponVo = getCanUseCoupon(couponMap, cashierCart.getProductId()); @@ -1139,7 +1140,7 @@ public class CartService { discountAmount = discountAmount.add(cashierCart.getTotalAmountByNum(null)); couponVo.setCurrentUseNum(couponVo.getCurrentUseNum() - cashierCart.getNumber()); } - List tbUserCouponVos = usedCouponMap.computeIfAbsent(Integer.valueOf(cashierCart.getProductId()), k -> new ArrayList<>()); + List tbUserCouponVos = usedCouponMap.computeIfAbsent(cashierCart.getProductId(), k -> new ArrayList<>()); tbUserCouponVos.add(couponVo); TbCashierCart balanceCart = null; @@ -1188,6 +1189,7 @@ public class CartService { tbActivateOutRecord.setRefNum(0); outRecords.add(tbActivateOutRecord); + couponVo.setCurrentDiscountAmount(couponVo.getCurrentDiscountAmount().add(couponVo.getCurrentDiscountAmount())); // 优惠券未消耗完毕 if (balanceCart != null && getCanUseCoupon(couponMap, balanceCart.getProductId()) != null) { discountAmount = reduceProCoupon(couponMap, balanceCart, usedCouponMap, discountAmount, balanceCartList, outRecords, memberId); @@ -1221,11 +1223,10 @@ public class CartService { tbUserCouponVos.add(item); } }); - HashMap> usedCouponMap = new HashMap<>(); + HashMap> usedCouponMap = new HashMap<>(); ArrayList outRecords = new ArrayList<>(); for (TbCashierCart cashierCart : cartInfoDTO.getNewCashierCarts()) { discountAmount = reduceProCoupon(couponMap, cashierCart, usedCouponMap, discountAmount, balanceCartList, outRecords, memberId); - } if (!balanceCartList.isEmpty()) { @@ -1399,11 +1400,14 @@ public class CartService { if (outRecord != null) { couponInfo.getOutRecordList().add(outRecord); } - orderInfo.setCouponInfoList(JSONObject.toJSONString(couponInfo)); + + couponInfo.setProductCouponMap(BeanUtil.copyProperties(couponInfo.getProductCouponMap(), HashMap.class)); + HashMap map = new HashMap<>(); + map.put("outRecordList", couponInfo.getOutRecordList()); + map.put("couponInfo", couponInfo.getProductCouponMap().values().addAll(couponInfo.getFullReductionCouponMap().values())); + orderInfo.setCouponInfoList(JSONObject.toJSONString(map)); } - - // 修改订单详情并打票 updateDetailAndPrint(orderInfo, detailPriceDTO, shopEatTypeInfoDTO); 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 3503f67..8c18a33 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -472,8 +472,8 @@ public class PayService { // 设置优惠券信息 OrderCouponInfoDTO couponInfoDTO = new OrderCouponInfoDTO(); - couponInfoDTO.setFullReductionCouponMap(new HashMap() {{ - put(userCouponVo.getId(), userCouponVo); + couponInfoDTO.setFullReductionCouponMap(new HashMap() {{ + put(userCouponVo.getId().toString(), userCouponVo); }}); orderInfo.setCouponInfoList(JSONObject.toJSONString(couponInfoDTO)); orderInfo.setUserCouponAmount(userCouponVo.getDiscountAmount()); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbCashierCartServiceImpl.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbCashierCartServiceImpl.java index 578c21a..c104f61 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbCashierCartServiceImpl.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbCashierCartServiceImpl.java @@ -43,7 +43,7 @@ public class TbCashierCartServiceImpl extends ServiceImpl