Commit 2382ddfb372c2ac94d086396c3d294c4c527ce37

Authored by franky-mgmg-pc
1 parent c118d819

spu sku review调整一波

Showing 10 changed files with 18 additions and 24 deletions
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/ProductSkuController.java
@@ -25,8 +25,7 @@ import java.util.List; @@ -25,8 +25,7 @@ import java.util.List;
25 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 25 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
26 import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; 26 import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
27 27
28 -// TODO @franky:中英文之间要有空格哈。商品 sku  
29 -@Api(tags = "管理后台 - 商品sku") 28 +@Api(tags = "管理后台-商品 sku")
30 @RestController 29 @RestController
31 @RequestMapping("/product/sku") 30 @RequestMapping("/product/sku")
32 @Validated 31 @Validated
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuCreateReqVO.java
@@ -16,9 +16,8 @@ import java.util.List; @@ -16,9 +16,8 @@ import java.util.List;
16 @ToString(callSuper = true) 16 @ToString(callSuper = true)
17 public class ProductSpuCreateReqVO extends ProductSpuBaseVO { 17 public class ProductSpuCreateReqVO extends ProductSpuBaseVO {
18 18
19 - // TODO @franky:这种可以缩写下,skus  
20 @ApiModelProperty(value = "sku组合") 19 @ApiModelProperty(value = "sku组合")
21 @Valid 20 @Valid
22 - List<ProductSkuCreateReqVO> productSkuCreateReqVOS; 21 + List<ProductSkuCreateReqVO> skus;
23 22
24 } 23 }
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/propertyvalue/ProductPropertyValueConvert.java
@@ -4,7 +4,7 @@ import java.util.*; @@ -4,7 +4,7 @@ import java.util.*;
4 4
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 6
7 -import cn.iocoder.yudao.module.product.dal.dataobject.propertyvalue.ProductPropertyValueDO; 7 +import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyValueDO;
8 import org.mapstruct.Mapper; 8 import org.mapstruct.Mapper;
9 import org.mapstruct.factory.Mappers; 9 import org.mapstruct.factory.Mappers;
10 import cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo.*; 10 import cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo.*;
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/propertyvalue/ProductPropertyValueDO.java renamed to yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/ProductPropertyValueDO.java
1 -package cn.iocoder.yudao.module.product.dal.dataobject.propertyvalue; 1 +package cn.iocoder.yudao.module.product.dal.dataobject.property;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 -import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO;  
5 import com.baomidou.mybatisplus.annotation.KeySequence; 4 import com.baomidou.mybatisplus.annotation.KeySequence;
6 import com.baomidou.mybatisplus.annotation.TableId; 5 import com.baomidou.mybatisplus.annotation.TableId;
7 import com.baomidou.mybatisplus.annotation.TableName; 6 import com.baomidou.mybatisplus.annotation.TableName;
8 import lombok.*; 7 import lombok.*;
9 8
10 -// TODO @franky:包放到 property 中 9 +
11 /** 10 /**
12 * 规格值 DO 11 * 规格值 DO
13 * 12 *
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/sku/ProductSkuDO.java
@@ -35,7 +35,6 @@ public class ProductSkuDO extends BaseDO { @@ -35,7 +35,6 @@ public class ProductSkuDO extends BaseDO {
35 /** 35 /**
36 * 规格值数组-json格式, [{propertId: , valueId: }, {propertId: , valueId: }] 36 * 规格值数组-json格式, [{propertId: , valueId: }, {propertId: , valueId: }]
37 */ 37 */
38 - // TODO franky:可以定义一个内部的 Property 类,然后 List<Property>  
39 private String properties; 38 private String properties;
40 /** 39 /**
41 * 销售价格,单位:分 40 * 销售价格,单位:分
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/propertyvalue/ProductPropertyValueMapper.java
@@ -4,7 +4,7 @@ import java.util.*; @@ -4,7 +4,7 @@ import java.util.*;
4 4
5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
6 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 6 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
7 -import cn.iocoder.yudao.module.product.dal.dataobject.propertyvalue.ProductPropertyValueDO; 7 +import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyValueDO;
8 import org.apache.ibatis.annotations.Mapper; 8 import org.apache.ibatis.annotations.Mapper;
9 9
10 /** 10 /**
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyServiceImpl.java
@@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo.Product @@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo.Product
7 import cn.iocoder.yudao.module.product.convert.property.ProductPropertyConvert; 7 import cn.iocoder.yudao.module.product.convert.property.ProductPropertyConvert;
8 import cn.iocoder.yudao.module.product.convert.propertyvalue.ProductPropertyValueConvert; 8 import cn.iocoder.yudao.module.product.convert.propertyvalue.ProductPropertyValueConvert;
9 import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO; 9 import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO;
10 -import cn.iocoder.yudao.module.product.dal.dataobject.propertyvalue.ProductPropertyValueDO; 10 +import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyValueDO;
11 import cn.iocoder.yudao.module.product.dal.mysql.property.ProductPropertyMapper; 11 import cn.iocoder.yudao.module.product.dal.mysql.property.ProductPropertyMapper;
12 import cn.iocoder.yudao.module.product.dal.mysql.propertyvalue.ProductPropertyValueMapper; 12 import cn.iocoder.yudao.module.product.dal.mysql.propertyvalue.ProductPropertyValueMapper;
13 import org.springframework.stereotype.Service; 13 import org.springframework.stereotype.Service;
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuService.java
@@ -72,20 +72,18 @@ public interface ProductSkuService { @@ -72,20 +72,18 @@ public interface ProductSkuService {
72 */ 72 */
73 List<ProductSkuDO> getSkuList(ProductSkuExportReqVO exportReqVO); 73 List<ProductSkuDO> getSkuList(ProductSkuExportReqVO exportReqVO);
74 74
75 - // TODO @franky:validateSkus;skuCreateReqList => list  
76 /** 75 /**
77 * 对 sku 的组合的属性等进行合法性校验 76 * 对 sku 的组合的属性等进行合法性校验
78 * 77 *
79 - * @param skuCreateReqList sku组合的集合 78 + * @param list sku组合的集合
80 */ 79 */
81 - void validatedSkuReq(List<ProductSkuCreateReqVO> skuCreateReqList); 80 + void validateSkus(List<ProductSkuCreateReqVO> list);
82 81
83 /** 82 /**
84 * 批量保存sku 83 * 批量保存sku
85 - * @param skuDOList sku对象集合  
86 - * @return // TODO @franky:这里的 return 可以去掉;方法名可以改成 createSkus(list) 84 + * @param list sku对象集合
87 */ 85 */
88 - void batchSave(List<ProductSkuDO> skuDOList); 86 + void createSkus(List<ProductSkuDO> list);
89 87
90 /** 88 /**
91 * 获得商品sku 集合 89 * 获得商品sku 集合
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuServiceImpl.java
@@ -90,8 +90,8 @@ public class ProductSkuServiceImpl implements ProductSkuService { @@ -90,8 +90,8 @@ public class ProductSkuServiceImpl implements ProductSkuService {
90 90
91 // TODO @franky:这个方法,貌似实现的还是有点问题哈。例如说,throw 异常,后面还执行逻辑~ 91 // TODO @franky:这个方法,貌似实现的还是有点问题哈。例如说,throw 异常,后面还执行逻辑~
92 @Override 92 @Override
93 - public void validatedSkuReq(List<ProductSkuCreateReqVO> skuCreateReqList) {  
94 - List<ProductSkuBaseVO.Property> skuPropertyList = skuCreateReqList.stream().flatMap(p -> p.getProperties().stream()).collect(Collectors.toList()); 93 + public void validateSkus(List<ProductSkuCreateReqVO> list) {
  94 + List<ProductSkuBaseVO.Property> skuPropertyList = list.stream().flatMap(p -> p.getProperties().stream()).collect(Collectors.toList());
95 // 校验规格属性以及规格值是否存在 95 // 校验规格属性以及规格值是否存在
96 List<Long> propertyIds = skuPropertyList.stream().map(ProductSkuBaseVO.Property::getPropertyId).collect(Collectors.toList()); 96 List<Long> propertyIds = skuPropertyList.stream().map(ProductSkuBaseVO.Property::getPropertyId).collect(Collectors.toList());
97 List<ProductPropertyRespVO> propertyAndValueList = productPropertyService.selectByIds(propertyIds); 97 List<ProductPropertyRespVO> propertyAndValueList = productPropertyService.selectByIds(propertyIds);
@@ -109,7 +109,7 @@ public class ProductSkuServiceImpl implements ProductSkuService { @@ -109,7 +109,7 @@ public class ProductSkuServiceImpl implements ProductSkuService {
109 } 109 }
110 }); 110 });
111 // 校验是否有重复的sku组合 111 // 校验是否有重复的sku组合
112 - List<List<ProductSkuBaseVO.Property>> skuProperties = skuCreateReqList.stream().map(ProductSkuBaseVO::getProperties).collect(Collectors.toList()); 112 + List<List<ProductSkuBaseVO.Property>> skuProperties = list.stream().map(ProductSkuBaseVO::getProperties).collect(Collectors.toList());
113 Set<String> skuPropertiesConvertSet = new HashSet<>(); 113 Set<String> skuPropertiesConvertSet = new HashSet<>();
114 skuProperties.forEach(p -> { 114 skuProperties.forEach(p -> {
115 // 组合属性值id为 1~2~3.... 形式的字符串,通过set的特性判断是否有重复的组合 115 // 组合属性值id为 1~2~3.... 形式的字符串,通过set的特性判断是否有重复的组合
@@ -120,7 +120,7 @@ public class ProductSkuServiceImpl implements ProductSkuService { @@ -120,7 +120,7 @@ public class ProductSkuServiceImpl implements ProductSkuService {
120 } 120 }
121 121
122 @Override 122 @Override
123 - public void batchSave(List<ProductSkuDO> skuDOList) { 123 + public void createSkus(List<ProductSkuDO> skuDOList) {
124 productSkuMapper.insertBatch(skuDOList); 124 productSkuMapper.insertBatch(skuDOList);
125 } 125 }
126 126
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuServiceImpl.java
@@ -50,8 +50,8 @@ public class ProductSpuServiceImpl implements ProductSpuService { @@ -50,8 +50,8 @@ public class ProductSpuServiceImpl implements ProductSpuService {
50 // 校验分类 50 // 校验分类
51 categoryService.validatedCategoryById(createReqVO.getCategoryId()); 51 categoryService.validatedCategoryById(createReqVO.getCategoryId());
52 // 校验SKU 52 // 校验SKU
53 - List<ProductSkuCreateReqVO> skuCreateReqList = createReqVO.getProductSkuCreateReqVOS();  
54 - productSkuService.validatedSkuReq(skuCreateReqList); 53 + List<ProductSkuCreateReqVO> skuCreateReqList = createReqVO.getSkus();
  54 + productSkuService.validateSkus(skuCreateReqList);
55 // 插入SPU 55 // 插入SPU
56 ProductSpuDO spu = ProductSpuConvert.INSTANCE.convert(createReqVO); 56 ProductSpuDO spu = ProductSpuConvert.INSTANCE.convert(createReqVO);
57 ProductSpuMapper.insert(spu); 57 ProductSpuMapper.insert(spu);
@@ -61,7 +61,7 @@ public class ProductSpuServiceImpl implements ProductSpuService { @@ -61,7 +61,7 @@ public class ProductSpuServiceImpl implements ProductSpuService {
61 }); 61 });
62 List<ProductSkuDO> skuDOList = ProductSkuConvert.INSTANCE.convertSkuDOList(skuCreateReqList); 62 List<ProductSkuDO> skuDOList = ProductSkuConvert.INSTANCE.convertSkuDOList(skuCreateReqList);
63 // 批量插入sku 63 // 批量插入sku
64 - productSkuService.batchSave(skuDOList); 64 + productSkuService.createSkus(skuDOList);
65 // 返回 65 // 返回
66 return spu.getId(); 66 return spu.getId();
67 } 67 }