diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java index b17dbecaf..1917c7001 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java @@ -774,6 +774,7 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic { logger.info("执行订单退款-退款金额小于等于0,orderCode:{}, 退款金额:{}", orderBasicInfo.getOrderCode(), refundAmount); return; } + // 查询该笔订单的退款记录 2025年4月23日10点17分此判断移动到具体方法中了 // List orderRefundInfoList = orderBasicInfoService.getOrderRefundInfoList(orderBasicInfo); // if (CollectionUtils.isNotEmpty(orderRefundInfoList)) { @@ -1089,6 +1090,8 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic { return; } + // 更新退款金额为 退款金额 - 已退款金额 + refundAmount = refundAmount.subtract(orderRefundedAmount); // 微信退款逻辑 ApplyRefundDTO applyRefundDTO = new ApplyRefundDTO(); @@ -1134,11 +1137,12 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic { dto.getWechatAppId(), dto.getMemberId(), ScenarioEnum.ORDER.getValue(), dto.getOrderCode()); if (response != null && response.isNotFailed()) { // 交易退款金额 - BigDecimal refundAmt = new BigDecimal(response.getReverse_amt()); + BigDecimal refundAmt = new BigDecimal(response.getReverse_amt()); // 本次退款金额 memberAdapayRecordService.updateRefundAmountFromFreezeAmount(paymentId, refundAmt); // 更新订单支付记录的退款金额 - orderPayRecordService.updateRefundAmount(dto.getOrderCode(), paymentId, refundAmt); + BigDecimal refundedAmt = new BigDecimal(response.getRefunded_amt()); // 已退款金额 + orderPayRecordService.updateRefundAmount(dto.getOrderCode(), paymentId, refundedAmt); } logger.info("【{}】-汇付支付订单:{}, 执行退款逻辑 param:{}, result:{}", this.getClass().getSimpleName(), dto.getOrderCode(), JSON.toJSONString(dto), JSON.toJSONString(response)); }