From 2e4d905d223a16ee61cfbb9192229a5dea33d03d Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Thu, 25 May 2023 14:35:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=88=B7=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OrderBasicInfoServiceImpl.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index a1e351370..fe16f860b 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -170,7 +170,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { private void tempUpdateVirtualAmount(List orderListVOS) { for (OrderListVO orderListVO : orderListVOS) { if (orderListVO.getVirtualAmount() != null) { - // continue; + continue; } // 订单总消费金额 BigDecimal orderAmount = new BigDecimal(orderListVO.getOrderAmount()); @@ -190,15 +190,17 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { List orderPayRecordList = orderPayRecordService.getOrderPayRecordList(orderListVO.getOrderCode()); for (OrderPayRecord orderPayRecord : orderPayRecordList) { if (StringUtils.equals(orderPayRecord.getPayMode(), OrderPayRecordEnum.GIFT_BALANCE_PAYMENT.getValue())) { - if (orderPayRecord.getRefundAmount() == null) { - // 需要退款的金额 = 支付金额 - 订单金额 - BigDecimal refundAmount = orderPayRecord.getPayAmount().subtract(orderAmount); - // 赠送金额消费部分 = 支付金额 - 需要退款金额 - virtualAmount = orderPayRecord.getPayAmount().subtract(refundAmount); + BigDecimal refundAmount = orderPayRecord.getRefundAmount(); + if (refundAmount == null) { + // 退款金额为null, 需要退款的金额 = 支付金额 - 订单金额 + refundAmount = orderPayRecord.getPayAmount().subtract(orderAmount); } + // 赠送金额消费部分 = 支付金额 - 需要退款金额 + virtualAmount = orderPayRecord.getPayAmount().subtract(refundAmount); // 结算金额 = 订单金额 - 赠送金额消费部分 settleAmount = orderAmount.subtract(virtualAmount); } else { + // 没有使用赠送金额支付,那么虚拟金额就是0,结算金额就等于订单金额 settleAmount = orderAmount; } }