mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 11:05:18 +08:00
交易分账 重构
This commit is contained in:
@@ -91,7 +91,8 @@ public class MemberAdapayRecordServiceImpl implements MemberAdapayRecordService
|
||||
|
||||
/**
|
||||
* 解冻金额并更新消费金额
|
||||
* unfreezeAmount
|
||||
* @param unfreezeAmount 解冻金额
|
||||
* @param spendAmount 消费金额
|
||||
*/
|
||||
@Override
|
||||
public void unfreezeAmountAndUpdateSpendAmount(String paymentId, BigDecimal unfreezeAmount, BigDecimal spendAmount) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user