fix: 订单折扣金额保存不正确修复
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user