Commit 24a56bb45f9bd11145042aa3781aa7d51b877e3d

Authored by puhui999
1 parent f56d3948

移除ProductSku相关的status属性,修改Property

yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/ProductPropertyValueController.java
1 1 package cn.iocoder.yudao.module.product.controller.admin.property;
2 2  
  3 +import cn.hutool.core.collection.CollectionUtil;
  4 +import cn.hutool.crypto.symmetric.AES;
3 5 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 7 import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueCreateReqVO;
... ... @@ -18,6 +20,9 @@ import org.springframework.web.bind.annotation.*;
18 20 import javax.annotation.Resource;
19 21 import javax.validation.Valid;
20 22  
  23 +import java.util.Arrays;
  24 +import java.util.List;
  25 +
21 26 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
22 27  
23 28 @Tag(name = "管理后台 - 商品属性值")
... ... @@ -32,14 +37,14 @@ public class ProductPropertyValueController {
32 37 @PostMapping("/create")
33 38 @Operation(summary = "创建属性值")
34 39 @PreAuthorize("@ss.hasPermission('product:property:create')")
35   - public CommonResult<Long> createProperty(@Valid @RequestBody ProductPropertyValueCreateReqVO createReqVO) {
  40 + public CommonResult<Long> createPropertyValue(@Valid @RequestBody ProductPropertyValueCreateReqVO createReqVO) {
36 41 return success(productPropertyValueService.createPropertyValue(createReqVO));
37 42 }
38 43  
39 44 @PutMapping("/update")
40 45 @Operation(summary = "更新属性值")
41 46 @PreAuthorize("@ss.hasPermission('product:property:update')")
42   - public CommonResult<Boolean> updateProperty(@Valid @RequestBody ProductPropertyValueUpdateReqVO updateReqVO) {
  47 + public CommonResult<Boolean> updatePropertyValue(@Valid @RequestBody ProductPropertyValueUpdateReqVO updateReqVO) {
43 48 productPropertyValueService.updatePropertyValue(updateReqVO);
44 49 return success(true);
45 50 }
... ... @@ -48,7 +53,7 @@ public class ProductPropertyValueController {
48 53 @Operation(summary = "删除属性值")
49 54 @Parameter(name = "id", description = "编号", required = true, example = "1024")
50 55 @PreAuthorize("@ss.hasPermission('product:property:delete')")
51   - public CommonResult<Boolean> deleteProperty(@RequestParam("id") Long id) {
  56 + public CommonResult<Boolean> deletePropertyValue(@RequestParam("id") Long id) {
52 57 productPropertyValueService.deletePropertyValue(id);
53 58 return success(true);
54 59 }
... ... @@ -57,7 +62,7 @@ public class ProductPropertyValueController {
57 62 @Operation(summary = "获得属性值")
58 63 @Parameter(name = "id", description = "编号", required = true, example = "1024")
59 64 @PreAuthorize("@ss.hasPermission('product:property:query')")
60   - public CommonResult<ProductPropertyValueRespVO> getProperty(@RequestParam("id") Long id) {
  65 + public CommonResult<ProductPropertyValueRespVO> getPropertyValue(@RequestParam("id") Long id) {
61 66 return success(ProductPropertyValueConvert.INSTANCE.convert(productPropertyValueService.getPropertyValue(id)));
62 67 }
63 68  
... ...
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuBaseVO.java
... ... @@ -38,11 +38,6 @@ public class ProductSkuBaseVO {
38 38 @NotNull(message = "图片地址不能为空")
39 39 private String picUrl;
40 40  
41   - @Schema(description = "SKU 状态", required = true, example = "1")
42   - @NotNull(message = "SKU 状态不能为空")
43   - @InEnum(CommonStatusEnum.class)
44   - private Integer status;
45   -
46 41 @Schema(description = "库存", required = true, example = "1")
47 42 @NotNull(message = "库存不能为空")
48 43 private Integer stock;
... ... @@ -55,21 +50,4 @@ public class ProductSkuBaseVO {
55 50  
56 51 @Schema(description = "商品体积", example = "1024") // 单位:m^3 平米
57 52 private Double volume;
58   -
59   - @Schema(description = "商品属性")
60   - @Data
61   - @AllArgsConstructor
62   - @NoArgsConstructor
63   - public static class Property {
64   -
65   - @Schema(description = "属性编号", required = true, example = "1")
66   - @NotNull(message = "属性编号不能为空")
67   - private Long propertyId;
68   -
69   - @Schema(description = "属性值编号", required = true, example = "1024")
70   - @NotNull(message = "属性值编号不能为空")
71   - private Long valueId;
72   -
73   - }
74   -
75 53 }
... ...
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuCreateOrUpdateReqVO.java
1 1 package cn.iocoder.yudao.module.product.controller.admin.sku.vo;
2 2  
3 3 import io.swagger.v3.oas.annotations.media.Schema;
4   -import lombok.Data;
5   -import lombok.EqualsAndHashCode;
6   -import lombok.ToString;
  4 +import lombok.*;
7 5  
  6 +import javax.validation.constraints.NotNull;
8 7 import java.util.List;
9 8  
10 9 @Schema(description = "管理后台 - 商品 SKU 创建/更新 Request VO")
... ... @@ -12,6 +11,21 @@ import java.util.List;
12 11 @EqualsAndHashCode(callSuper = true)
13 12 @ToString(callSuper = true)
14 13 public class ProductSkuCreateOrUpdateReqVO extends ProductSkuBaseVO {
  14 + @Schema(description = "商品属性")
  15 + @Data
  16 + @AllArgsConstructor
  17 + @NoArgsConstructor
  18 + public static class Property {
  19 +
  20 + @Schema(description = "属性编号", required = true, example = "1")
  21 + @NotNull(message = "属性编号不能为空")
  22 + private Long propertyId;
  23 +
  24 + @Schema(description = "属性值编号", required = true, example = "1024")
  25 + @NotNull(message = "属性值编号不能为空")
  26 + private Long valueId;
  27 +
  28 + }
15 29  
16 30 /**
17 31 * 属性数组
... ...
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuRespVO.java
1 1 package cn.iocoder.yudao.module.product.controller.admin.sku.vo;
2 2  
3 3 import io.swagger.v3.oas.annotations.media.Schema;
4   -import lombok.Data;
5   -import lombok.EqualsAndHashCode;
6   -import lombok.ToString;
  4 +import lombok.*;
7 5  
  6 +import javax.validation.constraints.NotNull;
8 7 import java.time.LocalDateTime;
9 8 import java.util.List;
10 9  
... ... @@ -20,9 +19,26 @@ public class ProductSkuRespVO extends ProductSkuBaseVO {
20 19 @Schema(description = "创建时间")
21 20 private LocalDateTime createTime;
22 21  
  22 + @Schema(description = "商品属性")
  23 + @Data
  24 + @AllArgsConstructor
  25 + @NoArgsConstructor
  26 + public static class Property {
  27 +
  28 + @Schema(description = "属性编号", required = true, example = "1")
  29 + @NotNull(message = "属性编号不能为空")
  30 + private Long propertyId;
  31 +
  32 + @Schema(description = "属性值编号", required = true, example = "1024")
  33 + @NotNull(message = "属性值编号不能为空")
  34 + private Long valueId;
  35 +
  36 + @Schema(description = "属性值", example = "1024")
  37 + private String value;
  38 + }
23 39 /**
24 40 * 属性数组
25 41 */
26   - private List<Property> properties;
  42 + private List<ProductSkuCreateOrUpdateReqVO.Property> properties;
27 43  
28 44 }
... ...
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuServiceImpl.java
... ... @@ -87,7 +87,7 @@ public class ProductSkuServiceImpl implements ProductSkuService {
87 87 // 1、校验属性项存在
88 88 Set<Long> propertyIds = skus.stream().filter(p -> p.getProperties() != null)
89 89 .flatMap(p -> p.getProperties().stream()) // 遍历多个 Property 属性
90   - .map(ProductSkuBaseVO.Property::getPropertyId) // 将每个 Property 转换成对应的 propertyId,最后形成集合
  90 + .map(ProductSkuCreateOrUpdateReqVO.Property::getPropertyId) // 将每个 Property 转换成对应的 propertyId,最后形成集合
91 91 .collect(Collectors.toSet());
92 92 List<ProductPropertyDO> propertyList = productPropertyService.getPropertyList(propertyIds);
93 93 if (propertyList.size() != propertyIds.size()) {
... ... @@ -114,7 +114,7 @@ public class ProductSkuServiceImpl implements ProductSkuService {
114 114 // 4. 最后校验,每个 Sku 之间不是重复的
115 115 Set<Set<Long>> skuAttrValues = new HashSet<>(); // 每个元素,都是一个 Sku 的 attrValueId 集合。这样,通过最外层的 Set ,判断是否有重复的.
116 116 for (ProductSkuCreateOrUpdateReqVO sku : skus) {
117   - if (!skuAttrValues.add(convertSet(sku.getProperties(), ProductSkuBaseVO.Property::getValueId))) { // 添加失败,说明重复
  117 + if (!skuAttrValues.add(convertSet(sku.getProperties(), ProductSkuCreateOrUpdateReqVO.Property::getValueId))) { // 添加失败,说明重复
118 118 throw exception(ErrorCodeConstants.SPU_SKU_NOT_DUPLICATE);
119 119 }
120 120 }
... ...
yudao-module-mall/yudao-module-product-biz/src/test/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuServiceTest.java
... ... @@ -68,11 +68,9 @@ public class ProductSkuServiceTest extends BaseDbUnitTest {
68 68 List<ProductSkuCreateOrUpdateReqVO> skus = Arrays.asList(
69 69 randomPojo(ProductSkuCreateOrUpdateReqVO.class, o -> { // 测试更新
70 70 o.setProperties(singletonList(new ProductSkuCreateOrUpdateReqVO.Property(10L, 20L)));
71   - o.setStatus(CommonStatusEnum.ENABLE.getStatus());
72 71 }),
73 72 randomPojo(ProductSkuCreateOrUpdateReqVO.class, o -> { // 测试新增
74 73 o.setProperties(singletonList(new ProductSkuCreateOrUpdateReqVO.Property(10L, 40L)));
75   - o.setStatus(CommonStatusEnum.ENABLE.getStatus());
76 74 })
77 75 );
78 76  
... ...