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