|
|
@@ -186,6 +186,43 @@ class FlashDeliveryV2Test {
|
|
|
verify(f.billing, never()).insert(any(com.ruoyi.system.domain.UserBilling.class));
|
|
|
}
|
|
|
|
|
|
+ @Test void riderListCardsCarryPerStopAddressesForMultiStopOrders() {
|
|
|
+ Fixture f = new Fixture(); pickup(f, 11L); pickup(f, 12L);
|
|
|
+ var page = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<FlashDeliveryOrder>(1, 10);
|
|
|
+ page.setRecords(List.of(f.order));
|
|
|
+ when(f.orders.selectPage(any(), any())).thenReturn(page);
|
|
|
+ var card = f.service.riderOrders(8L, 1, 10, "toPickup", null, null).getRecords().get(0);
|
|
|
+ var stops = card.getStops();
|
|
|
+ // 逐站列表按用户顺序返回,取送类型与状态驱动卡片上的 ①②③ 序号和逐站进度。
|
|
|
+ assertEquals(List.of("PICKUP", "PICKUP", "DELIVERY", "DELIVERY"),
|
|
|
+ stops.stream().map(FlashDeliveryStopView::getStopType).toList());
|
|
|
+ assertEquals(List.of(0, 1, 2, 3), stops.stream().map(FlashDeliveryStopView::getStopOrder).toList());
|
|
|
+ assertEquals(List.of("address 0", "address 1", "address 2", "address 3"),
|
|
|
+ stops.stream().map(FlashDeliveryStopView::getAddress).toList());
|
|
|
+ assertEquals(List.of("PICKED_UP", "PICKED_UP", "PENDING", "PENDING"),
|
|
|
+ stops.stream().map(FlashDeliveryStopView::getStatus).toList());
|
|
|
+ // 卡片与详情同口径脱敏:文字地址可见,联系人、电话、坐标与凭证不落卡片。
|
|
|
+ assertNull(stops.get(0).getName()); assertNull(stops.get(0).getPhone());
|
|
|
+ assertNull(stops.get(0).getLongitude()); assertNull(stops.get(0).getLatitude());
|
|
|
+ assertTrue(stops.get(0).getImageUrls().isEmpty());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test void newTaskGrabCardsExposeStopAddressesOnly() {
|
|
|
+ Fixture f = new Fixture();
|
|
|
+ f.order.setStatus("WAITING_ACCEPTANCE"); f.order.setRiderId(null);
|
|
|
+ var page = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<FlashDeliveryOrder>(1, 10);
|
|
|
+ page.setRecords(List.of(f.order));
|
|
|
+ when(f.orders.selectPage(any(), any())).thenReturn(page);
|
|
|
+ var card = f.service.riderOrders(8L, 1, 10, "newTask", null, null).getRecords().get(0);
|
|
|
+ // 待抢卡片同样给出逐站文字地址供骑手评估路线,但不泄露联系人、电话与坐标。
|
|
|
+ assertEquals(List.of("PICKUP", "PICKUP", "DELIVERY", "DELIVERY"),
|
|
|
+ card.getStops().stream().map(FlashDeliveryStopView::getStopType).toList());
|
|
|
+ assertNull(card.getStops().get(2).getName());
|
|
|
+ assertNull(card.getStops().get(2).getPhone());
|
|
|
+ assertNull(card.getStops().get(2).getLongitude());
|
|
|
+ assertNull(card.getUserNote());
|
|
|
+ }
|
|
|
+
|
|
|
@Test void riderCanCollectNearbyRemainingPickupBeforeDeliveryWithoutConsent() {
|
|
|
Fixture f = interleaved(); pickup(f, 11L); pickup(f, 12L);
|
|
|
assertEquals(13L, f.service.riderDetail(8L, 10L).getCurrentTargetStopId());
|