fix: 折扣金额修复

This commit is contained in:
张松
2024-11-21 16:41:18 +08:00
parent 01f43aacaf
commit ecbf54604f

View File

@@ -1337,11 +1337,20 @@ public class TbShopTableServiceImpl implements TbShopTableService {
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;