From 4f6f15b818704079ff2e4e4719b798f48d68a335 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 11 九月 2026 13:52:19 +0800
Subject: [PATCH] update
---
backend/src/test/java/com/tourguide/modules/finance/service/GuideWithdrawalServiceTest.java | 43 ++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 42 insertions(+), 1 deletions(-)
diff --git a/backend/src/test/java/com/tourguide/modules/finance/service/GuideWithdrawalServiceTest.java b/backend/src/test/java/com/tourguide/modules/finance/service/GuideWithdrawalServiceTest.java
index 3cc91d7..2775687 100644
--- a/backend/src/test/java/com/tourguide/modules/finance/service/GuideWithdrawalServiceTest.java
+++ b/backend/src/test/java/com/tourguide/modules/finance/service/GuideWithdrawalServiceTest.java
@@ -7,6 +7,9 @@
import com.tourguide.modules.finance.entity.GuideWithdrawalAccount;
import com.tourguide.modules.finance.mapper.GuideWithdrawalMapper;
import com.tourguide.modules.user.entity.GuideUser;
+import com.tourguide.modules.user.entity.GuideTeam;
+import com.tourguide.modules.user.mapper.GuideTeamMapper;
+import com.tourguide.modules.user.mapper.GuideUserMapper;
import com.tourguide.modules.user.service.GuideUserService;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -28,6 +31,8 @@
private GuideWithdrawableBalanceService balanceService;
private GuideWithdrawalStateService stateService;
private GuideWithdrawalPayoutService payoutService;
+ private GuideTeamMapper teamMapper;
+ private GuideUserMapper guideUserMapper;
private GuideWithdrawalService service;
@BeforeEach
@@ -38,21 +43,26 @@
balanceService = mock(GuideWithdrawableBalanceService.class);
stateService = mock(GuideWithdrawalStateService.class);
payoutService = mock(GuideWithdrawalPayoutService.class);
+ teamMapper = mock(GuideTeamMapper.class);
+ guideUserMapper = mock(GuideUserMapper.class);
service = new GuideWithdrawalService(withdrawalMapper, settlementService,
- guideUserService, balanceService, stateService, payoutService);
+ guideUserService, balanceService, stateService, payoutService, teamMapper, guideUserMapper);
}
@Test
void createShouldReserveAvailableBalanceAndPersistCardSnapshot() throws Exception {
GuideUser guide = new GuideUser();
+ guide.setId(8L);
guide.setRealName("张三");
guide.setMobile("13800138000");
+ guide.setStatus(1);
GuideWithdrawalAccount account = new GuideWithdrawalAccount();
account.setId(10);
account.setHuifuId("HF100");
account.setBankName("招商银行");
account.setBankCardCode("6225888888885678");
when(guideUserService.findEnabledById(8L)).thenReturn(guide);
+ when(guideUserMapper.selectForUpdate(8L)).thenReturn(guide);
when(settlementService.requireApprovedCardForUpdate(8L, 10)).thenReturn(account);
when(balanceService.debit(8L, new BigDecimal("200.00"))).thenReturn(true);
doAnswer(invocation -> {
@@ -118,6 +128,37 @@
}
@Test
+ void createShouldReserveCollectionTeamBalance() {
+ GuideUser guide = new GuideUser();
+ guide.setId(8L);
+ guide.setTeamId(6L);
+ guide.setRealName("张三");
+ guide.setMobile("13800138000");
+ guide.setStatus(1);
+ GuideTeam team = new GuideTeam();
+ team.setId(6L);
+ team.setCollectionGuideId(8L);
+ GuideWithdrawalAccount account = new GuideWithdrawalAccount();
+ account.setId(10);
+ account.setBankName("招商银行");
+ account.setBankCardCode("6225888888885678");
+ when(guideUserService.findEnabledById(8L)).thenReturn(guide);
+ when(guideUserMapper.selectForUpdate(8L)).thenReturn(guide);
+ when(teamMapper.selectById(6L)).thenReturn(team);
+ when(settlementService.requireApprovedCardForUpdate(8L, 10)).thenReturn(account);
+ when(balanceService.debitTeam(6L, new BigDecimal("200.00"))).thenReturn(true);
+ GuideWithdrawalCreateRequest request = new GuideWithdrawalCreateRequest();
+ request.setAmount(new BigDecimal("200.00"));
+ request.setBankCardId(10);
+
+ WithdrawalResponse response = service.create(8L, request);
+
+ assertThat(response.getTeamId()).isEqualTo(6L);
+ verify(balanceService).debitTeam(6L, new BigDecimal("200.00"));
+ verify(balanceService, never()).debit(8L, new BigDecimal("200.00"));
+ }
+
+ @Test
void nonTerminalCashCallbackShouldRemainProcessing() {
GuideWithdrawal withdrawal = processingWithdrawal();
GuideWithdrawalAccount account = new GuideWithdrawalAccount();
--
Gitblit v1.7.1