交易分账 重构

This commit is contained in:
2023-08-29 15:06:59 +08:00
parent 1a40e284b7
commit 683c8794d3
2 changed files with 29 additions and 21 deletions

View File

@@ -109,7 +109,7 @@ public class MemberAdapayRecordServiceImpl implements MemberAdapayRecordService
/**
* 从冻结金额中退款
* 解冻,退款
* 部分解冻,退款
*/
@Override
public void updateRefundAmountFromFreezeAmount(String paymentId, BigDecimal refundAmount) {

View File

@@ -859,7 +859,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
/**
* 不延迟商家订单退款处理逻辑
* 例如:希晓
* 相当于已经分账完成了
* 相当于已经分账完成了,只需要退款
*
* @param orderBasicInfo 订单信息
* @param adapayMemberAccount 汇付用户信息
@@ -867,7 +867,21 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
* @return
*/
private OrderSettleResult notDelayMerchantOrderRefundLogic(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount, String wechatAppId) {
try {
String payMode = orderBasicInfo.getPayMode();
if (StringUtils.equals(payMode, OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue())) {
// 余额支付
balancePaymentOrderRefundV2(orderBasicInfo);
} else if (StringUtils.equals(payMode, OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue())) {
// 微信支付
onlinePaymentOrderRefund(orderBasicInfo);
} else {
// 白名单支付
logger.info("订单:{}使用白名单支付,不进行退款处理", orderBasicInfo.getOrderCode());
}
} catch (Exception e) {
logger.error("订单退款逻辑异常orderCode:{}", orderBasicInfo.getOrderCode(), e);
}
return null;
}
@@ -1069,19 +1083,6 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
}
this.refundOrderWithAdapay(applyRefundDTO);
}
// 查支付记录
// List<OrderPayRecord> payRecordList = orderPayRecordService.getOrderPayRecordList(orderCode);
// 更新订单支付记录
// List<OrderPayRecord> updatePayRecordList = Lists.newArrayList();
// OrderPayRecord orderPayRecord = payRecordList.get(0);
// orderPayRecord.setRefundAmount(refundAmount);
// updatePayRecordList.add(orderPayRecord);
//
// // 更新order_pay_record
// if (CollectionUtils.isNotEmpty(updatePayRecordList)) {
// orderPayRecordService.updateBatch(updatePayRecordList);
// }
}
/**
@@ -2525,8 +2526,12 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
refundAmt = new BigDecimal(response.getReverse_amt());
// BigDecimal spendAmt = callbackRecord.getPayAmt().subtract(refundAmt);
// memberAdapayRecordService.commonUpdateAmountMethod(paymentId, spendAmt, reverseAmt, null);
// 解冻并退款
// memberAdapayRecordService.unfreezeAmountAndUpdateSpendAmount(paymentId, reverseAmt, spendAmt);
/*
不管是撤销还是退款都需要更新memberAdapayRecord中的金额, 解冻金额就是支付的金额,退款金额就是订单结算后需要退的金额
延时分账的,可以部分解冻
*/
memberAdapayRecordService.updateRefundAmountFromFreezeAmount(paymentId, refundAmt);
}
} else {
// 实时分账的调退款接口
@@ -2537,11 +2542,14 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
// 更新此笔交易单的消费金额 = 支付金额 - 撤销金额
// BigDecimal spendAmt = callbackRecord.getPayAmt().subtract(refundAmt);
// memberAdapayRecordService.commonUpdateAmountMethod(paymentId, spendAmt, refundAmt, null);
/*
不管是撤销还是退款都需要更新memberAdapayRecord中的金额, 解冻金额就是支付的金额,退款金额就是订单结算后需要退的金额
实时分账的,可以全部解冻
*/
memberAdapayRecordService.unfreezeAmountAndUpdateSpendAmount(paymentId, payAmt, refundAmt);
}
}
// 不管是撤销还是退款都需要更新memberAdapayRecord中的金额, 解冻金额就是支付的金额,退款金额就是订单结算后需要退的金额
memberAdapayRecordService.unfreezeAmountAndUpdateSpendAmount(paymentId, payAmt, refundAmt);
}
/**