Commit c06077e3a6be384fabc0877f9905a1af6a96d33e
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<ProductPropertyDO> { | @@ -26,12 +23,4 @@ public interface ProductPropertyMapper extends BaseMapperX<ProductPropertyDO> { | ||
| 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()); |