交易分账 重构

This commit is contained in:
2023-08-28 19:12:04 +08:00
parent 2551a9844b
commit d373d52224

View File

@@ -2420,13 +2420,8 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
String expend = callbackRecord.getExpend();
JSONObject expendJsonObject = JSON.parseObject(expend);
String payMode = expendJsonObject.getString("payMode");
// String payMode = "delay";
if (StringUtils.equalsIgnoreCase(payMode, Constants.ADAPAY_PAY_MODE_DELAY)) {
// 延迟分账未确认调撤销调撤销接口退款
// PaymentReverseResponse response = adapayService.createPaymentReverseRequest(
// paymentId, refundAmount, dto.getWechatAppId(), dto.getMemberId(), ScenarioEnum.ORDER.getValue(),
// dto.getOrderCode());
PaymentReverseOperation operation = new PaymentReverseOperation();
operation.setPaymentId(paymentId);
operation.setReverseAmt(refundAmount);
@@ -2435,24 +2430,10 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
operation.setScenarioType(ScenarioEnum.ORDER.getValue());
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);
// MemberAdapayRecord record = memberAdapayRecordService.selectByPaymentId(paymentId);
// // 更新此笔交易单的消费金额 = 支付金额 - 撤销金额
// record.setSpendAmt(spendAmt);
// // 退款金额
// record.setRefundAmt(reverseAmt);
// // 更新此笔交易单的剩余金额 = 支付金额 - 累计退款金额 - 累计消费金额
// record.setBalanceAmt(record.getPayAmt().subtract(record.getRefundAmt()).subtract(record.getSpendAmt()));
// memberAdapayRecordService.updateByPrimaryKeySelective(record);
memberAdapayRecordService.commonUpdateAmountMethod(paymentId, spendAmt, reverseAmt, null);
// if (BigDecimal.ZERO.compareTo(record.getBalanceAmt()) != 0) {
// logger.error("订单分账结束后账不平paymentId:{}, orderCode:{}, 支付金额:{}, 消费金额:{}, 退款金额:{}",
// paymentId, dto.getOrderCode(), payAmt, spendAmt, reverseAmt);
// }
}
} else {
// 实时分账的调退款接口
@@ -2462,46 +2443,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
BigDecimal refundAmt = new BigDecimal(refundRequest.getRefund_amt());
// 更新此笔交易单的消费金额 = 支付金额 - 撤销金额
BigDecimal spendAmt = callbackRecord.getPayAmt().subtract(refundAmt);
// MemberAdapayRecord record = memberAdapayRecordService.selectByPaymentId(paymentId);
// record.setSpendAmt(spendAmt);
// // 退款金额
// record.setRefundAmt(refundAmt);
// // 更新此笔交易单的剩余金额 = 支付金额 - 累计退款金额 - 累计消费金额
// record.setBalanceAmt(record.getPayAmt().subtract(record.getRefundAmt()).subtract(record.getSpendAmt()));
// if (BigDecimal.ZERO.compareTo(record.getBalanceAmt()) != 0) {
// logger.error("订单分账结束后账不平paymentId:{}, orderCode:{}, 支付金额:{}, 消费金额:{}, 退款金额:{}",
// paymentId, dto.getOrderCode(), payAmt, spendAmt, refundAmt);
// }
// memberAdapayRecordService.updateByPrimaryKeySelective(record);
memberAdapayRecordService.commonUpdateAmountMethod(paymentId, spendAmt, refundAmt, null);
}
}
// if (StringUtils.equals("", payMode)) {
// // 延迟分账确认的调退款接口
// adapayService.createRefundRequest(paymentId, refundAmount);
// } else {
// // 延迟分账未确认调撤销调撤销接口退款
// PaymentReverseResponse response = adapayService.createPaymentReverseRequest(
// paymentId, refundAmount, dto.getWechatAppId(), dto.getMemberId(), ScenarioEnum.ORDER.getValue(),
// dto.getOrderCode());
// if (response != null && response.isFailed()) {
// MemberAdapayRecord record = memberAdapayRecordService.selectByPaymentId(paymentId);
// BigDecimal reverseAmt = new BigDecimal(response.getReverse_amt());
// // 更新此笔交易单的消费金额 = 支付金额 - 撤销金额
// BigDecimal spendAmt = callbackRecord.getPayAmt().subtract(reverseAmt);
// record.setSpendAmt(spendAmt);
// // 退款金额
// record.setRefundAmt(reverseAmt);
// // 更新此笔交易单的剩余金额 = 支付金额 - 累计退款金额 - 累计消费金额
// record.setBalanceAmt(record.getPayAmt().subtract(record.getRefundAmt()).subtract(record.getSpendAmt()));
// if (BigDecimal.ZERO.compareTo(record.getBalanceAmt()) != 0) {
// logger.error("订单分账结束后账不平paymentId:{}, orderCode:{}, 支付金额:{}, 消费金额:{}, 退款金额:{}",
// paymentId, dto.getOrderCode(), payAmt, spendAmt, reverseAmt);
// }
// memberAdapayRecordService.updateByPrimaryKeySelective(record);
// }
// }
}
/**