feat: enrich group buy delivery task info
This commit is contained in:
@@ -2,6 +2,12 @@ package com.linhelp.delivery;
|
||||
|
||||
import com.linhelp.common.enums.DeliveryMethod;
|
||||
import com.linhelp.common.enums.DeliveryTaskStatus;
|
||||
import com.linhelp.groupbuy.GroupBuyOrderRequest;
|
||||
import com.linhelp.groupbuy.GroupBuyOrderResponse;
|
||||
import com.linhelp.groupbuy.GroupBuyOrderService;
|
||||
import com.linhelp.groupbuy.GroupBuyRequest;
|
||||
import com.linhelp.groupbuy.GroupBuyResponse;
|
||||
import com.linhelp.groupbuy.GroupBuyService;
|
||||
import com.linhelp.order.CreateGoodsOrderItemRequest;
|
||||
import com.linhelp.order.CreateGoodsOrderRequest;
|
||||
import com.linhelp.order.GoodsOrderResponse;
|
||||
@@ -13,6 +19,7 @@ import com.linhelp.user.AddressResponse;
|
||||
import com.linhelp.user.UserAddressService;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Collections;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
@@ -35,6 +42,23 @@ class DeliveryAssignmentServiceTests {
|
||||
assertThat(task.getAddress()).isEqualTo("1号楼 1201 东门旁");
|
||||
}
|
||||
|
||||
@Test
|
||||
void adminCanAssignReadyGroupBuyOrderWithDeliveryInfoToRider() {
|
||||
TestFixture fixture = new TestFixture();
|
||||
GroupBuyOrderResponse order = fixture.preparedGroupBuyDeliveryOrder();
|
||||
DeliveryUserResponse rider = fixture.rider();
|
||||
|
||||
DeliveryOrderResponse task = fixture.assignmentService.assignGroupBuyOrder(order.getCommunityId(), order.getId(), rider.getId());
|
||||
|
||||
assertThat(task.getBizType()).isEqualTo(DeliveryAssignmentService.BIZ_TYPE_GROUP_BUY_ORDER);
|
||||
assertThat(task.getBizOrderNo()).isEqualTo(order.getOrderNo());
|
||||
assertThat(task.getAmountCent()).isEqualTo(order.getAmountCent());
|
||||
assertThat(task.getRemark()).isEqualTo("请下午送达");
|
||||
assertThat(task.getContactName()).isEqualTo("李女士");
|
||||
assertThat(task.getContactPhone()).isEqualTo("13800001000");
|
||||
assertThat(task.getAddress()).isEqualTo("1号楼 1201 东门旁");
|
||||
}
|
||||
|
||||
@Test
|
||||
void cannotAssignSelfPickupGoodsOrder() {
|
||||
TestFixture fixture = new TestFixture();
|
||||
@@ -48,10 +72,12 @@ class DeliveryAssignmentServiceTests {
|
||||
private static class TestFixture {
|
||||
private final ProductService productService = new ProductService();
|
||||
private final GoodsOrderService goodsOrderService = new GoodsOrderService(productService);
|
||||
private final GroupBuyService groupBuyService = new GroupBuyService();
|
||||
private final GroupBuyOrderService groupBuyOrderService = new GroupBuyOrderService(groupBuyService);
|
||||
private final DeliveryUserService deliveryUserService = new DeliveryUserService();
|
||||
private final UserAddressService addressService = new UserAddressService();
|
||||
private final DeliveryAssignmentService assignmentService =
|
||||
new DeliveryAssignmentService(deliveryUserService, goodsOrderService, null, addressService);
|
||||
new DeliveryAssignmentService(deliveryUserService, goodsOrderService, null, groupBuyOrderService, addressService);
|
||||
|
||||
private GoodsOrderResponse preparedDeliveryOrder() {
|
||||
return preparedOrder(DeliveryMethod.IMMEDIATE, 1L);
|
||||
@@ -76,6 +102,34 @@ class DeliveryAssignmentServiceTests {
|
||||
return goodsOrderService.markPrepared(order.getId());
|
||||
}
|
||||
|
||||
private GroupBuyOrderResponse preparedGroupBuyDeliveryOrder() {
|
||||
GroupBuyRequest groupBuyRequest = new GroupBuyRequest();
|
||||
groupBuyRequest.setTenantId(1L);
|
||||
groupBuyRequest.setCommunityId(1L);
|
||||
groupBuyRequest.setTitle("今日鸡蛋团购");
|
||||
groupBuyRequest.setCoverUrl("https://img.test/egg.jpg");
|
||||
groupBuyRequest.setPriceCent(2990);
|
||||
groupBuyRequest.setStock(100);
|
||||
groupBuyRequest.setStartTime(LocalDateTime.now().minusHours(1));
|
||||
groupBuyRequest.setEndTime(LocalDateTime.now().plusDays(1));
|
||||
groupBuyRequest.setPickupAddress("小区北门");
|
||||
GroupBuyResponse groupBuy = groupBuyService.create(groupBuyRequest);
|
||||
groupBuyService.start(groupBuy.getId());
|
||||
|
||||
GroupBuyOrderRequest orderRequest = new GroupBuyOrderRequest();
|
||||
orderRequest.setTenantId(1L);
|
||||
orderRequest.setCommunityId(1L);
|
||||
orderRequest.setGroupBuyId(groupBuy.getId());
|
||||
orderRequest.setAddressId(address().getId());
|
||||
orderRequest.setQuantity(2);
|
||||
orderRequest.setDeliveryMethod(DeliveryMethod.IMMEDIATE);
|
||||
orderRequest.setRemark("请下午送达");
|
||||
|
||||
GroupBuyOrderResponse order = groupBuyOrderService.create(1L, orderRequest);
|
||||
groupBuyOrderService.confirm(order.getId());
|
||||
return groupBuyOrderService.markReady(order.getId());
|
||||
}
|
||||
|
||||
private AddressResponse address() {
|
||||
AddressRequest request = new AddressRequest();
|
||||
request.setTenantId(1L);
|
||||
|
||||
@@ -65,7 +65,7 @@ class RiderTaskServiceTests {
|
||||
private final DeliveryUserService deliveryUserService = new DeliveryUserService();
|
||||
private final UserAddressService addressService = new UserAddressService();
|
||||
private final DeliveryAssignmentService assignmentService =
|
||||
new DeliveryAssignmentService(deliveryUserService, goodsOrderService, null, addressService);
|
||||
new DeliveryAssignmentService(deliveryUserService, goodsOrderService, null, null, addressService);
|
||||
private final RiderTaskService riderTaskService =
|
||||
new RiderTaskService(assignmentService, goodsOrderService, null);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user