From 39f6fca28e3f78abe48f08e474ec011abb990b36 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期三, 09 九月 2026 10:39:21 +0800
Subject: [PATCH] update
---
backend/src/main/java/com/tourguide/modules/finance/service/GuideWithdrawalStateService.java | 17 +++++++++++++----
1 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/backend/src/main/java/com/tourguide/modules/finance/service/GuideWithdrawalStateService.java b/backend/src/main/java/com/tourguide/modules/finance/service/GuideWithdrawalStateService.java
index e04df87..610d936 100644
--- a/backend/src/main/java/com/tourguide/modules/finance/service/GuideWithdrawalStateService.java
+++ b/backend/src/main/java/com/tourguide/modules/finance/service/GuideWithdrawalStateService.java
@@ -17,6 +17,7 @@
public class GuideWithdrawalStateService {
static final String PENDING = "PENDING";
static final String TRANSFERRING = "TRANSFERRING";
+ static final String TRANSFER_FAILED = "TRANSFER_FAILED";
static final String TRANSFERRED = "TRANSFERRED";
static final String PROCESSING = "PROCESSING";
static final String APPROVED = "APPROVED";
@@ -37,9 +38,13 @@
@Transactional
public WithdrawalResponse reject(Long id, String remark, String processor) {
GuideWithdrawal withdrawal = requireForUpdate(id);
- if (!PENDING.equals(withdrawal.getStatus())) throw new BusinessException(409, "提现申请已处理");
+ if (!canProcess(withdrawal)) throw new BusinessException(409, "提现申请已处理");
if (!StringUtils.hasText(remark)) throw new BusinessException(400, "驳回提现时请填写处理备注");
- balanceService.credit(withdrawal.getGuideId(), withdrawal.getAmount());
+ if (withdrawal.getTeamId() == null) {
+ balanceService.credit(withdrawal.getGuideId(), withdrawal.getAmount());
+ } else {
+ balanceService.creditTeam(withdrawal.getTeamId(), withdrawal.getAmount());
+ }
withdrawal.setStatus(REJECTED);
withdrawal.setAuditRemark(remark.trim());
withdrawal.setProcessor(processor);
@@ -51,7 +56,7 @@
@Transactional
public GuideWithdrawal prepareTransfer(Long id, String remark, String processor) {
GuideWithdrawal withdrawal = requireForUpdate(id);
- if (!PENDING.equals(withdrawal.getStatus())) throw new BusinessException(409, "提现申请已处理");
+ if (!canProcess(withdrawal)) throw new BusinessException(409, "提现申请已处理");
LocalDateTime now = LocalDateTime.now();
withdrawal.setStatus(TRANSFERRING);
withdrawal.setTransferReqSeqId(sequence("TF"));
@@ -91,7 +96,7 @@
public GuideWithdrawal markTransferFailed(Long id, String message) {
GuideWithdrawal withdrawal = requireForUpdate(id);
if (!TRANSFERRING.equals(withdrawal.getStatus())) return withdrawal;
- withdrawal.setStatus(PENDING);
+ withdrawal.setStatus(TRANSFER_FAILED);
withdrawal.setPayoutMessage(limit(message));
update(withdrawal);
return withdrawal;
@@ -178,6 +183,10 @@
return withdrawal;
}
+ private boolean canProcess(GuideWithdrawal withdrawal) {
+ return PENDING.equals(withdrawal.getStatus()) || TRANSFER_FAILED.equals(withdrawal.getStatus());
+ }
+
private void update(GuideWithdrawal withdrawal) {
withdrawal.setUpdatedAt(LocalDateTime.now());
if (withdrawalMapper.updateById(withdrawal) != 1) {
--
Gitblit v1.7.1