From 79a77286c8b7271918d46f3d1191bd42db3546b1 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 25 Mar 2025 17:35:27 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9C=B8=E7=8E=8B=E9=A4=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/czg/service/order/service/impl/PayServiceImpl.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/PayServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/PayServiceImpl.java index 3606ec63..936c3c6a 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/PayServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/PayServiceImpl.java @@ -53,6 +53,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.LocalDateTime; import java.util.HashMap; import java.util.List; @@ -146,12 +147,13 @@ public class PayServiceImpl implements PayService { BigDecimalDTO totalAmount = new BigDecimalDTO(BigDecimal.ZERO); //最终打包费 BigDecimalDTO packAmount = new BigDecimalDTO(BigDecimal.ZERO); - orderInfoService.processOrderDetails2(orderDetails, null, null, totalAmount, packAmount, payParam.isAllPack(), null, true); + orderInfoService.processOrderDetails2(orderDetails, null, null, totalAmount, packAmount, payParam.isAllPack(), payParam.getUserAllPack(), true); BigDecimal total = totalAmount.getPrice().add(packAmount.getPrice()); if (total.compareTo(freeConfig.getRechargeThreshold()) < 0) { throw new CzgException("霸王餐满" + freeConfig.getRechargeThreshold() + "可用,当前订单金额为" + total); } - BigDecimal payAmount = (totalAmount.getPrice().add(packAmount.getPrice()).add(orderInfo.getSeatAmount())).multiply(new BigDecimal(freeConfig.getMultiple())); + BigDecimal payAmount = (totalAmount.getPrice().add(packAmount.getPrice()).add(orderInfo.getSeatAmount())) + .multiply(new BigDecimal(freeConfig.getMultiple())).setScale(2, RoundingMode.HALF_UP); log.info("霸王餐应支付金额:{},充值金额为:{}", payAmount, payParam.getAmount()); if (payAmount.compareTo(payParam.getAmount()) != 0) { throw new ValidateException("霸王餐支付金额不正确");