From 82a8bc62d5b9d5d607f6952329952b17eda2f0a0 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 14 九月 2026 15:44:34 +0800
Subject: [PATCH] update
---
backend/src/test/java/com/tourguide/modules/order/service/HuifuRefundCallbackServiceTest.java | 26 +++++++++++++++++++++++++-
1 files changed, 25 insertions(+), 1 deletions(-)
diff --git a/backend/src/test/java/com/tourguide/modules/order/service/HuifuRefundCallbackServiceTest.java b/backend/src/test/java/com/tourguide/modules/order/service/HuifuRefundCallbackServiceTest.java
index ce4f145..30de603 100644
--- a/backend/src/test/java/com/tourguide/modules/order/service/HuifuRefundCallbackServiceTest.java
+++ b/backend/src/test/java/com/tourguide/modules/order/service/HuifuRefundCallbackServiceTest.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSONObject;
import com.tourguide.common.huifu.properties.HuiFuProperties;
+import com.tourguide.modules.finance.service.GuideBalanceSettlementService;
import com.tourguide.modules.order.domain.OrderStatus;
import com.tourguide.modules.order.domain.RefundStatus;
import com.tourguide.modules.order.entity.TourOrder;
@@ -12,6 +13,7 @@
import org.junit.jupiter.api.Test;
import java.math.BigDecimal;
+import java.time.LocalDateTime;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
@@ -23,6 +25,7 @@
private TourOrderMapper orderMapper;
private HuifuRefundCallbackService callbackService;
private GuideSessionTransitionService sessionTransitionService;
+ private GuideBalanceSettlementService balanceSettlementService;
@BeforeEach
void setUp() {
@@ -30,7 +33,9 @@
properties.setHuifuId("merchant-1");
orderMapper = mock(TourOrderMapper.class);
sessionTransitionService = mock(GuideSessionTransitionService.class);
- callbackService = new HuifuRefundCallbackService(properties, orderMapper, null, null,
+ balanceSettlementService = mock(GuideBalanceSettlementService.class);
+ callbackService = new HuifuRefundCallbackService(properties, orderMapper, null,
+ balanceSettlementService,
sessionTransitionService);
}
@@ -103,6 +108,25 @@
}
@Test
+ void successCallbackShouldReverseSettledGuideEarning() {
+ TourOrder order = refundingOrder();
+ order.setGuideId(8L);
+ order.setAmount(new BigDecimal("100.00"));
+ order.setPaymentAmount(new BigDecimal("100.00"));
+ order.setGuideEarningAmount(new BigDecimal("90.00"));
+ order.setSettledAt(LocalDateTime.of(2026, 8, 2, 12, 0));
+ when(orderMapper.selectByRefundOrderNoForUpdate("RF001")).thenReturn(order);
+
+ JSONObject body = successBody();
+ body.put("ord_amt", "36.00");
+
+ assertThat(callbackService.handle(body)).isTrue();
+
+ verify(balanceSettlementService).reverseRefund(order, BigDecimal.ZERO,
+ new BigDecimal("36.00"));
+ }
+
+ @Test
void pendingMeetingSuccessCallbackShouldRestoreGuideSession() {
TourOrder order = refundingOrder();
order.setStatus(OrderStatus.PENDING_MEETING.getCode());
--
Gitblit v1.7.1