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

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);
}
//满减活动
BigDecimal discountActAmount = calculateDiscountActAmount(orderDetails, discountAct);
BigDecimal discountActAmount = calculateDiscountActAmount(orderDetails, discountAct, packAmount.getPrice(), orderInfo.getSeatAmount());
if (discountActAmount.compareTo(param.getDiscountActAmount()) != 0) {
log.info("满减活动金额不正确:传递为:{},计算为:{}", param.getDiscountActAmount(), discountActAmount);
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) {
return BigDecimal.ZERO;
}
@@ -920,7 +920,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
}
originalPrice = originalPrice.add(orderDetail.getPayAmount());
}
log.info("满减活动门槛金额计算为:{}", originalPrice);
originalPrice = originalPrice.add(packPrice).add(seatPrice);
for (MkDiscountThreshold threshold : discountAct.getThresholds()) {
if (originalPrice.compareTo(threshold.getFullAmount()) >= 0) {
return threshold.getDiscountAmount();