diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberAdapayRecordServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberAdapayRecordServiceImpl.java index dae29d92e..0ae2e1b3e 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberAdapayRecordServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberAdapayRecordServiceImpl.java @@ -91,7 +91,8 @@ public class MemberAdapayRecordServiceImpl implements MemberAdapayRecordService /** * 解冻金额并更新消费金额 - * unfreezeAmount + * @param unfreezeAmount 解冻金额 + * @param spendAmount 消费金额 */ @Override public void unfreezeAmountAndUpdateSpendAmount(String paymentId, BigDecimal unfreezeAmount, BigDecimal spendAmount) { 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 cdf589509..732f658e9 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 @@ -2469,6 +2469,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { String expend = callbackRecord.getExpend(); JSONObject expendJsonObject = JSON.parseObject(expend); String payMode = expendJsonObject.getString("payMode"); + BigDecimal refundAmt = null; if (StringUtils.equalsIgnoreCase(payMode, Constants.ADAPAY_PAY_MODE_DELAY)) { // 延迟分账未确认调撤销调撤销接口退款 PaymentReverseOperation operation = new PaymentReverseOperation(); @@ -2480,21 +2481,26 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { operation.setOrderCode(dto.getOrderCode()); PaymentReverseResponse response = adapayService.createPaymentReverseRequest(operation); if (response != null && response.isNotFailed()) { - BigDecimal reverseAmt = new BigDecimal(response.getReverse_amt()); - BigDecimal spendAmt = callbackRecord.getPayAmt().subtract(reverseAmt); - memberAdapayRecordService.commonUpdateAmountMethod(paymentId, spendAmt, reverseAmt, null); + refundAmt = new BigDecimal(response.getReverse_amt()); + // BigDecimal spendAmt = callbackRecord.getPayAmt().subtract(refundAmt); + // memberAdapayRecordService.commonUpdateAmountMethod(paymentId, spendAmt, reverseAmt, null); + // 解冻并退款 + // memberAdapayRecordService.unfreezeAmountAndUpdateSpendAmount(paymentId, reverseAmt, spendAmt); } } else { // 实时分账的调退款接口 RefundResponse refundRequest = adapayService.createRefundRequest(paymentId, refundAmount, dto.getWechatAppId(), dto.getMemberId(), ScenarioEnum.ORDER.getValue(), dto.getOrderCode()); if (refundRequest != null && refundRequest.isNotFailed()) { - BigDecimal refundAmt = new BigDecimal(refundRequest.getRefund_amt()); + refundAmt = new BigDecimal(refundRequest.getRefund_amt()); // 更新此笔交易单的消费金额 = 支付金额 - 撤销金额 - BigDecimal spendAmt = callbackRecord.getPayAmt().subtract(refundAmt); - memberAdapayRecordService.commonUpdateAmountMethod(paymentId, spendAmt, refundAmt, null); + // BigDecimal spendAmt = callbackRecord.getPayAmt().subtract(refundAmt); + // memberAdapayRecordService.commonUpdateAmountMethod(paymentId, spendAmt, refundAmt, null); } } + + // 不管是撤销还是退款,都需要更新memberAdapayRecord中的退款金额 + memberAdapayRecordService.updateRefundAmount(paymentId, refundAmt); } /**