From 9c691601646b2579cb86d2c6728c64cb6c04a040 Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Mon, 28 Aug 2023 19:41:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A4=E6=98=93=E5=88=86=E8=B4=A6=20?= =?UTF-8?q?=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MemberAdapayRecordServiceImpl.java | 3 ++- .../impl/OrderBasicInfoServiceImpl.java | 18 ++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) 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); } /**