chore: seed demo delivery tasks

This commit is contained in:
王鹏
2026-07-07 17:19:00 +08:00
parent d3840d621c
commit d2886fbd8f
4 changed files with 95 additions and 11 deletions

View File

@@ -2,6 +2,11 @@ package com.linhelp.dev;
import com.linhelp.delivery.DeliveryUserRequest;
import com.linhelp.delivery.DeliveryUserService;
import com.linhelp.delivery.DeliveryAssignmentService;
import com.linhelp.common.enums.DeliveryMethod;
import com.linhelp.express.ExpressOrderRequest;
import com.linhelp.express.ExpressOrderResponse;
import com.linhelp.express.ExpressOrderService;
import com.linhelp.groupbuy.GroupBuyRequest;
import com.linhelp.groupbuy.GroupBuyResponse;
import com.linhelp.groupbuy.GroupBuyService;
@@ -10,6 +15,10 @@ import com.linhelp.notice.BannerService;
import com.linhelp.notice.NoticeRequest;
import com.linhelp.notice.NoticeResponse;
import com.linhelp.notice.NoticeService;
import com.linhelp.order.CreateGoodsOrderItemRequest;
import com.linhelp.order.CreateGoodsOrderRequest;
import com.linhelp.order.GoodsOrderResponse;
import com.linhelp.order.GoodsOrderService;
import com.linhelp.product.ProductCategoryRequest;
import com.linhelp.product.ProductCategoryResponse;
import com.linhelp.product.ProductRequest;
@@ -19,6 +28,7 @@ import com.linhelp.product.ProductSkuRequest;
import com.linhelp.secondhand.SecondGoodsRequest;
import com.linhelp.secondhand.SecondGoodsResponse;
import com.linhelp.secondhand.SecondGoodsService;
import com.linhelp.user.AddressResponse;
import com.linhelp.user.AddressRequest;
import com.linhelp.user.UserAddressService;
import org.springframework.boot.ApplicationArguments;
@@ -45,7 +55,10 @@ public class DevDataInitializer implements ApplicationRunner {
private final BannerService bannerService;
private final SecondGoodsService secondGoodsService;
private final DeliveryUserService deliveryUserService;
private final DeliveryAssignmentService deliveryAssignmentService;
private final UserAddressService addressService;
private final GoodsOrderService goodsOrderService;
private final ExpressOrderService expressOrderService;
public DevDataInitializer(ProductService productService,
GroupBuyService groupBuyService,
@@ -53,14 +66,20 @@ public class DevDataInitializer implements ApplicationRunner {
BannerService bannerService,
SecondGoodsService secondGoodsService,
DeliveryUserService deliveryUserService,
UserAddressService addressService) {
DeliveryAssignmentService deliveryAssignmentService,
UserAddressService addressService,
GoodsOrderService goodsOrderService,
ExpressOrderService expressOrderService) {
this.productService = productService;
this.groupBuyService = groupBuyService;
this.noticeService = noticeService;
this.bannerService = bannerService;
this.secondGoodsService = secondGoodsService;
this.deliveryUserService = deliveryUserService;
this.deliveryAssignmentService = deliveryAssignmentService;
this.addressService = addressService;
this.goodsOrderService = goodsOrderService;
this.expressOrderService = expressOrderService;
}
@Override
@@ -68,17 +87,18 @@ public class DevDataInitializer implements ApplicationRunner {
if (!productService.listCategories(COMMUNITY_ID, false).isEmpty()) {
return;
}
seedAddress();
AddressResponse address = seedAddress();
seedDeliveryUser();
List<ProductCategoryResponse> categories = seedCategories();
seedProducts(categories);
ProductResponse demoProduct = seedProducts(categories);
seedDemoDeliveryTasks(address.getId(), demoProduct);
seedGroupBuy();
seedNotices();
seedBanner();
seedSecondGoods();
}
private void seedAddress() {
private AddressResponse seedAddress() {
AddressRequest request = new AddressRequest();
request.setTenantId(TENANT_ID);
request.setCommunityId(COMMUNITY_ID);
@@ -88,7 +108,7 @@ public class DevDataInitializer implements ApplicationRunner {
request.setRoom("1201");
request.setDetail("东门旁");
request.setDefault(true);
addressService.create(RESIDENT_USER_ID, request);
return addressService.create(RESIDENT_USER_ID, request);
}
private void seedDeliveryUser() {
@@ -123,8 +143,8 @@ public class DevDataInitializer implements ApplicationRunner {
return productService.createCategory(request);
}
private void seedProducts(List<ProductCategoryResponse> categories) {
createProduct(categories.get(0).getId(), "烟台苹果", "/mock/apple.jpg", "脆甜多汁,适合家庭日常补货", "约1kg", 1290, 1590, 80);
private ProductResponse seedProducts(List<ProductCategoryResponse> categories) {
ProductResponse demoProduct = createProduct(categories.get(0).getId(), "烟台苹果", "/mock/apple.jpg", "脆甜多汁,适合家庭日常补货", "约1kg", 1290, 1590, 80);
createProduct(categories.get(0).getId(), "海南香蕉", "/mock/banana.jpg", "当日到货,成熟度适中", "约1.5kg", 990, 1290, 70);
createProduct(categories.get(1).getId(), "每日坚果", "/mock/nuts.jpg", "独立小包装,办公室零食", "12包", 2990, 3590, 45);
createProduct(categories.get(1).getId(), "海苔脆片", "/mock/seaweed.jpg", "轻食小零嘴", "原味40g", 690, 890, 90);
@@ -134,10 +154,11 @@ public class DevDataInitializer implements ApplicationRunner {
createProduct(categories.get(3).getId(), "豆浆", "/mock/soy-milk.jpg", "现磨豆浆", "300ml", 350, 500, 120);
createProduct(categories.get(4).getId(), "上海青", "/mock/greens.jpg", "新鲜蔬菜约500g", "约500g", 590, 790, 80);
createProduct(categories.get(5).getId(), "抽纸三包装", "/mock/tissue.jpg", "家庭常备日用品", "3包", 1890, 2290, 55);
return demoProduct;
}
private void createProduct(Long categoryId, String name, String coverUrl, String description,
String skuName, int priceCent, int originPriceCent, int stock) {
private ProductResponse createProduct(Long categoryId, String name, String coverUrl, String description,
String skuName, int priceCent, int originPriceCent, int stock) {
ProductRequest productRequest = new ProductRequest();
productRequest.setTenantId(TENANT_ID);
productRequest.setCommunityId(COMMUNITY_ID);
@@ -158,7 +179,49 @@ public class DevDataInitializer implements ApplicationRunner {
skuRequest.setStock(stock);
skuRequest.setEnabled(true);
productService.addSku(product.getId(), skuRequest);
productService.onShelf(product.getId());
return productService.onShelf(product.getId());
}
private void seedDemoDeliveryTasks(Long addressId, ProductResponse demoProduct) {
GoodsOrderResponse goodsOrder = goodsOrderService.create(RESIDENT_USER_ID, goodsOrder(addressId, demoProduct));
goodsOrderService.confirm(goodsOrder.getId());
goodsOrderService.markPaid(goodsOrder.getId());
GoodsOrderResponse preparedGoodsOrder = goodsOrderService.markPrepared(goodsOrder.getId());
deliveryAssignmentService.assignGoodsOrder(preparedGoodsOrder.getId(), 1L);
ExpressOrderResponse expressOrder = expressOrderService.create(RESIDENT_USER_ID, expressOrder(addressId));
expressOrderService.confirm(expressOrder.getId());
deliveryAssignmentService.assignExpressOrder(expressOrder.getId(), 1L);
}
private CreateGoodsOrderRequest goodsOrder(Long addressId, ProductResponse demoProduct) {
CreateGoodsOrderRequest request = new CreateGoodsOrderRequest();
request.setTenantId(TENANT_ID);
request.setCommunityId(COMMUNITY_ID);
request.setMerchantId(MERCHANT_ID);
request.setAddressId(addressId);
request.setDeliveryMethod(DeliveryMethod.IMMEDIATE);
request.setRemark("Demo请送到门口");
request.setItems(Arrays.asList(new CreateGoodsOrderItemRequest(
demoProduct.getId(),
demoProduct.getSkus().get(0).getId(),
1
)));
return request;
}
private ExpressOrderRequest expressOrder(Long addressId) {
ExpressOrderRequest request = new ExpressOrderRequest();
request.setTenantId(TENANT_ID);
request.setCommunityId(COMMUNITY_ID);
request.setAddressId(addressId);
request.setExpressCompany("顺丰速运");
request.setPickupCode("A1-2333");
request.setPickupAddress("小区东门快递驿站");
request.setReceiverPhone("13800001000");
request.setPackageCount(2);
request.setRemark("Demo快递较轻可直接放门口");
return request;
}
private void seedGroupBuy() {