Commit e86214015d6bdfe199e0daecb3c74538713bfe8b

Authored by puhui999
1 parent 35daee84

fix: 完善商品管理

Showing 15 changed files with 96 additions and 99 deletions
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/ProductConstants.java
... ... @@ -7,22 +7,6 @@ package cn.iocoder.yudao.module.product.enums;
7 7 */
8 8 public interface ProductConstants {
9 9  
10   - // TODO @puhui999:这个变量,可以放到 CategoryDO 的实体里
11   - /**
12   - * 父分类编号 - 根分类
13   - */
14   - Long PARENT_ID_NULL = 0L;
15   - /**
16   - * 限定分类层级
17   - */
18   - int CATEGORY_LEVEL = 2;
19   -
20   - // TODO @puhui999:这个变量,必要项不大哈
21   - /**
22   - * SPU 分页 tab 个数
23   - */
24   - int SPU_TAB_COUNTS = 5;
25   -
26 10 /**
27 11 * 警戒库存 TODO 警戒库存暂时为 10,后期需要使用常量或者数据库配置替换
28 12 */
... ...
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/spu/ProductSpuPageTabEnum.java deleted
1   -package cn.iocoder.yudao.module.product.enums.spu;
2   -
3   -import cn.iocoder.yudao.framework.common.core.IntArrayValuable;
4   -import lombok.AllArgsConstructor;
5   -import lombok.Getter;
6   -
7   -import java.util.Arrays;
8   -
9   -// TODO @puhui999:这种非关键的枚举,要不直接写在 ProductSpuPageReqVO 里。类似 public static final Integer TAB_TYPE_FOR_SALE = 0; // 出售中商品
10   -/**
11   - * 商品 spu Tabs 标签枚举类型
12   - *
13   - * @author HUIHUI
14   - */
15   -@Getter
16   -@AllArgsConstructor
17   -public enum ProductSpuPageTabEnum implements IntArrayValuable {
18   -
19   - FOR_SALE(0,"出售中商品"),
20   - IN_WAREHOUSE(1,"仓库中商品"),
21   - SOLD_OUT(2,"已售空商品"),
22   - ALERT_STOCK(3,"警戒库存"),
23   - RECYCLE_BIN(4,"商品回收站");
24   -
25   - public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(ProductSpuPageTabEnum::getType).toArray();
26   - /**
27   - * 状态
28   - */
29   - private final Integer type;
30   - /**
31   - * 状态名
32   - */
33   - private final String name;
34   -
35   - @Override
36   - public int[] array() {
37   - return ARRAYS;
38   - }
39   -
40   -}
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuExportReqVO.java
1 1 package cn.iocoder.yudao.module.product.controller.admin.spu.vo;
2 2  
3   -import cn.iocoder.yudao.framework.common.validation.InEnum;
4   -import cn.iocoder.yudao.module.product.enums.spu.ProductSpuPageTabEnum;
5 3 import io.swagger.v3.oas.annotations.media.Schema;
6 4 import lombok.AllArgsConstructor;
7 5 import lombok.Data;
... ... @@ -12,6 +10,11 @@ import java.time.LocalDateTime;
12 10  
13 11 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
14 12  
  13 +/**
  14 + * 商品Spu导出 Request VO,参数和 ProductSpuPageReqVO 是一致的
  15 + *
  16 + * @author HUIHUI
  17 + */
15 18 @Schema(description = "管理后台 - 商品Spu导出 Request VO,参数和 ProductSpuPageReqVO 是一致的")
16 19 @Data
17 20 @NoArgsConstructor
... ... @@ -22,7 +25,6 @@ public class ProductSpuExportReqVO {
22 25 private String name;
23 26  
24 27 @Schema(description = "前端请求的tab类型", example = "1")
25   - @InEnum(ProductSpuPageTabEnum.class)
26 28 private Integer tabType;
27 29  
28 30 @Schema(description = "商品分类编号", example = "100")
... ...
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuPageReqVO.java
... ... @@ -2,14 +2,12 @@ package cn.iocoder.yudao.module.product.controller.admin.spu.vo;
2 2  
3 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
4 4 import cn.iocoder.yudao.framework.common.validation.InEnum;
5   -import cn.iocoder.yudao.module.product.enums.spu.ProductSpuPageTabEnum;
6 5 import io.swagger.v3.oas.annotations.media.Schema;
7 6 import lombok.Data;
8 7 import lombok.EqualsAndHashCode;
9 8 import lombok.ToString;
10 9 import org.springframework.format.annotation.DateTimeFormat;
11 10  
12   -import javax.validation.constraints.NotNull;
13 11 import java.time.LocalDateTime;
14 12  
15 13 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
... ... @@ -25,11 +23,35 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
25 23 @ToString(callSuper = true)
26 24 public class ProductSpuPageReqVO extends PageParam {
27 25  
  26 + /**
  27 + * 出售中商品
  28 + */
  29 + public static final Integer FOR_SALE = 0;
  30 +
  31 + /**
  32 + * 仓库中商品
  33 + */
  34 + public static final Integer IN_WAREHOUSE = 1;
  35 +
  36 + /**
  37 + * 已售空商品
  38 + */
  39 + public static final Integer SOLD_OUT = 2;
  40 +
  41 + /**
  42 + * 警戒库存
  43 + */
  44 + public static final Integer ALERT_STOCK = 3;
  45 +
  46 + /**
  47 + * 商品回收站
  48 + */
  49 + public static final Integer RECYCLE_BIN = 4;
  50 +
28 51 @Schema(description = "商品名称", example = "清凉小短袖")
29 52 private String name;
30 53  
31 54 @Schema(description = "前端请求的tab类型", required = true, example = "1")
32   - @InEnum(ProductSpuPageTabEnum.class)
33 55 private Integer tabType;
34 56  
35 57 @Schema(description = "商品分类编号", example = "1")
... ...
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuRespVO.java
... ... @@ -9,7 +9,7 @@ import java.time.LocalDateTime;
9 9  
10 10 /**
11 11 * 商品 SPU Response VO
12   - * TODO 移除ProductSpuPageRespVO相关应用跟换为ProductSpuRespVO已继承ProductSpuBaseVO 补全表格展示所需属性
  12 + *
13 13 * @author HUIHUI
14 14 */
15 15 @Schema(description = "管理后台 - 商品 SPU Response VO")
... ...
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/category/ProductCategoryDO.java
... ... @@ -19,6 +19,16 @@ import lombok.*;
19 19 @NoArgsConstructor
20 20 @AllArgsConstructor
21 21 public class ProductCategoryDO extends BaseDO {
  22 +
  23 + /**
  24 + * 父分类编号 - 根分类
  25 + */
  26 + public static final Long PARENT_ID_NULL = 0L;
  27 + /**
  28 + * 限定分类层级
  29 + */
  30 + public static final int CATEGORY_LEVEL = 2;
  31 +
22 32 /**
23 33 * 分类编号
24 34 */
... ...
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/spu/ProductSpuMapper.java
... ... @@ -10,7 +10,6 @@ import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuPageReq
10 10 import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuPageReqVO;
11 11 import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO;
12 12 import cn.iocoder.yudao.module.product.enums.ProductConstants;
13   -import cn.iocoder.yudao.module.product.enums.spu.ProductSpuPageTabEnum;
14 13 import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum;
15 14 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
16 15 import org.apache.ibatis.annotations.Mapper;
... ... @@ -119,25 +118,25 @@ public interface ProductSpuMapper extends BaseMapperX<ProductSpuDO> {
119 118 */
120 119 static void appendTabQuery(Integer tabType, LambdaQueryWrapperX<ProductSpuDO> queryWrapper) {
121 120 // 出售中商品
122   - if (ObjectUtil.equals(ProductSpuPageTabEnum.FOR_SALE.getType(), tabType)) {
  121 + if (ObjectUtil.equals(ProductSpuPageReqVO.FOR_SALE, tabType)) {
123 122 queryWrapper.eqIfPresent(ProductSpuDO::getStatus, ProductSpuStatusEnum.ENABLE.getStatus());
124 123 }
125 124 // 仓储中商品
126   - if (ObjectUtil.equals(ProductSpuPageTabEnum.IN_WAREHOUSE.getType(), tabType)) {
  125 + if (ObjectUtil.equals(ProductSpuPageReqVO.IN_WAREHOUSE, tabType)) {
127 126 queryWrapper.eqIfPresent(ProductSpuDO::getStatus, ProductSpuStatusEnum.DISABLE.getStatus());
128 127 }
129 128 // 已售空商品
130   - if (ObjectUtil.equals(ProductSpuPageTabEnum.SOLD_OUT.getType(), tabType)) {
  129 + if (ObjectUtil.equals(ProductSpuPageReqVO.SOLD_OUT, tabType)) {
131 130 queryWrapper.eqIfPresent(ProductSpuDO::getStock, 0);
132 131 }
133 132 // 警戒库存
134   - if (ObjectUtil.equals(ProductSpuPageTabEnum.ALERT_STOCK.getType(), tabType)) {
  133 + if (ObjectUtil.equals(ProductSpuPageReqVO.ALERT_STOCK, tabType)) {
135 134 queryWrapper.le(ProductSpuDO::getStock, ProductConstants.ALERT_STOCK)
136 135 // 如果库存触发警戒库存且状态为回收站的话则不在警戒库存列表展示
137 136 .notIn(ProductSpuDO::getStatus, ProductSpuStatusEnum.RECYCLE.getStatus());
138 137 }
139 138 // 回收站
140   - if (ObjectUtil.equals(ProductSpuPageTabEnum.RECYCLE_BIN.getType(), tabType)) {
  139 + if (ObjectUtil.equals(ProductSpuPageReqVO.RECYCLE_BIN, tabType)) {
141 140 queryWrapper.eqIfPresent(ProductSpuDO::getStatus, ProductSpuStatusEnum.RECYCLE.getStatus());
142 141 }
143 142 }
... ...
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/category/ProductCategoryServiceImpl.java
... ... @@ -16,6 +16,7 @@ import java.util.List;
16 16 import java.util.Objects;
17 17  
18 18 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  19 +import static cn.iocoder.yudao.module.product.dal.dataobject.category.ProductCategoryDO.PARENT_ID_NULL;
19 20 import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.*;
20 21  
21 22 /**
... ... @@ -69,7 +70,7 @@ public class ProductCategoryServiceImpl implements ProductCategoryService {
69 70  
70 71 private void validateParentProductCategory(Long id) {
71 72 // 如果是根分类,无需验证
72   - if (Objects.equals(id, ProductConstants.PARENT_ID_NULL)) {
  73 + if (Objects.equals(id, PARENT_ID_NULL)) {
73 74 return;
74 75 }
75 76 // 父分类不存在
... ... @@ -78,7 +79,7 @@ public class ProductCategoryServiceImpl implements ProductCategoryService {
78 79 throw exception(CATEGORY_PARENT_NOT_EXISTS);
79 80 }
80 81 // 父分类不能是二级分类
81   - if (!Objects.equals(category.getParentId(), ProductConstants.PARENT_ID_NULL)) {
  82 + if (!Objects.equals(category.getParentId(), PARENT_ID_NULL)) {
82 83 throw exception(CATEGORY_PARENT_NOT_FIRST_LEVEL);
83 84 }
84 85 }
... ... @@ -108,17 +109,16 @@ public class ProductCategoryServiceImpl implements ProductCategoryService {
108 109  
109 110 @Override
110 111 public Integer getCategoryLevel(Long id) {
111   - if (Objects.equals(id, ProductConstants.PARENT_ID_NULL)) {
  112 + if (Objects.equals(id, PARENT_ID_NULL)) {
112 113 return 0;
113 114 }
114   - // TODO @puhui999:for 的原因,是因为避免脏数据,导致可能的死循环。一般不会超过 100 层哈
115 115 int level = 1;
116   - // fix: 循环次数不确定改为while循环
117   - while (true){
  116 + // for 的原因,是因为避免脏数据,导致可能的死循环。一般不会超过 100 层哈
  117 + for (int i = 0; i < 100; i++) {
118 118 ProductCategoryDO category = productCategoryMapper.selectById(id);
119 119 // 如果没有父节点,break 结束
120 120 if (category == null
121   - || Objects.equals(category.getParentId(), ProductConstants.PARENT_ID_NULL)) {
  121 + || Objects.equals(category.getParentId(), PARENT_ID_NULL)) {
122 122 break;
123 123 }
124 124 // 继续递归父节点
... ...
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuServiceImpl.java
... ... @@ -14,7 +14,6 @@ import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
14 14 import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO;
15 15 import cn.iocoder.yudao.module.product.dal.mysql.spu.ProductSpuMapper;
16 16 import cn.iocoder.yudao.module.product.enums.ProductConstants;
17   -import cn.iocoder.yudao.module.product.enums.spu.ProductSpuPageTabEnum;
18 17 import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum;
19 18 import cn.iocoder.yudao.module.product.service.brand.ProductBrandService;
20 19 import cn.iocoder.yudao.module.product.service.category.ProductCategoryService;
... ... @@ -29,6 +28,7 @@ import java.util.*;
29 28  
30 29 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
31 30 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.getSumValue;
  31 +import static cn.iocoder.yudao.module.product.dal.dataobject.category.ProductCategoryDO.CATEGORY_LEVEL;
32 32 import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.*;
33 33  
34 34 /**
... ... @@ -129,7 +129,7 @@ public class ProductSpuServiceImpl implements ProductSpuService {
129 129 private void validateCategory(Long id) {
130 130 categoryService.validateCategory(id);
131 131 // 校验层级
132   - if (categoryService.getCategoryLevel(id) != ProductConstants.CATEGORY_LEVEL) {
  132 + if (categoryService.getCategoryLevel(id) < CATEGORY_LEVEL) {
133 133 throw exception(SPU_SAVE_FAIL_CATEGORY_LEVEL_ERROR);
134 134 }
135 135 }
... ... @@ -237,17 +237,17 @@ public class ProductSpuServiceImpl implements ProductSpuService {
237 237  
238 238 @Override
239 239 public Map<Integer, Long> getTabsCount() {
240   - Map<Integer, Long> counts = new HashMap<>(ProductConstants.SPU_TAB_COUNTS);
  240 + Map<Integer, Long> counts = new HashMap<>(5);
241 241 // 查询销售中的商品数量
242   - counts.put(ProductSpuPageTabEnum.FOR_SALE.getType(), productSpuMapper.selectCount(ProductSpuDO::getStatus, ProductSpuStatusEnum.ENABLE.getStatus()));
  242 + counts.put(ProductSpuPageReqVO.FOR_SALE, productSpuMapper.selectCount(ProductSpuDO::getStatus, ProductSpuStatusEnum.ENABLE.getStatus()));
243 243 // 查询仓库中的商品数量
244   - counts.put(ProductSpuPageTabEnum.IN_WAREHOUSE.getType(), productSpuMapper.selectCount(ProductSpuDO::getStatus, ProductSpuStatusEnum.DISABLE.getStatus()));
  244 + counts.put(ProductSpuPageReqVO.IN_WAREHOUSE, productSpuMapper.selectCount(ProductSpuDO::getStatus, ProductSpuStatusEnum.DISABLE.getStatus()));
245 245 // 查询售空的商品数量
246   - counts.put(ProductSpuPageTabEnum.SOLD_OUT.getType(), productSpuMapper.selectCount(ProductSpuDO::getStock, 0));
  246 + counts.put(ProductSpuPageReqVO.SOLD_OUT, productSpuMapper.selectCount(ProductSpuDO::getStock, 0));
247 247 // 查询触发警戒库存的商品数量
248   - counts.put(ProductSpuPageTabEnum.ALERT_STOCK.getType(), productSpuMapper.selectCount());
  248 + counts.put(ProductSpuPageReqVO.ALERT_STOCK, productSpuMapper.selectCount());
249 249 // 查询回收站中的商品数量
250   - counts.put(ProductSpuPageTabEnum.RECYCLE_BIN.getType(), productSpuMapper.selectCount(ProductSpuDO::getStatus, ProductSpuStatusEnum.RECYCLE.getStatus()));
  250 + counts.put(ProductSpuPageReqVO.RECYCLE_BIN, productSpuMapper.selectCount(ProductSpuDO::getStatus, ProductSpuStatusEnum.RECYCLE.getStatus()));
251 251 return counts;
252 252 }
253 253  
... ...
yudao-module-mall/yudao-module-product-biz/src/test/java/cn/iocoder/yudao/module/product/service/category/ProductCategoryServiceImplTest.java
... ... @@ -18,9 +18,8 @@ import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEq
18 18 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
19 19 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
20 20 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
21   -
  21 +import static cn.iocoder.yudao.module.product.dal.dataobject.category.ProductCategoryDO.PARENT_ID_NULL;
22 22 import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.CATEGORY_NOT_EXISTS;
23   -import static cn.iocoder.yudao.module.product.enums.ProductConstants.PARENT_ID_NULL;
24 23 import static org.junit.jupiter.api.Assertions.*;
25 24  
26 25 /**
... ...
yudao-module-mall/yudao-module-product-biz/src/test/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuServiceImplTest.java
... ... @@ -14,7 +14,6 @@ import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuUpdateR
14 14 import cn.iocoder.yudao.module.product.convert.spu.ProductSpuConvert;
15 15 import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO;
16 16 import cn.iocoder.yudao.module.product.dal.mysql.spu.ProductSpuMapper;
17   -import cn.iocoder.yudao.module.product.enums.spu.ProductSpuPageTabEnum;
18 17 import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum;
19 18 import cn.iocoder.yudao.module.product.service.brand.ProductBrandServiceImpl;
20 19 import cn.iocoder.yudao.module.product.service.category.ProductCategoryServiceImpl;
... ... @@ -318,7 +317,7 @@ public class ProductSpuServiceImplTest extends BaseDbUnitTest {
318 317 productSpuMapper.insertBatch(createReqVOs);
319 318 // 调用
320 319 ProductSpuPageReqVO productSpuPageReqVO = new ProductSpuPageReqVO();
321   - productSpuPageReqVO.setTabType(ProductSpuPageTabEnum.ALERT_STOCK.getType());
  320 + productSpuPageReqVO.setTabType(ProductSpuPageReqVO.ALERT_STOCK);
322 321  
323 322 PageResult<ProductSpuDO> spuPage = productSpuService.getSpuPage(productSpuPageReqVO);
324 323  
... ... @@ -366,7 +365,7 @@ public class ProductSpuServiceImplTest extends BaseDbUnitTest {
366 365 productSpuMapper.insertBatch(createReqVOs);
367 366 // 调用
368 367 ProductSpuPageReqVO productSpuPageReqVO = new ProductSpuPageReqVO();
369   - productSpuPageReqVO.setTabType(ProductSpuPageTabEnum.ALERT_STOCK.getType());
  368 + productSpuPageReqVO.setTabType(ProductSpuPageReqVO.ALERT_STOCK);
370 369 PageResult<ProductSpuDO> spuPage = productSpuService.getSpuPage(productSpuPageReqVO);
371 370 assertEquals(createReqVOs.size(), spuPage.getTotal());
372 371 }
... ... @@ -407,11 +406,11 @@ public class ProductSpuServiceImplTest extends BaseDbUnitTest {
407 406 // 调用
408 407 ProductSpuPageReqVO productSpuPageReqVO = new ProductSpuPageReqVO();
409 408 // 查询条件 按需打开
410   - //productSpuPageReqVO.setTabType(ProductSpuPageTabEnum.ALERT_STOCK.getType());
411   - //productSpuPageReqVO.setTabType(ProductSpuPageTabEnum.RECYCLE_BIN.getType());
412   - //productSpuPageReqVO.setTabType(ProductSpuPageTabEnum.FOR_SALE.getType());
413   - //productSpuPageReqVO.setTabType(ProductSpuPageTabEnum.IN_WAREHOUSE.getType());
414   - //productSpuPageReqVO.setTabType(ProductSpuPageTabEnum.SOLD_OUT.getType());
  409 + //productSpuPageReqVO.setTabType(ProductSpuPageReqVO.ALERT_STOCK);
  410 + //productSpuPageReqVO.setTabType(ProductSpuPageReqVO.RECYCLE_BIN);
  411 + //productSpuPageReqVO.setTabType(ProductSpuPageReqVO.FOR_SALE);
  412 + //productSpuPageReqVO.setTabType(ProductSpuPageReqVO.IN_WAREHOUSE);
  413 + //productSpuPageReqVO.setTabType(ProductSpuPageReqVO.SOLD_OUT);
415 414 //productSpuPageReqVO.setName(createReqVO.getName());
416 415 //productSpuPageReqVO.setCategoryId(createReqVO.getCategoryId());
417 416  
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/DeliveryExpressTemplateController.java
1 1 package cn.iocoder.yudao.module.trade.controller.admin.delivery;
2 2  
  3 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
3 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 6 import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.expresstemplate.*;
... ... @@ -71,6 +72,15 @@ public class DeliveryExpressTemplateController {
71 72 return success(DeliveryExpressTemplateConvert.INSTANCE.convertList(list));
72 73 }
73 74  
  75 + @GetMapping("/list-all-simple")
  76 + @Operation(summary = "获取快递模版精简信息列表", description = "主要用于前端的下拉选项")
  77 + public CommonResult<List<DeliveryExpressTemplateSimpleRespVO>> getSimpleTemplateList() {
  78 + // 获取运费模版列表,只要开启状态的
  79 + List<DeliveryExpressTemplateDO> list = deliveryExpressTemplateService.getDeliveryExpressTemplateList();
  80 + // 排序后,返回给前端
  81 + return success(DeliveryExpressTemplateConvert.INSTANCE.convertList(list));
  82 + }
  83 +
74 84 @GetMapping("/page")
75 85 @Operation(summary = "获得快递运费模板分页")
76 86 @PreAuthorize("@ss.hasPermission('trade:delivery:express-template:query')")
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateSimpleRespVO.java
... ... @@ -2,19 +2,19 @@ package cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.expresstempla
2 2  
3 3 import io.swagger.v3.oas.annotations.media.Schema;
4 4 import lombok.*;
  5 +
  6 +import javax.validation.constraints.NotNull;
5 7 import java.time.LocalDateTime;
6 8  
7   -// TODO @jason:simplae 是不是不用继承 DeliveryExpressTemplateBaseVO,直接 id name 属性就够了。
8 9 @Schema(description = "管理后台 - 快递运费模板 精简 Response VO")
9 10 @Data
10   -@EqualsAndHashCode(callSuper = true)
11 11 @ToString(callSuper = true)
12   -public class DeliveryExpressTemplateSimpleRespVO extends DeliveryExpressTemplateBaseVO {
  12 +public class DeliveryExpressTemplateSimpleRespVO {
13 13  
14 14 @Schema(description = "编号,自增", required = true, example = "371")
15 15 private Long id;
16 16  
17   - @Schema(description = "创建时间", required = true)
18   - private LocalDateTime createTime;
  17 + @Schema(description = "模板名称", required = true, example = "王五")
  18 + private String name;
19 19  
20 20 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryExpressTemplateService.java
... ... @@ -57,6 +57,13 @@ public interface DeliveryExpressTemplateService {
57 57 List<DeliveryExpressTemplateDO> getDeliveryExpressTemplateList(Collection<Long> ids);
58 58  
59 59 /**
  60 + * 获得快递运费模板列表
  61 + *
  62 + * @return 快递运费模板列表
  63 + */
  64 + List<DeliveryExpressTemplateDO> getDeliveryExpressTemplateList();
  65 +
  66 + /**
60 67 * 获得快递运费模板分页
61 68 *
62 69 * @param pageReqVO 分页查询
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryExpressTemplateServiceImpl.java
... ... @@ -198,6 +198,11 @@ public class DeliveryExpressTemplateServiceImpl implements DeliveryExpressTempla
198 198 }
199 199  
200 200 @Override
  201 + public List<DeliveryExpressTemplateDO> getDeliveryExpressTemplateList() {
  202 + return expressTemplateMapper.selectList();
  203 + }
  204 +
  205 + @Override
201 206 public PageResult<DeliveryExpressTemplateDO> getDeliveryExpressTemplatePage(DeliveryExpressTemplatePageReqVO pageReqVO) {
202 207 return expressTemplateMapper.selectPage(pageReqVO);
203 208 }
... ...