mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-06-25 01:29:47 +08:00
交易分账 重构
This commit is contained in:
@@ -91,7 +91,8 @@ public class MemberAdapayRecordServiceImpl implements MemberAdapayRecordService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 解冻金额并更新消费金额
|
* 解冻金额并更新消费金额
|
||||||
* unfreezeAmount
|
* @param unfreezeAmount 解冻金额
|
||||||
|
* @param spendAmount 消费金额
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void unfreezeAmountAndUpdateSpendAmount(String paymentId, BigDecimal unfreezeAmount, BigDecimal spendAmount) {
|
public void unfreezeAmountAndUpdateSpendAmount(String paymentId, BigDecimal unfreezeAmount, BigDecimal spendAmount) {
|
||||||
|
|||||||
@@ -2469,6 +2469,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
String expend = callbackRecord.getExpend();
|
String expend = callbackRecord.getExpend();
|
||||||
JSONObject expendJsonObject = JSON.parseObject(expend);
|
JSONObject expendJsonObject = JSON.parseObject(expend);
|
||||||
String payMode = expendJsonObject.getString("payMode");
|
String payMode = expendJsonObject.getString("payMode");
|
||||||
|
BigDecimal refundAmt = null;
|
||||||
if (StringUtils.equalsIgnoreCase(payMode, Constants.ADAPAY_PAY_MODE_DELAY)) {
|
if (StringUtils.equalsIgnoreCase(payMode, Constants.ADAPAY_PAY_MODE_DELAY)) {
|
||||||
// 延迟分账未确认调撤销调撤销接口退款
|
// 延迟分账未确认调撤销调撤销接口退款
|
||||||
PaymentReverseOperation operation = new PaymentReverseOperation();
|
PaymentReverseOperation operation = new PaymentReverseOperation();
|
||||||
@@ -2480,21 +2481,26 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
operation.setOrderCode(dto.getOrderCode());
|
operation.setOrderCode(dto.getOrderCode());
|
||||||
PaymentReverseResponse response = adapayService.createPaymentReverseRequest(operation);
|
PaymentReverseResponse response = adapayService.createPaymentReverseRequest(operation);
|
||||||
if (response != null && response.isNotFailed()) {
|
if (response != null && response.isNotFailed()) {
|
||||||
BigDecimal reverseAmt = new BigDecimal(response.getReverse_amt());
|
refundAmt = new BigDecimal(response.getReverse_amt());
|
||||||
BigDecimal spendAmt = callbackRecord.getPayAmt().subtract(reverseAmt);
|
// BigDecimal spendAmt = callbackRecord.getPayAmt().subtract(refundAmt);
|
||||||
memberAdapayRecordService.commonUpdateAmountMethod(paymentId, spendAmt, reverseAmt, null);
|
// memberAdapayRecordService.commonUpdateAmountMethod(paymentId, spendAmt, reverseAmt, null);
|
||||||
|
// 解冻并退款
|
||||||
|
// memberAdapayRecordService.unfreezeAmountAndUpdateSpendAmount(paymentId, reverseAmt, spendAmt);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 实时分账的调退款接口
|
// 实时分账的调退款接口
|
||||||
RefundResponse refundRequest = adapayService.createRefundRequest(paymentId, refundAmount,
|
RefundResponse refundRequest = adapayService.createRefundRequest(paymentId, refundAmount,
|
||||||
dto.getWechatAppId(), dto.getMemberId(), ScenarioEnum.ORDER.getValue(), dto.getOrderCode());
|
dto.getWechatAppId(), dto.getMemberId(), ScenarioEnum.ORDER.getValue(), dto.getOrderCode());
|
||||||
if (refundRequest != null && refundRequest.isNotFailed()) {
|
if (refundRequest != null && refundRequest.isNotFailed()) {
|
||||||
BigDecimal refundAmt = new BigDecimal(refundRequest.getRefund_amt());
|
refundAmt = new BigDecimal(refundRequest.getRefund_amt());
|
||||||
// 更新此笔交易单的消费金额 = 支付金额 - 撤销金额
|
// 更新此笔交易单的消费金额 = 支付金额 - 撤销金额
|
||||||
BigDecimal spendAmt = callbackRecord.getPayAmt().subtract(refundAmt);
|
// BigDecimal spendAmt = callbackRecord.getPayAmt().subtract(refundAmt);
|
||||||
memberAdapayRecordService.commonUpdateAmountMethod(paymentId, spendAmt, refundAmt, null);
|
// memberAdapayRecordService.commonUpdateAmountMethod(paymentId, spendAmt, refundAmt, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 不管是撤销还是退款,都需要更新memberAdapayRecord中的退款金额
|
||||||
|
memberAdapayRecordService.updateRefundAmount(paymentId, refundAmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user