修复退款状态更新问题

This commit is contained in:
TinyAnts 2023-04-03 16:56:59 +08:00
parent b9f40163ab
commit 6010b19826
1 changed files with 11 additions and 1 deletions

View File

@ -152,6 +152,7 @@ public class FinanceRechargerServiceImpl implements IFinanceRechargerService {
// 开启事务 // 开启事务
TransactionStatus transactionStatus = transactionManager.getTransaction(transactionDefinition); TransactionStatus transactionStatus = transactionManager.getTransaction(transactionDefinition);
RefundRecord refundRecord = null;
RefundLog log = null; RefundLog log = null;
try { try {
// 标记退款状态 // 标记退款状态
@ -175,7 +176,7 @@ public class FinanceRechargerServiceImpl implements IFinanceRechargerService {
// 生成退款记录 // 生成退款记录
String refundSn = refundRecordMapper.randMakeOrderSn("sn"); String refundSn = refundRecordMapper.randMakeOrderSn("sn");
RefundRecord refundRecord = new RefundRecord(); refundRecord = new RefundRecord();
refundRecord.setSn(refundSn); refundRecord.setSn(refundSn);
refundRecord.setUserId(rechargeOrder.getUserId()); refundRecord.setUserId(rechargeOrder.getUserId());
refundRecord.setOrderId(rechargeOrder.getId()); refundRecord.setOrderId(rechargeOrder.getId());
@ -208,7 +209,11 @@ public class FinanceRechargerServiceImpl implements IFinanceRechargerService {
requestV3.setRefundAmount(AmountUtil.yuan2Fen(rechargeOrder.getOrderAmount().toString())); requestV3.setRefundAmount(AmountUtil.yuan2Fen(rechargeOrder.getOrderAmount().toString()));
WxPayDriver.refund(requestV3); WxPayDriver.refund(requestV3);
// 退款记录更新
refundRecord.setRefundStatus(RefundEnum.REFUND_SUCCESS.getCode());
refundRecordMapper.updateById(refundRecord);
// 退款日志更新
log.setRefundStatus(RefundEnum.REFUND_SUCCESS.getCode()); log.setRefundStatus(RefundEnum.REFUND_SUCCESS.getCode());
refundLogMapper.updateById(log); refundLogMapper.updateById(log);
transactionManager.commit(transactionStatus); transactionManager.commit(transactionStatus);
@ -216,6 +221,11 @@ public class FinanceRechargerServiceImpl implements IFinanceRechargerService {
// 事务回滚 // 事务回滚
transactionManager.rollback(transactionStatus); transactionManager.rollback(transactionStatus);
if (StringUtils.isNotNull(refundRecord)) {
refundRecord.setRefundStatus(RefundEnum.REFUND_ERROR.getCode());
refundRecordMapper.updateById(refundRecord);
}
if (StringUtils.isNotNull(log)) { if (StringUtils.isNotNull(log)) {
log.setRefundStatus(RefundEnum.REFUND_ERROR.getCode()); log.setRefundStatus(RefundEnum.REFUND_ERROR.getCode());
refundLogMapper.updateById(log); refundLogMapper.updateById(log);