满减金额 增加餐位费和打包费

This commit is contained in:
2025-10-27 16:58:50 +08:00
parent 49755e6354
commit 827cc937e1

View File

@@ -473,7 +473,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
param.setNewCustomerDiscountAmount(BigDecimal.ZERO); param.setNewCustomerDiscountAmount(BigDecimal.ZERO);
} }
//满减活动 //满减活动
BigDecimal discountActAmount = calculateDiscountActAmount(orderDetails, discountAct); BigDecimal discountActAmount = calculateDiscountActAmount(orderDetails, discountAct, packAmount.getPrice(), orderInfo.getSeatAmount());
if (discountActAmount.compareTo(param.getDiscountActAmount()) != 0) { if (discountActAmount.compareTo(param.getDiscountActAmount()) != 0) {
log.info("满减活动金额不正确:传递为:{},计算为:{}", param.getDiscountActAmount(), discountActAmount); log.info("满减活动金额不正确:传递为:{},计算为:{}", param.getDiscountActAmount(), discountActAmount);
throw new ValidateException("生成支付订单失败,满减活动金额不正确"); throw new ValidateException("生成支付订单失败,满减活动金额不正确");
@@ -909,7 +909,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
/** /**
* 满减活动 校验门槛获取减免金额 * 满减活动 校验门槛获取减免金额
*/ */
private BigDecimal calculateDiscountActAmount(List<OrderDetail> orderDetails, MkDiscountActivityDTO discountAct) { private BigDecimal calculateDiscountActAmount(List<OrderDetail> orderDetails, MkDiscountActivityDTO discountAct, BigDecimal packPrice, BigDecimal seatPrice) {
if (discountAct == null) { if (discountAct == null) {
return BigDecimal.ZERO; return BigDecimal.ZERO;
} }
@@ -920,7 +920,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
} }
originalPrice = originalPrice.add(orderDetail.getPayAmount()); originalPrice = originalPrice.add(orderDetail.getPayAmount());
} }
log.info("满减活动门槛金额计算为:{}", originalPrice); originalPrice = originalPrice.add(packPrice).add(seatPrice);
for (MkDiscountThreshold threshold : discountAct.getThresholds()) { for (MkDiscountThreshold threshold : discountAct.getThresholds()) {
if (originalPrice.compareTo(threshold.getFullAmount()) >= 0) { if (originalPrice.compareTo(threshold.getFullAmount()) >= 0) {
return threshold.getDiscountAmount(); return threshold.getDiscountAmount();