feat(shop): 添加订单取消和退款时的水票撤销功能
- 在ShopOrderController中注入GltTicketRevokeService服务 - 实现订单状态改为已取消时同步撤销相关水票、释放计划和送水订单 - 实现退款成功后自动撤销水票相关数据的功能 - 新增GltTicketRevokeService服务处理水票撤销逻辑 - 添加批量订单取消时的水票撤销支持 - 实现撤销操作的幂等性确保无副作用 - 添加单元测试验证水票撤销功能的正确性
This commit is contained in:
@@ -23,6 +23,8 @@ class GltTicketRevokeServiceTest {
|
||||
private GltUserTicketReleaseService gltUserTicketReleaseService;
|
||||
@Mock
|
||||
private GltTicketOrderService gltTicketOrderService;
|
||||
@Mock
|
||||
private com.gxwebsoft.shop.service.ShopOrderGoodsService shopOrderGoodsService;
|
||||
|
||||
@InjectMocks
|
||||
private GltTicketRevokeService gltTicketRevokeService;
|
||||
@@ -31,16 +33,18 @@ class GltTicketRevokeServiceTest {
|
||||
void revokeByShopOrder_noTenant_noop() {
|
||||
int revoked = gltTicketRevokeService.revokeByShopOrder(null, 1, "O1", "r");
|
||||
assertEquals(0, revoked);
|
||||
verifyNoInteractions(gltUserTicketService, gltUserTicketReleaseService, gltTicketOrderService);
|
||||
verifyNoInteractions(gltUserTicketService, gltUserTicketReleaseService, gltTicketOrderService, shopOrderGoodsService);
|
||||
}
|
||||
|
||||
@Test
|
||||
void revokeByShopOrder_noTickets_noop() {
|
||||
when(gltUserTicketService.list(any())).thenReturn(List.of());
|
||||
when(shopOrderGoodsService.list(any())).thenReturn(List.of());
|
||||
int revoked = gltTicketRevokeService.revokeByShopOrder(10584, 1, "O1", "r");
|
||||
assertEquals(0, revoked);
|
||||
verify(gltUserTicketService, times(1)).list(any());
|
||||
verifyNoMoreInteractions(gltUserTicketService);
|
||||
verify(shopOrderGoodsService, times(1)).list(any());
|
||||
verifyNoMoreInteractions(gltUserTicketService, shopOrderGoodsService);
|
||||
verifyNoInteractions(gltUserTicketReleaseService, gltTicketOrderService);
|
||||
}
|
||||
|
||||
@@ -60,6 +64,6 @@ class GltTicketRevokeServiceTest {
|
||||
verify(gltTicketOrderService, times(1)).update(isNull(), any());
|
||||
verify(gltUserTicketReleaseService, times(1)).update(isNull(), any());
|
||||
verify(gltUserTicketService, times(1)).update(isNull(), any());
|
||||
verifyNoInteractions(shopOrderGoodsService);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user