Commit c06077e3a6be384fabc0877f9905a1af6a96d33e

Authored by YunaiV
1 parent 2cc60deb

mall:code review 商品的代码

Showing 27 changed files with 126 additions and 485 deletions
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/ProductSkuController.java
1 package cn.iocoder.yudao.module.product.controller.admin.sku; 1 package cn.iocoder.yudao.module.product.controller.admin.sku;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuCreateOrUpdateReqVO;  
6 -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuPageReqVO;  
7 -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuRespVO;  
8 -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuUpdateReqVO;  
9 -import cn.iocoder.yudao.module.product.convert.sku.ProductSkuConvert;  
10 -import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;  
11 -import cn.iocoder.yudao.module.product.service.sku.ProductSkuService;  
12 import io.swagger.annotations.Api; 3 import io.swagger.annotations.Api;
13 -import io.swagger.annotations.ApiImplicitParam;  
14 -import io.swagger.annotations.ApiOperation;  
15 -import org.springframework.security.access.prepost.PreAuthorize;  
16 import org.springframework.validation.annotation.Validated; 4 import org.springframework.validation.annotation.Validated;
17 -import org.springframework.web.bind.annotation.*;  
18 -  
19 -import javax.annotation.Resource;  
20 -import javax.validation.Valid;  
21 -import java.util.Collection;  
22 -import java.util.List;  
23 -  
24 -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 5 +import org.springframework.web.bind.annotation.RequestMapping;
  6 +import org.springframework.web.bind.annotation.RestController;
25 7
26 @Api(tags = "管理后台 - 商品 sku") 8 @Api(tags = "管理后台 - 商品 sku")
27 @RestController 9 @RestController
@@ -29,57 +11,4 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @@ -29,57 +11,4 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
29 @Validated 11 @Validated
30 public class ProductSkuController { 12 public class ProductSkuController {
31 13
32 - @Resource  
33 - private ProductSkuService ProductSkuService;  
34 -  
35 - @PostMapping("/create")  
36 - @ApiOperation("创建商品sku")  
37 - @PreAuthorize("@ss.hasPermission('product:sku:create')")  
38 - public CommonResult<Long> createSku(@Valid @RequestBody ProductSkuCreateOrUpdateReqVO createReqVO) {  
39 - return success(ProductSkuService.createSku(createReqVO));  
40 - }  
41 -  
42 - @PutMapping("/update")  
43 - @ApiOperation("更新商品sku")  
44 - @PreAuthorize("@ss.hasPermission('product:sku:update')")  
45 - public CommonResult<Boolean> updateSku(@Valid @RequestBody ProductSkuUpdateReqVO updateReqVO) {  
46 - ProductSkuService.updateSku(updateReqVO);  
47 - return success(true);  
48 - }  
49 -  
50 - @DeleteMapping("/delete")  
51 - @ApiOperation("删除商品sku")  
52 - @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)  
53 - @PreAuthorize("@ss.hasPermission('product:sku:delete')")  
54 - public CommonResult<Boolean> deleteSku(@RequestParam("id") Long id) {  
55 - ProductSkuService.deleteSku(id);  
56 - return success(true);  
57 - }  
58 -  
59 - @GetMapping("/get")  
60 - @ApiOperation("获得商品sku")  
61 - @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)  
62 - @PreAuthorize("@ss.hasPermission('product:sku:query')")  
63 - public CommonResult<ProductSkuRespVO> getSku(@RequestParam("id") Long id) {  
64 - ProductSkuDO sku = ProductSkuService.getSku(id);  
65 - return success(ProductSkuConvert.INSTANCE.convert(sku));  
66 - }  
67 -  
68 - @GetMapping("/list")  
69 - @ApiOperation("获得商品sku列表")  
70 - @ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class)  
71 - @PreAuthorize("@ss.hasPermission('product:sku:query')")  
72 - public CommonResult<List<ProductSkuRespVO>> getSkuList(@RequestParam("ids") Collection<Long> ids) {  
73 - List<ProductSkuDO> list = ProductSkuService.getSkuList(ids);  
74 - return success(ProductSkuConvert.INSTANCE.convertList(list));  
75 - }  
76 -  
77 - @GetMapping("/page")  
78 - @ApiOperation("获得商品sku分页")  
79 - @PreAuthorize("@ss.hasPermission('product:sku:query')")  
80 - public CommonResult<PageResult<ProductSkuRespVO>> getSkuPage(@Valid ProductSkuPageReqVO pageVO) {  
81 - PageResult<ProductSkuDO> pageResult = ProductSkuService.getSkuPage(pageVO);  
82 - return success(ProductSkuConvert.INSTANCE.convertPage(pageResult));  
83 - }  
84 -  
85 } 14 }
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuBaseVO.java
@@ -8,7 +8,6 @@ import lombok.Data; @@ -8,7 +8,6 @@ import lombok.Data;
8 8
9 import javax.validation.constraints.NotEmpty; 9 import javax.validation.constraints.NotEmpty;
10 import javax.validation.constraints.NotNull; 10 import javax.validation.constraints.NotNull;
11 -import java.util.List;  
12 11
13 /** 12 /**
14 * 商品 SKU Base VO,提供给添加、修改、详细的子 VO 使用 13 * 商品 SKU Base VO,提供给添加、修改、详细的子 VO 使用
@@ -21,11 +20,6 @@ public class ProductSkuBaseVO { @@ -21,11 +20,6 @@ public class ProductSkuBaseVO {
21 @NotEmpty(message = "商品 SKU 名字不能为空") 20 @NotEmpty(message = "商品 SKU 名字不能为空")
22 private String name; 21 private String name;
23 22
24 - /**  
25 - * 规格值数组  
26 - */  
27 - private List<Property> properties;  
28 -  
29 @ApiModelProperty(value = "销售价格,单位:分", required = true, example = "1024", notes = "单位:分") 23 @ApiModelProperty(value = "销售价格,单位:分", required = true, example = "1024", notes = "单位:分")
30 @NotNull(message = "销售价格,单位:分不能为空") 24 @NotNull(message = "销售价格,单位:分不能为空")
31 private Integer price; 25 private Integer price;
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuCreateOrUpdateReqVO.java
@@ -6,6 +6,8 @@ import lombok.Data; @@ -6,6 +6,8 @@ import lombok.Data;
6 import lombok.EqualsAndHashCode; 6 import lombok.EqualsAndHashCode;
7 import lombok.ToString; 7 import lombok.ToString;
8 8
  9 +import java.util.List;
  10 +
9 @ApiModel("管理后台 - 商品 SKU 创建/更新 Request VO") 11 @ApiModel("管理后台 - 商品 SKU 创建/更新 Request VO")
10 @Data 12 @Data
11 @EqualsAndHashCode(callSuper = true) 13 @EqualsAndHashCode(callSuper = true)
@@ -16,4 +18,9 @@ public class ProductSkuCreateOrUpdateReqVO extends ProductSkuBaseVO { @@ -16,4 +18,9 @@ public class ProductSkuCreateOrUpdateReqVO extends ProductSkuBaseVO {
16 @ApiModelProperty(value = "商品 id 更新时须有", example = "1") 18 @ApiModelProperty(value = "商品 id 更新时须有", example = "1")
17 private Long id; 19 private Long id;
18 20
  21 + /**
  22 + * 规格值数组
  23 + */
  24 + private List<Property> properties;
  25 +
19 } 26 }
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuExcelVO.java deleted
1 -package cn.iocoder.yudao.module.product.controller.admin.sku.vo;  
2 -  
3 -import com.alibaba.excel.annotation.ExcelProperty;  
4 -import lombok.Data;  
5 -  
6 -import java.util.Date;  
7 -import java.util.List;  
8 -  
9 -/**  
10 - * 商品sku Excel VO  
11 - *  
12 - * @author 芋道源码  
13 - */  
14 -@Data  
15 -public class ProductSkuExcelVO {  
16 -  
17 - @ExcelProperty("主键")  
18 - private Long id;  
19 -  
20 - @ExcelProperty("spu编号")  
21 - private Long spuId;  
22 -  
23 - // TODO @franky:这个单元格,可能会有点展示的问题  
24 - @ExcelProperty("规格值数组-json格式, [{propertId: , valueId: }, {propertId: , valueId: }]")  
25 - private List<Property> properties;  
26 -  
27 - @ExcelProperty("销售价格,单位:分")  
28 - private Integer price;  
29 -  
30 - @ExcelProperty("原价, 单位: 分")  
31 - private Integer originalPrice;  
32 -  
33 - @ExcelProperty("成本价,单位: 分")  
34 - private Integer costPrice;  
35 -  
36 - @ExcelProperty("条形码")  
37 - private String barCode;  
38 -  
39 - @ExcelProperty("图片地址")  
40 - private String picUrl;  
41 -  
42 - @ExcelProperty("状态: 0-正常 1-禁用")  
43 - private Integer status;  
44 -  
45 - @ExcelProperty("创建时间")  
46 - private Date createTime;  
47 -  
48 - @Data  
49 - public static class Property {  
50 - private Integer propertyId;  
51 - private Integer valueId;  
52 - }  
53 -}  
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuExportReqVO.java deleted
1 -package cn.iocoder.yudao.module.product.controller.admin.sku.vo;  
2 -  
3 -import lombok.*;  
4 -import java.util.*;  
5 -import io.swagger.annotations.*;  
6 -import cn.iocoder.yudao.framework.common.pojo.PageParam;  
7 -import org.springframework.format.annotation.DateTimeFormat;  
8 -  
9 -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;  
10 -  
11 -@ApiModel(value = "管理后台 - 商品sku Excel 导出 Request VO", description = "参数和 SkuPageReqVO 是一致的")  
12 -@Data  
13 -public class ProductSkuExportReqVO {  
14 -  
15 - @ApiModelProperty(value = "spu编号")  
16 - private Long spuId;  
17 -  
18 - @ApiModelProperty(value = "规格值数组-json格式, [{propertId: , valueId: }, {propertId: , valueId: }]")  
19 - private String properties;  
20 -  
21 - @ApiModelProperty(value = "销售价格,单位:分")  
22 - private Integer price;  
23 -  
24 - @ApiModelProperty(value = "原价, 单位: 分")  
25 - private Integer originalPrice;  
26 -  
27 - @ApiModelProperty(value = "成本价,单位: 分")  
28 - private Integer costPrice;  
29 -  
30 - @ApiModelProperty(value = "条形码")  
31 - private String barCode;  
32 -  
33 - @ApiModelProperty(value = "图片地址")  
34 - private String picUrl;  
35 -  
36 - @ApiModelProperty(value = "状态: 0-正常 1-禁用")  
37 - private Integer status;  
38 -  
39 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
40 - @ApiModelProperty(value = "创建时间")  
41 - private Date[] createTime;  
42 -  
43 -}  
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuPageReqVO.java deleted
1 -package cn.iocoder.yudao.module.product.controller.admin.sku.vo;  
2 -  
3 -import lombok.*;  
4 -import java.util.*;  
5 -import io.swagger.annotations.*;  
6 -import cn.iocoder.yudao.framework.common.pojo.PageParam;  
7 -import org.springframework.format.annotation.DateTimeFormat;  
8 -  
9 -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;  
10 -  
11 -@ApiModel("管理后台 - 商品sku分页 Request VO")  
12 -@Data  
13 -@EqualsAndHashCode(callSuper = true)  
14 -@ToString(callSuper = true)  
15 -public class ProductSkuPageReqVO extends PageParam {  
16 -  
17 - @ApiModelProperty(value = "spu编号")  
18 - private Long spuId;  
19 -  
20 - @ApiModelProperty(value = "规格值数组-json格式, [{propertId: , valueId: }, {propertId: , valueId: }]")  
21 - private String properties;  
22 -  
23 - @ApiModelProperty(value = "销售价格,单位:分")  
24 - private Integer price;  
25 -  
26 - @ApiModelProperty(value = "原价, 单位: 分")  
27 - private Integer originalPrice;  
28 -  
29 - @ApiModelProperty(value = "成本价,单位: 分")  
30 - private Integer costPrice;  
31 -  
32 - @ApiModelProperty(value = "条形码")  
33 - private String barCode;  
34 -  
35 - @ApiModelProperty(value = "图片地址")  
36 - private String picUrl;  
37 -  
38 - @ApiModelProperty(value = "状态: 0-正常 1-禁用")  
39 - private Integer status;  
40 -  
41 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
42 - @ApiModelProperty(value = "创建时间")  
43 - private Date[] createTime;  
44 -  
45 -}  
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuRespVO.java
1 package cn.iocoder.yudao.module.product.controller.admin.sku.vo; 1 package cn.iocoder.yudao.module.product.controller.admin.sku.vo;
2 2
3 -import lombok.*;  
4 -import java.util.*;  
5 -import io.swagger.annotations.*; 3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +import lombok.Data;
  6 +import lombok.EqualsAndHashCode;
  7 +import lombok.ToString;
  8 +
  9 +import java.util.Date;
  10 +import java.util.List;
6 11
7 @ApiModel("管理后台 - 商品sku Response VO") 12 @ApiModel("管理后台 - 商品sku Response VO")
8 @Data 13 @Data
@@ -10,10 +15,15 @@ import io.swagger.annotations.*; @@ -10,10 +15,15 @@ import io.swagger.annotations.*;
10 @ToString(callSuper = true) 15 @ToString(callSuper = true)
11 public class ProductSkuRespVO extends ProductSkuBaseVO { 16 public class ProductSkuRespVO extends ProductSkuBaseVO {
12 17
13 - @ApiModelProperty(value = "主键", required = true) 18 + @ApiModelProperty(value = "主键", required = true, example = "1024")
14 private Long id; 19 private Long id;
15 20
16 @ApiModelProperty(value = "创建时间") 21 @ApiModelProperty(value = "创建时间")
17 private Date createTime; 22 private Date createTime;
18 23
  24 + /**
  25 + * 规格值数组
  26 + */
  27 + private List<Property> properties;
  28 +
19 } 29 }
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuUpdateReqVO.java deleted
1 -package cn.iocoder.yudao.module.product.controller.admin.sku.vo;  
2 -  
3 -import lombok.*;  
4 -import java.util.*;  
5 -import io.swagger.annotations.*;  
6 -import javax.validation.constraints.*;  
7 -  
8 -@ApiModel("管理后台 - 商品sku更新 Request VO")  
9 -@Data  
10 -@EqualsAndHashCode(callSuper = true)  
11 -@ToString(callSuper = true)  
12 -public class ProductSkuUpdateReqVO extends ProductSkuBaseVO {  
13 -  
14 - @ApiModelProperty(value = "主键", required = true)  
15 - @NotNull(message = "主键不能为空")  
16 - private Long id;  
17 -  
18 -}  
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/ProductSpuController.java
@@ -3,9 +3,9 @@ package cn.iocoder.yudao.module.product.controller.admin.spu; @@ -3,9 +3,9 @@ package cn.iocoder.yudao.module.product.controller.admin.spu;
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 3 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuCreateReqVO; 5 import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuCreateReqVO;
  6 +import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuRespVO;
6 import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuUpdateReqVO; 7 import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuUpdateReqVO;
7 -import cn.iocoder.yudao.module.product.controller.admin.spu.vo.SpuPageReqVO;  
8 -import cn.iocoder.yudao.module.product.controller.admin.spu.vo.SpuRespVO; 8 +import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuPageReqVO;
9 import cn.iocoder.yudao.module.product.convert.spu.ProductSpuConvert; 9 import cn.iocoder.yudao.module.product.convert.spu.ProductSpuConvert;
10 import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; 10 import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO;
11 import cn.iocoder.yudao.module.product.service.spu.ProductSpuService; 11 import cn.iocoder.yudao.module.product.service.spu.ProductSpuService;
@@ -48,7 +48,7 @@ public class ProductSpuController { @@ -48,7 +48,7 @@ public class ProductSpuController {
48 } 48 }
49 49
50 @DeleteMapping("/delete") 50 @DeleteMapping("/delete")
51 - @ApiOperation("删除商品spu") 51 + @ApiOperation("删除商品 SPU")
52 @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class) 52 @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)
53 @PreAuthorize("@ss.hasPermission('product:spu:delete')") 53 @PreAuthorize("@ss.hasPermission('product:spu:delete')")
54 public CommonResult<Boolean> deleteSpu(@RequestParam("id") Long id) { 54 public CommonResult<Boolean> deleteSpu(@RequestParam("id") Long id) {
@@ -57,26 +57,28 @@ public class ProductSpuController { @@ -57,26 +57,28 @@ public class ProductSpuController {
57 } 57 }
58 58
59 @GetMapping("/get") 59 @GetMapping("/get")
60 - @ApiOperation("获得商品spu") 60 + @ApiOperation("获得商品 SPU")
61 @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) 61 @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
62 @PreAuthorize("@ss.hasPermission('product:spu:query')") 62 @PreAuthorize("@ss.hasPermission('product:spu:query')")
63 - public CommonResult<SpuRespVO> getSpu(@RequestParam("id") Long id) { 63 + public CommonResult<ProductSpuRespVO> getSpu(@RequestParam("id") Long id) {
64 return success(spuService.getSpu(id)); 64 return success(spuService.getSpu(id));
65 } 65 }
66 66
  67 + // TODO @luowenfeng:新增 get-detail,返回 SpuDetailRespVO
  68 +
67 @GetMapping("/list") 69 @GetMapping("/list")
68 - @ApiOperation("获得商品spu列表") 70 + @ApiOperation("获得商品 SPU 列表")
69 @ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class) 71 @ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class)
70 @PreAuthorize("@ss.hasPermission('product:spu:query')") 72 @PreAuthorize("@ss.hasPermission('product:spu:query')")
71 - public CommonResult<List<SpuRespVO>> getSpuList(@RequestParam("ids") Collection<Long> ids) { 73 + public CommonResult<List<ProductSpuRespVO>> getSpuList(@RequestParam("ids") Collection<Long> ids) {
72 List<ProductSpuDO> list = spuService.getSpuList(ids); 74 List<ProductSpuDO> list = spuService.getSpuList(ids);
73 return success(ProductSpuConvert.INSTANCE.convertList(list)); 75 return success(ProductSpuConvert.INSTANCE.convertList(list));
74 } 76 }
75 77
76 @GetMapping("/page") 78 @GetMapping("/page")
77 - @ApiOperation("获得商品spu分页") 79 + @ApiOperation("获得商品 SPU 分页")
78 @PreAuthorize("@ss.hasPermission('product:spu:query')") 80 @PreAuthorize("@ss.hasPermission('product:spu:query')")
79 - public CommonResult<PageResult<SpuRespVO>> getSpuPage(@Valid SpuPageReqVO pageVO) { 81 + public CommonResult<PageResult<ProductSpuRespVO>> getSpuPage(@Valid ProductSpuPageReqVO pageVO) {
80 return success(spuService.getSpuPage(pageVO)); 82 return success(spuService.getSpuPage(pageVO));
81 } 83 }
82 84
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuBaseVO.java
@@ -35,8 +35,7 @@ public class ProductSpuBaseVO { @@ -35,8 +35,7 @@ public class ProductSpuBaseVO {
35 @NotNull(message = "商品分类编号不能为空") 35 @NotNull(message = "商品分类编号不能为空")
36 private Long categoryId; 36 private Long categoryId;
37 37
38 - @ApiModelProperty(value = "商品品牌编号", required = true, example = "1")  
39 -// @NotNull(message = "商品品牌编号不能为空") 38 + @ApiModelProperty(value = "商品品牌编号", example = "1")
40 private Long brandId; 39 private Long brandId;
41 40
42 @ApiModelProperty(value = "商品图片的数组", required = true) 41 @ApiModelProperty(value = "商品图片的数组", required = true)
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuDetailRespVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.product.controller.admin.spu.vo;
  2 +
  3 +import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuBaseVO;
  4 +import io.swagger.annotations.ApiModel;
  5 +import io.swagger.annotations.ApiModelProperty;
  6 +import lombok.Data;
  7 +import lombok.EqualsAndHashCode;
  8 +import lombok.ToString;
  9 +
  10 +import java.util.Date;
  11 +import java.util.List;
  12 +
  13 +@ApiModel(value = "管理后台 - 商品 SPU 详细 Response VO", description = "包括关联的 SKU 等信息")
  14 +@Data
  15 +@EqualsAndHashCode(callSuper = true)
  16 +@ToString(callSuper = true)
  17 +public class ProductSpuDetailRespVO extends ProductSpuBaseVO {
  18 +
  19 + @ApiModelProperty(value = "主键", required = true, example = "1")
  20 + private Long id;
  21 +
  22 + @ApiModelProperty(value = "创建时间")
  23 + private Date createTime;
  24 +
  25 + /**
  26 + * SKU 数组
  27 + */
  28 + private List<Sku> skus;
  29 +
  30 + @ApiModel(value = "管理后台 - 商品 SKU 详细 Response VO")
  31 + @Data
  32 + @EqualsAndHashCode(callSuper = true)
  33 + @ToString(callSuper = true)
  34 + public static class Sku extends ProductSkuBaseVO {
  35 +
  36 + /**
  37 + * 规格的数组
  38 + */
  39 + private List<ProductSpuDetailRespVO.Property> properties;
  40 +
  41 + }
  42 +
  43 + @ApiModel(value = "管理后台 - 商品规格的详细 Response VO")
  44 + @Data
  45 + @EqualsAndHashCode(callSuper = true)
  46 + @ToString(callSuper = true)
  47 + public static class Property extends ProductSkuBaseVO.Property {
  48 +
  49 + @ApiModelProperty(value = "规格的名字", required = true, example = "颜色")
  50 + private String propertyName;
  51 +
  52 + @ApiModelProperty(value = "规格值的名字", required = true, example = "蓝色")
  53 + private String valueName;
  54 +
  55 + }
  56 +
  57 +}
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/SpuPageReqVO.java renamed to yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuPageReqVO.java
@@ -8,11 +8,11 @@ import org.springframework.format.annotation.DateTimeFormat; @@ -8,11 +8,11 @@ import org.springframework.format.annotation.DateTimeFormat;
8 8
9 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; 9 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
10 10
11 -@ApiModel("管理后台 - 商品spu分页 Request VO") 11 +@ApiModel("管理后台 - 商品 SPU 分页 Request VO")
12 @Data 12 @Data
13 @EqualsAndHashCode(callSuper = true) 13 @EqualsAndHashCode(callSuper = true)
14 @ToString(callSuper = true) 14 @ToString(callSuper = true)
15 -public class SpuPageReqVO extends PageParam { 15 +public class ProductSpuPageReqVO extends PageParam {
16 16
17 @ApiModelProperty(value = "商品名称") 17 @ApiModelProperty(value = "商品名称")
18 private String name; 18 private String name;
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/SpuRespVO.java renamed to yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuRespVO.java
@@ -9,16 +9,14 @@ import lombok.EqualsAndHashCode; @@ -9,16 +9,14 @@ import lombok.EqualsAndHashCode;
9 import lombok.ToString; 9 import lombok.ToString;
10 10
11 import java.util.Date; 11 import java.util.Date;
12 -import java.util.LinkedList;  
13 import java.util.List; 12 import java.util.List;
14 13
15 -@ApiModel("管理后台 - 商品spu Response VO") 14 +// TODO @Luowenfeng:这个类只返回 SPU 相关的信息,删除 skus、categoryIds、productPropertyViews;明细使用 SpuDetailRespVO 替代
  15 +@ApiModel("管理后台 - 商品 SPU Response VO")
16 @Data 16 @Data
17 @EqualsAndHashCode(callSuper = true) 17 @EqualsAndHashCode(callSuper = true)
18 @ToString(callSuper = true) 18 @ToString(callSuper = true)
19 -public class SpuRespVO extends ProductSpuBaseVO {  
20 -  
21 - // TODO @franky:注解要完整 19 +public class ProductSpuRespVO extends ProductSpuBaseVO {
22 20
23 @ApiModelProperty(value = "主键", required = true, example = "1") 21 @ApiModelProperty(value = "主键", required = true, example = "1")
24 private Long id; 22 private Long id;
@@ -33,7 +31,7 @@ public class SpuRespVO extends ProductSpuBaseVO { @@ -33,7 +31,7 @@ public class SpuRespVO extends ProductSpuBaseVO {
33 private List<ProductSkuRespVO> skus; 31 private List<ProductSkuRespVO> skus;
34 32
35 @ApiModelProperty(value = "分类id数组,一直递归到一级父节点", example = "[1,2,4]") 33 @ApiModelProperty(value = "分类id数组,一直递归到一级父节点", example = "[1,2,4]")
36 - private LinkedList<Long> categoryIds; 34 + private List<Long> categoryIds;
37 35
38 // TODO @芋艿:再琢磨下 这个 VO 类,其实变成 SpuRespVO 内嵌的 VO 类会更好一点;然后把 SpuRespVO 改成 SpuDetailSpuVO 36 // TODO @芋艿:再琢磨下 这个 VO 类,其实变成 SpuRespVO 内嵌的 VO 类会更好一点;然后把 SpuRespVO 改成 SpuDetailSpuVO
39 37
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/AppProductSpuController.java
@@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.product.controller.app.spu; @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.product.controller.app.spu;
3 import cn.hutool.core.bean.BeanUtil; 3 import cn.hutool.core.bean.BeanUtil;
4 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 -import cn.iocoder.yudao.module.product.controller.admin.spu.vo.SpuRespVO;  
7 import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppSpuPageReqVO; 6 import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppSpuPageReqVO;
8 import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppSpuPageRespVO; 7 import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppSpuPageRespVO;
9 import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppSpuRespVO; 8 import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppSpuRespVO;
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppSpuRespVO.java
1 package cn.iocoder.yudao.module.product.controller.app.spu.vo; 1 package cn.iocoder.yudao.module.product.controller.app.spu.vo;
2 2
3 -import cn.iocoder.yudao.module.product.controller.admin.spu.vo.SpuRespVO; 3 +import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuRespVO;
4 import io.swagger.annotations.ApiModel; 4 import io.swagger.annotations.ApiModel;
5 import lombok.Data; 5 import lombok.Data;
6 import lombok.EqualsAndHashCode; 6 import lombok.EqualsAndHashCode;
7 -import lombok.ToString;  
8 7
9 /** 8 /**
10 * <p> 9 * <p>
@@ -16,7 +15,7 @@ import lombok.ToString; @@ -16,7 +15,7 @@ import lombok.ToString;
16 @ApiModel("App - 商品spu Response VO") 15 @ApiModel("App - 商品spu Response VO")
17 @Data 16 @Data
18 @EqualsAndHashCode(callSuper = true) 17 @EqualsAndHashCode(callSuper = true)
19 -public class AppSpuRespVO extends SpuRespVO { 18 +public class AppSpuRespVO extends ProductSpuRespVO {
20 19
21 20
22 } 21 }
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/property/ProductPropertyConvert.java
1 package cn.iocoder.yudao.module.product.convert.property; 1 package cn.iocoder.yudao.module.product.convert.property;
2 2
3 -import java.util.*;  
4 -  
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 -  
7 import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyAndValueRespVO; 4 import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyAndValueRespVO;
8 import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyCreateReqVO; 5 import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyCreateReqVO;
9 -import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyExcelVO;  
10 import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyUpdateReqVO; 6 import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyUpdateReqVO;
11 import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO; 7 import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO;
12 import org.mapstruct.Mapper; 8 import org.mapstruct.Mapper;
13 import org.mapstruct.factory.Mappers; 9 import org.mapstruct.factory.Mappers;
14 10
  11 +import java.util.List;
  12 +
15 /** 13 /**
16 * 规格名称 Convert 14 * 规格名称 Convert
17 * 15 *
@@ -32,6 +30,4 @@ public interface ProductPropertyConvert { @@ -32,6 +30,4 @@ public interface ProductPropertyConvert {
32 30
33 PageResult<ProductPropertyAndValueRespVO> convertPage(PageResult<ProductPropertyDO> page); 31 PageResult<ProductPropertyAndValueRespVO> convertPage(PageResult<ProductPropertyDO> page);
34 32
35 - List<ProductPropertyExcelVO> convertList02(List<ProductPropertyDO> list);  
36 -  
37 } 33 }
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/sku/ProductSkuConvert.java
1 package cn.iocoder.yudao.module.product.convert.sku; 1 package cn.iocoder.yudao.module.product.convert.sku;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuCreateOrUpdateReqVO; 3 import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuCreateOrUpdateReqVO;
5 -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuExcelVO;  
6 import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuRespVO; 4 import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuRespVO;
7 -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuUpdateReqVO;  
8 import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; 5 import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
9 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
10 import org.mapstruct.Mapping; 7 import org.mapstruct.Mapping;
@@ -24,8 +21,6 @@ public interface ProductSkuConvert { @@ -24,8 +21,6 @@ public interface ProductSkuConvert {
24 21
25 ProductSkuDO convert(ProductSkuCreateOrUpdateReqVO bean); 22 ProductSkuDO convert(ProductSkuCreateOrUpdateReqVO bean);
26 23
27 - ProductSkuDO convert(ProductSkuUpdateReqVO bean);  
28 -  
29 @Mapping(source = "properties", target = "properties") 24 @Mapping(source = "properties", target = "properties")
30 ProductSkuRespVO convert(ProductSkuDO bean); 25 ProductSkuRespVO convert(ProductSkuDO bean);
31 26
@@ -33,8 +28,4 @@ public interface ProductSkuConvert { @@ -33,8 +28,4 @@ public interface ProductSkuConvert {
33 28
34 List<ProductSkuDO> convertSkuDOList(List<ProductSkuCreateOrUpdateReqVO> list); 29 List<ProductSkuDO> convertSkuDOList(List<ProductSkuCreateOrUpdateReqVO> list);
35 30
36 - PageResult<ProductSkuRespVO> convertPage(PageResult<ProductSkuDO> page);  
37 -  
38 - List<ProductSkuExcelVO> convertList02(List<ProductSkuDO> list);  
39 -  
40 } 31 }
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/spu/ProductSpuConvert.java
@@ -24,13 +24,13 @@ public interface ProductSpuConvert { @@ -24,13 +24,13 @@ public interface ProductSpuConvert {
24 24
25 ProductSpuDO convert(ProductSpuUpdateReqVO bean); 25 ProductSpuDO convert(ProductSpuUpdateReqVO bean);
26 26
27 - SpuRespVO convert(ProductSpuDO bean); 27 + ProductSpuRespVO convert(ProductSpuDO bean);
28 28
29 - List<SpuRespVO> convertList(List<ProductSpuDO> list); 29 + List<ProductSpuRespVO> convertList(List<ProductSpuDO> list);
30 30
31 - PageResult<SpuRespVO> convertPage(PageResult<ProductSpuDO> page); 31 + PageResult<ProductSpuRespVO> convertPage(PageResult<ProductSpuDO> page);
32 32
33 - SpuPageReqVO convert(AppSpuPageReqVO bean); 33 + ProductSpuPageReqVO convert(AppSpuPageReqVO bean);
34 34
35 AppSpuPageRespVO convertAppResp(ProductSpuDO list); 35 AppSpuPageRespVO convertAppResp(ProductSpuDO list);
36 36
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/property/ProductPropertyMapper.java
1 package cn.iocoder.yudao.module.product.dal.mysql.property; 1 package cn.iocoder.yudao.module.product.dal.mysql.property;
2 2
3 -import java.util.*;  
4 -  
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
7 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
8 -import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyExportReqVO; 5 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
9 import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyPageReqVO; 6 import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyPageReqVO;
10 import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO; 7 import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO;
11 import org.apache.ibatis.annotations.Mapper; 8 import org.apache.ibatis.annotations.Mapper;
@@ -26,12 +23,4 @@ public interface ProductPropertyMapper extends BaseMapperX&lt;ProductPropertyDO&gt; { @@ -26,12 +23,4 @@ public interface ProductPropertyMapper extends BaseMapperX&lt;ProductPropertyDO&gt; {
26 .orderByDesc(ProductPropertyDO::getId)); 23 .orderByDesc(ProductPropertyDO::getId));
27 } 24 }
28 25
29 - default List<ProductPropertyDO> selectList(ProductPropertyExportReqVO reqVO) {  
30 - return selectList(new LambdaQueryWrapperX<ProductPropertyDO>()  
31 - .likeIfPresent(ProductPropertyDO::getName, reqVO.getName())  
32 - .eqIfPresent(ProductPropertyDO::getStatus, reqVO.getStatus())  
33 - .betweenIfPresent(ProductPropertyDO::getCreateTime, reqVO.getCreateTime())  
34 - .orderByDesc(ProductPropertyDO::getId));  
35 - }  
36 -  
37 } 26 }
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/sku/ProductSkuMapper.java
1 package cn.iocoder.yudao.module.product.dal.mysql.sku; 1 package cn.iocoder.yudao.module.product.dal.mysql.sku;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 3 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
6 -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuPageReqVO;  
7 import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; 5 import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
8 import org.apache.ibatis.annotations.Mapper; 6 import org.apache.ibatis.annotations.Mapper;
9 7
10 import java.util.List; 8 import java.util.List;
11 9
12 /** 10 /**
13 - * 商品sku Mapper 11 + * 商品 SKU Mapper
14 * 12 *
15 * @author 芋道源码 13 * @author 芋道源码
16 */ 14 */
17 @Mapper 15 @Mapper
18 public interface ProductSkuMapper extends BaseMapperX<ProductSkuDO> { 16 public interface ProductSkuMapper extends BaseMapperX<ProductSkuDO> {
19 17
20 - default PageResult<ProductSkuDO> selectPage(ProductSkuPageReqVO reqVO) {  
21 - return selectPage(reqVO, new LambdaQueryWrapperX<ProductSkuDO>()  
22 - .eqIfPresent(ProductSkuDO::getSpuId, reqVO.getSpuId())  
23 - .eqIfPresent(ProductSkuDO::getProperties, reqVO.getProperties())  
24 - .eqIfPresent(ProductSkuDO::getPrice, reqVO.getPrice())  
25 -// .eqIfPresent(ProductSkuDO::getOriginalPrice, reqVO.getOriginalPrice())  
26 -// .eqIfPresent(ProductSkuDO::getCostPrice, reqVO.getCostPrice())  
27 - .eqIfPresent(ProductSkuDO::getBarCode, reqVO.getBarCode())  
28 - .eqIfPresent(ProductSkuDO::getPicUrl, reqVO.getPicUrl())  
29 - .eqIfPresent(ProductSkuDO::getStatus, reqVO.getStatus())  
30 - .betweenIfPresent(ProductSkuDO::getCreateTime, reqVO.getCreateTime())  
31 - .orderByDesc(ProductSkuDO::getId));  
32 - }  
33 -  
34 -  
35 // TODO @franky:方法名 selectList; 可以直接调用 selectList 18 // TODO @franky:方法名 selectList; 可以直接调用 selectList
36 default List<ProductSkuDO> selectListBySpuIds(List<Long> spuIds) { 19 default List<ProductSkuDO> selectListBySpuIds(List<Long> spuIds) {
37 return selectList(ProductSkuDO::getSpuId, spuIds); 20 return selectList(ProductSkuDO::getSpuId, spuIds);
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/spu/ProductSpuMapper.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.product.dal.mysql.spu; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.product.dal.mysql.spu;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
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.module.product.controller.admin.spu.vo.SpuPageReqVO; 6 +import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuPageReqVO;
7 import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; 7 import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO;
8 import org.apache.ibatis.annotations.Mapper; 8 import org.apache.ibatis.annotations.Mapper;
9 9
@@ -15,7 +15,7 @@ import org.apache.ibatis.annotations.Mapper; @@ -15,7 +15,7 @@ import org.apache.ibatis.annotations.Mapper;
15 @Mapper 15 @Mapper
16 public interface ProductSpuMapper extends BaseMapperX<ProductSpuDO> { 16 public interface ProductSpuMapper extends BaseMapperX<ProductSpuDO> {
17 17
18 - default PageResult<ProductSpuDO> selectPage(SpuPageReqVO reqVO) { 18 + default PageResult<ProductSpuDO> selectPage(ProductSpuPageReqVO reqVO) {
19 return selectPage(reqVO, new LambdaQueryWrapperX<ProductSpuDO>() 19 return selectPage(reqVO, new LambdaQueryWrapperX<ProductSpuDO>()
20 .likeIfPresent(ProductSpuDO::getName, reqVO.getName()) 20 .likeIfPresent(ProductSpuDO::getName, reqVO.getName())
21 .eqIfPresent(ProductSpuDO::getSellPoint, reqVO.getSellPoint()) 21 .eqIfPresent(ProductSpuDO::getSellPoint, reqVO.getSellPoint())
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuService.java
1 package cn.iocoder.yudao.module.product.service.sku; 1 package cn.iocoder.yudao.module.product.service.sku;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuCreateOrUpdateReqVO; 3 import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuCreateOrUpdateReqVO;
5 -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuPageReqVO;  
6 -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuUpdateReqVO;  
7 import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; 4 import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
8 5
9 import javax.validation.Valid; 6 import javax.validation.Valid;
@@ -18,21 +15,6 @@ import java.util.List; @@ -18,21 +15,6 @@ import java.util.List;
18 public interface ProductSkuService { 15 public interface ProductSkuService {
19 16
20 /** 17 /**
21 - * 创建商品 SKU  
22 - *  
23 - * @param createReqVO 创建信息  
24 - * @return 编号  
25 - */  
26 - Long createSku(@Valid ProductSkuCreateOrUpdateReqVO createReqVO);  
27 -  
28 - /**  
29 - * 更新商品sku  
30 - *  
31 - * @param updateReqVO 更新信息  
32 - */  
33 - void updateSku(@Valid ProductSkuUpdateReqVO updateReqVO);  
34 -  
35 - /**  
36 * 删除商品sku 18 * 删除商品sku
37 * 19 *
38 * @param id 编号 20 * @param id 编号
@@ -56,14 +38,6 @@ public interface ProductSkuService { @@ -56,14 +38,6 @@ public interface ProductSkuService {
56 List<ProductSkuDO> getSkuList(Collection<Long> ids); 38 List<ProductSkuDO> getSkuList(Collection<Long> ids);
57 39
58 /** 40 /**
59 - * 获得商品sku分页  
60 - *  
61 - * @param pageReqVO 分页查询  
62 - * @return 商品sku分页  
63 - */  
64 - PageResult<ProductSkuDO> getSkuPage(ProductSkuPageReqVO pageReqVO);  
65 -  
66 - /**  
67 * 对 sku 的组合的属性等进行合法性校验 41 * 对 sku 的组合的属性等进行合法性校验
68 * 42 *
69 * @param list sku组合的集合 43 * @param list sku组合的集合
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuServiceImpl.java
@@ -2,14 +2,11 @@ package cn.iocoder.yudao.module.product.service.sku; @@ -2,14 +2,11 @@ package cn.iocoder.yudao.module.product.service.sku;
2 2
3 import cn.hutool.core.collection.CollectionUtil; 3 import cn.hutool.core.collection.CollectionUtil;
4 import cn.hutool.core.util.ObjectUtil; 4 import cn.hutool.core.util.ObjectUtil;
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 5 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
7 import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyAndValueRespVO; 6 import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyAndValueRespVO;
8 import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueRespVO; 7 import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueRespVO;
9 import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuBaseVO; 8 import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuBaseVO;
10 import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuCreateOrUpdateReqVO; 9 import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuCreateOrUpdateReqVO;
11 -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuPageReqVO;  
12 -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuUpdateReqVO;  
13 import cn.iocoder.yudao.module.product.convert.sku.ProductSkuConvert; 10 import cn.iocoder.yudao.module.product.convert.sku.ProductSkuConvert;
14 import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; 11 import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
15 import cn.iocoder.yudao.module.product.dal.mysql.sku.ProductSkuMapper; 12 import cn.iocoder.yudao.module.product.dal.mysql.sku.ProductSkuMapper;
@@ -43,24 +40,6 @@ public class ProductSkuServiceImpl implements ProductSkuService { @@ -43,24 +40,6 @@ public class ProductSkuServiceImpl implements ProductSkuService {
43 private ProductPropertyService productPropertyService; 40 private ProductPropertyService productPropertyService;
44 41
45 @Override 42 @Override
46 - public Long createSku(ProductSkuCreateOrUpdateReqVO createReqVO) {  
47 - // 插入  
48 - ProductSkuDO sku = ProductSkuConvert.INSTANCE.convert(createReqVO);  
49 - productSkuMapper.insert(sku);  
50 - // 返回  
51 - return sku.getId();  
52 - }  
53 -  
54 - @Override  
55 - public void updateSku(ProductSkuUpdateReqVO updateReqVO) {  
56 - // 校验存在  
57 - this.validateSkuExists(updateReqVO.getId());  
58 - // 更新  
59 - ProductSkuDO updateObj = ProductSkuConvert.INSTANCE.convert(updateReqVO);  
60 - productSkuMapper.updateById(updateObj);  
61 - }  
62 -  
63 - @Override  
64 public void deleteSku(Long id) { 43 public void deleteSku(Long id) {
65 // 校验存在 44 // 校验存在
66 this.validateSkuExists(id); 45 this.validateSkuExists(id);
@@ -85,11 +64,6 @@ public class ProductSkuServiceImpl implements ProductSkuService { @@ -85,11 +64,6 @@ public class ProductSkuServiceImpl implements ProductSkuService {
85 } 64 }
86 65
87 @Override 66 @Override
88 - public PageResult<ProductSkuDO> getSkuPage(ProductSkuPageReqVO pageReqVO) {  
89 - return productSkuMapper.selectPage(pageReqVO);  
90 - }  
91 -  
92 - @Override  
93 public void validateSkus(List<ProductSkuCreateOrUpdateReqVO> skus, Integer specType) { 67 public void validateSkus(List<ProductSkuCreateOrUpdateReqVO> skus, Integer specType) {
94 // 非多规格,不需要校验 68 // 非多规格,不需要校验
95 if (ObjectUtil.notEqual(specType, ProductSpuSpecTypeEnum.DISABLE.getType())) { 69 if (ObjectUtil.notEqual(specType, ProductSpuSpecTypeEnum.DISABLE.getType())) {
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuService.java
@@ -2,9 +2,9 @@ package cn.iocoder.yudao.module.product.service.spu; @@ -2,9 +2,9 @@ package cn.iocoder.yudao.module.product.service.spu;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuCreateReqVO; 4 import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuCreateReqVO;
  5 +import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuRespVO;
5 import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuUpdateReqVO; 6 import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuUpdateReqVO;
6 -import cn.iocoder.yudao.module.product.controller.admin.spu.vo.SpuPageReqVO;  
7 -import cn.iocoder.yudao.module.product.controller.admin.spu.vo.SpuRespVO; 7 +import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuPageReqVO;
8 import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppSpuPageReqVO; 8 import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppSpuPageReqVO;
9 import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppSpuPageRespVO; 9 import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppSpuPageRespVO;
10 import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; 10 import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO;
@@ -48,7 +48,7 @@ public interface ProductSpuService { @@ -48,7 +48,7 @@ public interface ProductSpuService {
48 * @param id 编号 48 * @param id 编号
49 * @return 商品spu 49 * @return 商品spu
50 */ 50 */
51 - SpuRespVO getSpu(Long id); 51 + ProductSpuRespVO getSpu(Long id);
52 52
53 /** 53 /**
54 * 获得商品spu列表 54 * 获得商品spu列表
@@ -64,7 +64,7 @@ public interface ProductSpuService { @@ -64,7 +64,7 @@ public interface ProductSpuService {
64 * @param pageReqVO 分页查询 64 * @param pageReqVO 分页查询
65 * @return 商品spu分页 65 * @return 商品spu分页
66 */ 66 */
67 - PageResult<SpuRespVO> getSpuPage(SpuPageReqVO pageReqVO); 67 + PageResult<ProductSpuRespVO> getSpuPage(ProductSpuPageReqVO pageReqVO);
68 68
69 /** 69 /**
70 * 获得商品spu分页 70 * 获得商品spu分页
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuServiceImpl.java
@@ -9,9 +9,9 @@ import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuBaseVO; @@ -9,9 +9,9 @@ import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuBaseVO;
9 import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuCreateOrUpdateReqVO; 9 import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuCreateOrUpdateReqVO;
10 import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuRespVO; 10 import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuRespVO;
11 import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuCreateReqVO; 11 import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuCreateReqVO;
  12 +import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuPageReqVO;
  13 +import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuRespVO;
12 import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuUpdateReqVO; 14 import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuUpdateReqVO;
13 -import cn.iocoder.yudao.module.product.controller.admin.spu.vo.SpuPageReqVO;  
14 -import cn.iocoder.yudao.module.product.controller.admin.spu.vo.SpuRespVO;  
15 import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppSpuPageReqVO; 15 import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppSpuPageReqVO;
16 import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppSpuPageRespVO; 16 import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppSpuPageRespVO;
17 import cn.iocoder.yudao.module.product.convert.sku.ProductSkuConvert; 17 import cn.iocoder.yudao.module.product.convert.sku.ProductSkuConvert;
@@ -125,9 +125,9 @@ public class ProductSpuServiceImpl implements ProductSpuService { @@ -125,9 +125,9 @@ public class ProductSpuServiceImpl implements ProductSpuService {
125 125
126 @Override 126 @Override
127 // TODO @芋艿:需要再 review 下 127 // TODO @芋艿:需要再 review 下
128 - public SpuRespVO getSpu(Long id) { 128 + public ProductSpuRespVO getSpu(Long id) {
129 ProductSpuDO spu = ProductSpuMapper.selectById(id); 129 ProductSpuDO spu = ProductSpuMapper.selectById(id);
130 - SpuRespVO spuVO = ProductSpuConvert.INSTANCE.convert(spu); 130 + ProductSpuRespVO spuVO = ProductSpuConvert.INSTANCE.convert(spu);
131 if (null != spuVO) { 131 if (null != spuVO) {
132 List<ProductSkuRespVO> skuReqs = ProductSkuConvert.INSTANCE.convertList(productSkuService.getSkusBySpuId(id)); 132 List<ProductSkuRespVO> skuReqs = ProductSkuConvert.INSTANCE.convertList(productSkuService.getSkusBySpuId(id));
133 spuVO.setSkus(skuReqs); 133 spuVO.setSkus(skuReqs);
@@ -179,10 +179,10 @@ public class ProductSpuServiceImpl implements ProductSpuService { @@ -179,10 +179,10 @@ public class ProductSpuServiceImpl implements ProductSpuService {
179 } 179 }
180 180
181 @Override 181 @Override
182 - public PageResult<SpuRespVO> getSpuPage(SpuPageReqVO pageReqVO) {  
183 - PageResult<SpuRespVO> spuVOs = ProductSpuConvert.INSTANCE.convertPage(ProductSpuMapper.selectPage(pageReqVO)); 182 + public PageResult<ProductSpuRespVO> getSpuPage(ProductSpuPageReqVO pageReqVO) {
  183 + PageResult<ProductSpuRespVO> spuVOs = ProductSpuConvert.INSTANCE.convertPage(ProductSpuMapper.selectPage(pageReqVO));
184 // 查询 sku 的信息 184 // 查询 sku 的信息
185 - List<Long> spuIds = spuVOs.getList().stream().map(SpuRespVO::getId).collect(Collectors.toList()); 185 + List<Long> spuIds = spuVOs.getList().stream().map(ProductSpuRespVO::getId).collect(Collectors.toList());
186 List<ProductSkuRespVO> skus = ProductSkuConvert.INSTANCE.convertList(productSkuService.getSkusBySpuIds(spuIds)); 186 List<ProductSkuRespVO> skus = ProductSkuConvert.INSTANCE.convertList(productSkuService.getSkusBySpuIds(spuIds));
187 // TODO @franky:使用 CollUtil 里的方法替代哈 187 // TODO @franky:使用 CollUtil 里的方法替代哈
188 // TODO 芋艿:临时注释 188 // TODO 芋艿:临时注释
yudao-module-mall/yudao-module-product-biz/src/test/java/cn/iocoder/yudao/module/product/service/sku/SkuServiceImplTest.java
1 package cn.iocoder.yudao.module.product.service.sku; 1 package cn.iocoder.yudao.module.product.service.sku;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; 3 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
5 -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuCreateOrUpdateReqVO;  
6 -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuPageReqVO;  
7 -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuUpdateReqVO;  
8 import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; 4 import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
9 import cn.iocoder.yudao.module.product.dal.mysql.sku.ProductSkuMapper; 5 import cn.iocoder.yudao.module.product.dal.mysql.sku.ProductSkuMapper;
10 -import org.junit.jupiter.api.Disabled;  
11 import org.junit.jupiter.api.Test; 6 import org.junit.jupiter.api.Test;
12 import org.springframework.context.annotation.Import; 7 import org.springframework.context.annotation.Import;
13 8
14 import javax.annotation.Resource; 9 import javax.annotation.Resource;
15 10
16 -import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;  
17 -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;  
18 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; 11 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
19 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo; 12 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
20 import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.SKU_NOT_EXISTS; 13 import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.SKU_NOT_EXISTS;
21 -import static org.junit.jupiter.api.Assertions.*; 14 +import static org.junit.jupiter.api.Assertions.assertNull;
22 15
23 /** 16 /**
24 * {@link ProductSkuServiceImpl} 的单元测试类 17 * {@link ProductSkuServiceImpl} 的单元测试类
@@ -35,46 +28,6 @@ public class SkuServiceImplTest extends BaseDbUnitTest { @@ -35,46 +28,6 @@ public class SkuServiceImplTest extends BaseDbUnitTest {
35 private ProductSkuMapper ProductSkuMapper; 28 private ProductSkuMapper ProductSkuMapper;
36 29
37 @Test 30 @Test
38 - public void testCreateSku_success() {  
39 - // 准备参数  
40 - ProductSkuCreateOrUpdateReqVO reqVO = randomPojo(ProductSkuCreateOrUpdateReqVO.class);  
41 -  
42 - // 调用  
43 - Long skuId = ProductSkuService.createSku(reqVO);  
44 - // 断言  
45 - assertNotNull(skuId);  
46 - // 校验记录的属性是否正确  
47 - ProductSkuDO sku = ProductSkuMapper.selectById(skuId);  
48 - assertPojoEquals(reqVO, sku);  
49 - }  
50 -  
51 - @Test  
52 - public void testUpdateSku_success() {  
53 - // mock 数据  
54 - ProductSkuDO dbSku = randomPojo(ProductSkuDO.class);  
55 - ProductSkuMapper.insert(dbSku);// @Sql: 先插入出一条存在的数据  
56 - // 准备参数  
57 - ProductSkuUpdateReqVO reqVO = randomPojo(ProductSkuUpdateReqVO.class, o -> {  
58 - o.setId(dbSku.getId()); // 设置更新的 ID  
59 - });  
60 -  
61 - // 调用  
62 - ProductSkuService.updateSku(reqVO);  
63 - // 校验是否更新正确  
64 - ProductSkuDO sku = ProductSkuMapper.selectById(reqVO.getId()); // 获取最新的  
65 - assertPojoEquals(reqVO, sku);  
66 - }  
67 -  
68 - @Test  
69 - public void testUpdateSku_notExists() {  
70 - // 准备参数  
71 - ProductSkuUpdateReqVO reqVO = randomPojo(ProductSkuUpdateReqVO.class);  
72 -  
73 - // 调用, 并断言异常  
74 - assertServiceException(() -> ProductSkuService.updateSku(reqVO), SKU_NOT_EXISTS);  
75 - }  
76 -  
77 - @Test  
78 public void testDeleteSku_success() { 31 public void testDeleteSku_success() {
79 // mock 数据 32 // mock 数据
80 ProductSkuDO dbSku = randomPojo(ProductSkuDO.class); 33 ProductSkuDO dbSku = randomPojo(ProductSkuDO.class);
@@ -97,58 +50,4 @@ public class SkuServiceImplTest extends BaseDbUnitTest { @@ -97,58 +50,4 @@ public class SkuServiceImplTest extends BaseDbUnitTest {
97 assertServiceException(() -> ProductSkuService.deleteSku(id), SKU_NOT_EXISTS); 50 assertServiceException(() -> ProductSkuService.deleteSku(id), SKU_NOT_EXISTS);
98 } 51 }
99 52
100 - @Test  
101 - @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解  
102 - public void testGetSkuPage() {  
103 - // mock 数据  
104 - ProductSkuDO dbSku = randomPojo(ProductSkuDO.class, o -> { // 等会查询到  
105 - o.setSpuId(null);  
106 - o.setProperties(null);  
107 - o.setPrice(null);  
108 -// o.setOriginalPrice(null);  
109 -// o.setCostPrice(null);  
110 - o.setBarCode(null);  
111 - o.setPicUrl(null);  
112 - o.setStatus(null);  
113 - o.setCreateTime(null);  
114 - });  
115 - ProductSkuMapper.insert(dbSku);  
116 - // 测试 spuId 不匹配  
117 - ProductSkuMapper.insert(cloneIgnoreId(dbSku, o -> o.setSpuId(null)));  
118 - // 测试 properties 不匹配  
119 - ProductSkuMapper.insert(cloneIgnoreId(dbSku, o -> o.setProperties(null)));  
120 - // 测试 price 不匹配  
121 - ProductSkuMapper.insert(cloneIgnoreId(dbSku, o -> o.setPrice(null)));  
122 - // 测试 originalPrice 不匹配  
123 -// ProductSkuMapper.insert(cloneIgnoreId(dbSku, o -> o.setOriginalPrice(null)));  
124 - // 测试 costPrice 不匹配  
125 -// ProductSkuMapper.insert(cloneIgnoreId(dbSku, o -> o.setCostPrice(null)));  
126 - // 测试 barCode 不匹配  
127 - ProductSkuMapper.insert(cloneIgnoreId(dbSku, o -> o.setBarCode(null)));  
128 - // 测试 picUrl 不匹配  
129 - ProductSkuMapper.insert(cloneIgnoreId(dbSku, o -> o.setPicUrl(null)));  
130 - // 测试 status 不匹配  
131 - ProductSkuMapper.insert(cloneIgnoreId(dbSku, o -> o.setStatus(null)));  
132 - // 测试 createTime 不匹配  
133 - ProductSkuMapper.insert(cloneIgnoreId(dbSku, o -> o.setCreateTime(null)));  
134 - // 准备参数  
135 - ProductSkuPageReqVO reqVO = new ProductSkuPageReqVO();  
136 - reqVO.setSpuId(null);  
137 - reqVO.setProperties(null);  
138 - reqVO.setPrice(null);  
139 - reqVO.setOriginalPrice(null);  
140 - reqVO.setCostPrice(null);  
141 - reqVO.setBarCode(null);  
142 - reqVO.setPicUrl(null);  
143 - reqVO.setStatus(null);  
144 - reqVO.setCreateTime(null);  
145 -  
146 - // 调用  
147 - PageResult<ProductSkuDO> pageResult = ProductSkuService.getSkuPage(reqVO);  
148 - // 断言  
149 - assertEquals(1, pageResult.getTotal());  
150 - assertEquals(1, pageResult.getList().size());  
151 - assertPojoEquals(dbSku, pageResult.getList().get(0));  
152 - }  
153 -  
154 } 53 }
yudao-module-mall/yudao-module-product-biz/src/test/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuServiceImplTest.java
@@ -3,8 +3,8 @@ package cn.iocoder.yudao.module.product.service.spu; @@ -3,8 +3,8 @@ package cn.iocoder.yudao.module.product.service.spu;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; 4 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
5 import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuCreateReqVO; 5 import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuCreateReqVO;
6 -import cn.iocoder.yudao.module.product.controller.admin.spu.vo.SpuPageReqVO;  
7 -import cn.iocoder.yudao.module.product.controller.admin.spu.vo.SpuRespVO; 6 +import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuPageReqVO;
  7 +import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuRespVO;
8 import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuUpdateReqVO; 8 import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuUpdateReqVO;
9 import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; 9 import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO;
10 import cn.iocoder.yudao.module.product.dal.mysql.spu.ProductSpuMapper; 10 import cn.iocoder.yudao.module.product.dal.mysql.spu.ProductSpuMapper;
@@ -139,7 +139,7 @@ public class ProductSpuServiceImplTest extends BaseDbUnitTest { @@ -139,7 +139,7 @@ public class ProductSpuServiceImplTest extends BaseDbUnitTest {
139 // 测试 createTime 不匹配 139 // 测试 createTime 不匹配
140 ProductSpuMapper.insert(cloneIgnoreId(dbSpu, o -> o.setCreateTime(null))); 140 ProductSpuMapper.insert(cloneIgnoreId(dbSpu, o -> o.setCreateTime(null)));
141 // 准备参数 141 // 准备参数
142 - SpuPageReqVO reqVO = new SpuPageReqVO(); 142 + ProductSpuPageReqVO reqVO = new ProductSpuPageReqVO();
143 reqVO.setName(null); 143 reqVO.setName(null);
144 reqVO.setSellPoint(null); 144 reqVO.setSellPoint(null);
145 reqVO.setDescription(null); 145 reqVO.setDescription(null);
@@ -153,7 +153,7 @@ public class ProductSpuServiceImplTest extends BaseDbUnitTest { @@ -153,7 +153,7 @@ public class ProductSpuServiceImplTest extends BaseDbUnitTest {
153 reqVO.setCreateTime(null); 153 reqVO.setCreateTime(null);
154 154
155 // 调用 155 // 调用
156 - PageResult<SpuRespVO> pageResult = spuService.getSpuPage(reqVO); 156 + PageResult<ProductSpuRespVO> pageResult = spuService.getSpuPage(reqVO);
157 // 断言 157 // 断言
158 assertEquals(1, pageResult.getTotal()); 158 assertEquals(1, pageResult.getTotal());
159 assertEquals(1, pageResult.getList().size()); 159 assertEquals(1, pageResult.getList().size());