fix: 订单折扣金额保存不正确修复

This commit is contained in:
张松
2024-11-23 13:38:42 +08:00
parent e1b4e2500a
commit aa86e2a7d6

View File

@@ -1218,11 +1218,20 @@ public class CartService {
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;
@@ -1260,6 +1269,7 @@ public class CartService {
resetCouponList.add(cashierCart);
cashierCart.setUserCouponId(null);
}
cashierCart.resetTotalAmount();
discountAmount = reduceProCoupon(couponMap, cashierCart, usedCouponMap, discountAmount, balanceCartList, outRecords, memberId);
}