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/GuideBalanceSettlementServiceTest.java | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 51 insertions(+), 0 deletions(-)
diff --git a/backend/src/test/java/com/tourguide/modules/finance/service/GuideBalanceSettlementServiceTest.java b/backend/src/test/java/com/tourguide/modules/finance/service/GuideBalanceSettlementServiceTest.java
index 5986e49..7c65d5b 100644
--- a/backend/src/test/java/com/tourguide/modules/finance/service/GuideBalanceSettlementServiceTest.java
+++ b/backend/src/test/java/com/tourguide/modules/finance/service/GuideBalanceSettlementServiceTest.java
@@ -53,6 +53,57 @@
verify(orderMapper, never()).updateById(order);
}
+ @Test
+ void shouldCreditTeamBalanceForTeamOrder() {
+ LocalDateTime now = LocalDateTime.of(2026, 9, 8, 12, 0);
+ TourOrder order = dueOrder(now.minusMinutes(1));
+ order.setCommissionTeamId(6L);
+ when(orderMapper.selectForUpdate(10L)).thenReturn(order);
+ when(orderMapper.updateById(order)).thenReturn(1);
+
+ assertThat(service.settle(10L, now)).isTrue();
+
+ verify(balanceService).creditTeam(6L, new BigDecimal("90.00"));
+ verify(balanceService, never()).credit(8L, new BigDecimal("90.00"));
+ }
+
+ @Test
+ void shouldReverseSettledGuideEarningForRefund() {
+ TourOrder order = dueOrder(LocalDateTime.now());
+ order.setSettledAt(LocalDateTime.now());
+ order.setAmount(new BigDecimal("100.00"));
+ order.setPaymentAmount(new BigDecimal("100.00"));
+
+ service.reverseRefund(order, BigDecimal.ZERO, new BigDecimal("100.00"));
+
+ verify(balanceService).debitForRefund(8L, new BigDecimal("90.00"));
+ }
+
+ @Test
+ void shouldReverseOnlyIncrementalAmountForPartialRefund() {
+ TourOrder order = dueOrder(LocalDateTime.now());
+ order.setSettledAt(LocalDateTime.now());
+ order.setAmount(new BigDecimal("100.00"));
+ order.setPaymentAmount(new BigDecimal("100.00"));
+
+ service.reverseRefund(order, new BigDecimal("20.00"), new BigDecimal("50.00"));
+
+ verify(balanceService).debitForRefund(8L, new BigDecimal("27.00"));
+ }
+
+ @Test
+ void shouldReverseSettledTeamEarningForRefund() {
+ TourOrder order = dueOrder(LocalDateTime.now());
+ order.setSettledAt(LocalDateTime.now());
+ order.setCommissionTeamId(6L);
+ order.setAmount(new BigDecimal("100.00"));
+ order.setPaymentAmount(new BigDecimal("100.00"));
+
+ service.reverseRefund(order, BigDecimal.ZERO, new BigDecimal("100.00"));
+
+ verify(balanceService).debitTeamForRefund(6L, new BigDecimal("90.00"));
+ }
+
private TourOrder dueOrder(LocalDateTime dueAt) {
TourOrder order = new TourOrder();
order.setId(10L);
--
Gitblit v1.7.1