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 9893ffa8b..0c4c78955 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 @@ -1923,7 +1923,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { public OrderSplitResult realTimeOrderSplit(AfterSettleOrderDTO afterSettleOrderDTO) throws BaseAdaPayException { // 查询订单信息 OrderBasicInfo orderBasicInfo = this.getOrderInfoByOrderCode(afterSettleOrderDTO.getOrderCode()); - afterSettleOrderDTO.setOrderBasicInfo(orderBasicInfo); + String payMode = orderBasicInfo.getPayMode(); // 校验订单支付金额,消费金额,退款金额 BigDecimal orderPayAmount = afterSettleOrderDTO.getOrderPayAmount(); // 支付金额 @@ -1932,31 +1932,35 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { BigDecimal orderRefundAmount = afterSettleOrderDTO.getOrderRefundAmount(); // 退款金额 // 如果是白名单支付, 直接返回 - if (StringUtils.equals(orderBasicInfo.getPayMode(), "3")) { - logger.info("realTimeOrderSplit-订单:{}, payMode:{}, 白名单支付不做处理", afterSettleOrderDTO.getOrderCode(), orderBasicInfo.getPayMode()); + if (StringUtils.equals(payMode, OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue())) { + logger.info("realTimeOrderSplit-订单:{}, payMode:{}, 白名单支付不做处理", afterSettleOrderDTO.getOrderCode(), payMode); return null; } // 如果是余额支付, 校验消费金额 - 折扣金额 + 退款金额 = 支付金额 - if (StringUtils.equals(orderBasicInfo.getPayMode(), "1")) { + if (StringUtils.equals(payMode, OrderPayModeEnum.PAYMENT_OF_PRINCIPAL_BALANCE.getValue())) { // 订单折扣金额 = 电费折扣金额 + 服务费折扣金额 BigDecimal orderDiscountAmount = afterSettleOrderDTO.getOrderElectricityDiscountAmount().add(afterSettleOrderDTO.getOrderServiceDiscountAmount()); if (orderConsumeAmount.subtract(orderDiscountAmount).add(orderRefundAmount).compareTo(orderPayAmount) != 0) { logger.info("realTimeOrderSplit-订单:{}, payMode:{}, 支付金额({})与消费金额({})-折扣金额({})+退款金额({})不相等", - afterSettleOrderDTO.getOrderCode(), orderBasicInfo.getPayMode(), orderPayAmount, orderConsumeAmount, orderDiscountAmount, orderRefundAmount); + afterSettleOrderDTO.getOrderCode(), payMode, orderPayAmount, orderConsumeAmount, orderDiscountAmount, orderRefundAmount); return null; } } // 如果是在线支付, 校验消费金额+ 退款金额 = 支付金额 - if (StringUtils.equals(orderBasicInfo.getPayMode(), "4") || StringUtils.equals(orderBasicInfo.getPayMode(), "5")) { + if (StringUtils.equals(payMode, OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue()) || StringUtils.equals(payMode, OrderPayModeEnum.PAYMENT_OF_ALIPAY.getValue())) { if (orderSettleAmount.add(orderRefundAmount).compareTo(orderPayAmount) != 0) { logger.info("realTimeOrderSplit-订单:{}, payMode:{}, 支付金额({})与结算金额({})+退款金额({})不相等", - afterSettleOrderDTO.getOrderCode(), orderBasicInfo.getPayMode(), orderPayAmount, orderSettleAmount, orderRefundAmount); + afterSettleOrderDTO.getOrderCode(), payMode, orderPayAmount, orderSettleAmount, orderRefundAmount); return null; } } + // 校验通过,将退款金额重新set(为了避免数据库的退款金额没有及时更新) + orderBasicInfo.setRefundAmount(orderRefundAmount); + afterSettleOrderDTO.setOrderBasicInfo(orderBasicInfo); + // 订单退款,汇付退款 try { refundMethod(afterSettleOrderDTO);