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; } }