diff --git a/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/sku/dto/ProductSkuRespDTO.java b/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/sku/dto/ProductSkuRespDTO.java index 238d66144..aaaf767f2 100644 --- a/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/sku/dto/ProductSkuRespDTO.java +++ b/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/sku/dto/ProductSkuRespDTO.java @@ -28,7 +28,7 @@ public class ProductSkuRespDTO { private String spuName; /** - * 规格值数组,JSON 格式 + * 属性数组,JSON 格式 */ private List properties; /** diff --git a/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/ErrorCodeConstants.java b/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/ErrorCodeConstants.java index 86875b119..fc13ac760 100644 --- a/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/ErrorCodeConstants.java +++ b/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/ErrorCodeConstants.java @@ -22,13 +22,13 @@ public interface ErrorCodeConstants { ErrorCode BRAND_DISABLED = new ErrorCode(1008002001, "品牌不存在"); ErrorCode BRAND_NAME_EXISTS = new ErrorCode(1008002002, "品牌名称已存在"); - // ========== 商品规格名称 1008003000 ========== - ErrorCode PROPERTY_NOT_EXISTS = new ErrorCode(1008003000, "规格名称不存在"); - ErrorCode PROPERTY_EXISTS = new ErrorCode(1008003001, "规格名称已存在"); + // ========== 商品属性项 1008003000 ========== + ErrorCode PROPERTY_NOT_EXISTS = new ErrorCode(1008003000, "属性项不存在"); + ErrorCode PROPERTY_EXISTS = new ErrorCode(1008003001, "属性项的名称已存在"); - // ========== 规格值 1008004000 ========== - ErrorCode PROPERTY_VALUE_NOT_EXISTS = new ErrorCode(1008004000, "规格值不存在"); - ErrorCode PROPERTY_VALUE_EXISTS = new ErrorCode(1008004001, "规格值已存在"); + // ========== 商品属性值 1008004000 ========== + ErrorCode PROPERTY_VALUE_NOT_EXISTS = new ErrorCode(1008004000, "属性值不存在"); + ErrorCode PROPERTY_VALUE_EXISTS = new ErrorCode(1008004001, "属性值的名称已存在"); // ========== 商品 SPU 1008005000 ========== ErrorCode SPU_NOT_EXISTS = new ErrorCode(1008005000, "商品 SPU 不存在"); @@ -36,7 +36,7 @@ public interface ErrorCodeConstants { // ========== 商品 SKU 1008006000 ========== ErrorCode SKU_NOT_EXISTS = new ErrorCode(1008006000, "商品 SKU 不存在"); ErrorCode SKU_PROPERTIES_DUPLICATED = new ErrorCode(1008006001, "商品 SKU 的属性组合存在重复"); - ErrorCode SPU_ATTR_NUMBERS_MUST_BE_EQUALS = new ErrorCode(1008006002, "一个 SPU 下的每个 SKU,其规格数必须一致"); + ErrorCode SPU_ATTR_NUMBERS_MUST_BE_EQUALS = new ErrorCode(1008006002, "一个 SPU 下的每个 SKU,其属性项必须一致"); ErrorCode SPU_SKU_NOT_DUPLICATE = new ErrorCode(1008006003, "一个 SPU 下的每个 SKU,必须不重复"); ErrorCode SKU_STOCK_NOT_ENOUGH = new ErrorCode(1008006004, "商品 SKU 库存不足"); diff --git a/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/spu/ProductSpuSpecTypeEnum.java b/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/spu/ProductSpuSpecTypeEnum.java index 30ece744d..fbc227b53 100644 --- a/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/spu/ProductSpuSpecTypeEnum.java +++ b/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/spu/ProductSpuSpecTypeEnum.java @@ -21,11 +21,11 @@ public enum ProductSpuSpecTypeEnum implements IntArrayValuable { public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(ProductSpuSpecTypeEnum::getType).toArray(); /** - * 规格 + * 规格类型 */ private final Integer type; /** - * 规格名 + * 规格名称 */ private final String name; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/ProductPropertyController.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/ProductPropertyController.java index 9a4c20c58..a7763fd07 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/ProductPropertyController.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/ProductPropertyController.java @@ -18,7 +18,7 @@ import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; -@Api(tags = "管理后台 - 规格名称") +@Api(tags = "管理后台 - 商品属性项") @RestController @RequestMapping("/product/property") @Validated @@ -28,14 +28,14 @@ public class ProductPropertyController { private ProductPropertyService productPropertyService; @PostMapping("/create") - @ApiOperation("创建规格名称") + @ApiOperation("创建属性项") @PreAuthorize("@ss.hasPermission('product:property:create')") public CommonResult createProperty(@Valid @RequestBody ProductPropertyCreateReqVO createReqVO) { return success(productPropertyService.createProperty(createReqVO)); } @PutMapping("/update") - @ApiOperation("更新规格名称") + @ApiOperation("更新属性项") @PreAuthorize("@ss.hasPermission('product:property:update')") public CommonResult updateProperty(@Valid @RequestBody ProductPropertyUpdateReqVO updateReqVO) { productPropertyService.updateProperty(updateReqVO); @@ -43,7 +43,7 @@ public class ProductPropertyController { } @DeleteMapping("/delete") - @ApiOperation("删除规格名称") + @ApiOperation("删除属性项") @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class) @PreAuthorize("@ss.hasPermission('product:property:delete')") public CommonResult deleteProperty(@RequestParam("id") Long id) { @@ -52,7 +52,7 @@ public class ProductPropertyController { } @GetMapping("/get") - @ApiOperation("获得规格名称") + @ApiOperation("获得属性项") @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) @PreAuthorize("@ss.hasPermission('product:property:query')") public CommonResult getProperty(@RequestParam("id") Long id) { @@ -60,21 +60,21 @@ public class ProductPropertyController { } @GetMapping("/list") - @ApiOperation("获得规格名称列表") + @ApiOperation("获得属性项列表") @PreAuthorize("@ss.hasPermission('product:property:query')") public CommonResult> getPropertyList(@Valid ProductPropertyListReqVO listReqVO) { return success(productPropertyService.getPropertyList(listReqVO)); } @GetMapping("/page") - @ApiOperation("获得规格名称分页") + @ApiOperation("获得属性项分页") @PreAuthorize("@ss.hasPermission('product:property:query')") public CommonResult> getPropertyPage(@Valid ProductPropertyPageReqVO pageVO) { return success(productPropertyService.getPropertyPage(pageVO)); } @GetMapping("/listAndValue") - @ApiOperation("获得规格名称列表") + @ApiOperation("获得属性项列表") @PreAuthorize("@ss.hasPermission('product:property:query')") public CommonResult> getPropertyAndValueList(@Valid ProductPropertyListReqVO listReqVO) { return success(productPropertyService.getPropertyAndValueList(listReqVO)); diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/ProductPropertyValueController.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/ProductPropertyValueController.java index e88c91415..cef79e674 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/ProductPropertyValueController.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/ProductPropertyValueController.java @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.product.controller.admin.property; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyPageReqVO; import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueCreateReqVO; import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValuePageReqVO; import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueRespVO; @@ -20,7 +19,7 @@ import javax.validation.Valid; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; -@Api(tags = "管理后台 - 规格值名称") +@Api(tags = "管理后台 - 商品属性值") @RestController @RequestMapping("/product/property/value") @Validated @@ -30,14 +29,14 @@ public class ProductPropertyValueController { private ProductPropertyValueService productPropertyValueService; @PostMapping("/create") - @ApiOperation("创建规格名称") + @ApiOperation("创建属性值") @PreAuthorize("@ss.hasPermission('product:property:create')") public CommonResult createProperty(@Valid @RequestBody ProductPropertyValueCreateReqVO createReqVO) { return success(productPropertyValueService.createPropertyValue(createReqVO)); } @PutMapping("/update") - @ApiOperation("更新规格名称") + @ApiOperation("更新属性值") @PreAuthorize("@ss.hasPermission('product:property:update')") public CommonResult updateProperty(@Valid @RequestBody ProductPropertyValueUpdateReqVO updateReqVO) { productPropertyValueService.updatePropertyValue(updateReqVO); @@ -45,7 +44,7 @@ public class ProductPropertyValueController { } @DeleteMapping("/delete") - @ApiOperation("删除规格名称") + @ApiOperation("删除属性值") @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class) @PreAuthorize("@ss.hasPermission('product:property:delete')") public CommonResult deleteProperty(@RequestParam("id") Long id) { @@ -54,7 +53,7 @@ public class ProductPropertyValueController { } @GetMapping("/get") - @ApiOperation("获得规格名称") + @ApiOperation("获得属性值") @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) @PreAuthorize("@ss.hasPermission('product:property:query')") public CommonResult getProperty(@RequestParam("id") Long id) { @@ -62,7 +61,7 @@ public class ProductPropertyValueController { } @GetMapping("/page") - @ApiOperation("获得规格名称分页") + @ApiOperation("获得属性值分页") @PreAuthorize("@ss.hasPermission('product:property:query')") public CommonResult> getPropertyValuePage(@Valid ProductPropertyValuePageReqVO pageVO) { return success(productPropertyValueService.getPropertyValueListPage(pageVO)); diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyViewRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyViewRespVO.java index 9bdc70bd7..b97c04a80 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyViewRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyViewRespVO.java @@ -7,28 +7,23 @@ import lombok.ToString; import java.util.List; -/** - * @Description: ProductPropertyViewRespVO - * @Author: franky - * @CreateDate: 2022/7/5 21:29 - * @Version: 1.0.0 - */ -@ApiModel("管理后台 - 规格名称详情展示 Request VO") +// TODO 芋艿:看看怎么删除 +@ApiModel("管理后台 - 商品属性详情展示 Request VO") @Data @ToString(callSuper = true) public class ProductPropertyViewRespVO { - @ApiModelProperty(value = "规格名称id", example = "1") + @ApiModelProperty(value = "属性项 id", example = "1") public Long propertyId; - @ApiModelProperty(value = "规格名称", example = "内存") + @ApiModelProperty(value = "属性项的名字", example = "内存") public String name; - @ApiModelProperty(value = "规格属性值集合", example = "[{\"v1\":11,\"v2\":\"64G\"},{\"v1\":10,\"v2\":\"32G\"}]") + @ApiModelProperty(value = "属性值数组") public List propertyValues; @Data - @ApiModel(value = "规格属性值元组") + @ApiModel(value = "属性值元组") public static class Tuple2 { private final long id; private final String name; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyAndValueRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyAndValueRespVO.java index e7b3c352f..03d82fd3c 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyAndValueRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyAndValueRespVO.java @@ -10,20 +10,20 @@ import lombok.ToString; import java.time.LocalDateTime; import java.util.List; -@ApiModel("管理后台 - 规格 + 规格值 Response VO") +@ApiModel("管理后台 - 商品属性项 + 属性值 Response VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class ProductPropertyAndValueRespVO extends ProductPropertyBaseVO { - @ApiModelProperty(value = "规格的编号", required = true, example = "1024") + @ApiModelProperty(value = "属性项的编号", required = true, example = "1024") private Long id; @ApiModelProperty(value = "创建时间", required = true) private LocalDateTime createTime; /** - * 规格值的集合 + * 属性值的集合 */ private List values; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyBaseVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyBaseVO.java index 25fc4c01a..bfedb42dc 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyBaseVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyBaseVO.java @@ -7,14 +7,14 @@ import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** - * 规格名称 Base VO,提供给添加、修改、详细的子 VO 使用 + * 商品属性项 Base VO,提供给添加、修改、详细的子 VO 使用 * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 */ @Data public class ProductPropertyBaseVO { - @ApiModelProperty(value = "规格名称", required = true, example = "颜色") - @NotBlank(message = "规格名称不能为空") + @ApiModelProperty(value = "名称", required = true, example = "颜色") + @NotBlank(message = "名称不能为空") private String name; @ApiModelProperty(value = "备注", example = "颜色") diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyCreateReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyCreateReqVO.java index 8dfd58a5d..2e68f21e3 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyCreateReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyCreateReqVO.java @@ -5,7 +5,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -@ApiModel("管理后台 - 规格名称创建 Request VO") +@ApiModel("管理后台 - 属性项创建 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyListReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyListReqVO.java index 314288ffb..e70f2c399 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyListReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyListReqVO.java @@ -5,12 +5,12 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.ToString; -@ApiModel("管理后台 - 规格名称 List Request VO") +@ApiModel("管理后台 - 属性项 List Request VO") @Data @ToString(callSuper = true) public class ProductPropertyListReqVO { - @ApiModelProperty(value = "规格名称", example = "颜色") + @ApiModelProperty(value = "名称", example = "颜色") private String name; @ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 CommonStatusEnum 枚举") diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyPageReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyPageReqVO.java index 05a67e874..60bd7db5b 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyPageReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyPageReqVO.java @@ -12,13 +12,13 @@ import java.time.LocalDateTime; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; -@ApiModel("管理后台 - 规格名称分页 Request VO") +@ApiModel("管理后台 - 属性项 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class ProductPropertyPageReqVO extends PageParam { - @ApiModelProperty(value = "规格名称", example = "颜色") + @ApiModelProperty(value = "名称", example = "颜色") private String name; @ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 CommonStatusEnum 枚举") diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyRespVO.java index 75a9a5eea..299aa56e4 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyRespVO.java @@ -8,13 +8,13 @@ import lombok.ToString; import java.time.LocalDateTime; -@ApiModel("管理后台 - 规格 + 规格值 Response VO") +@ApiModel("管理后台 - 属性项 Response VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class ProductPropertyRespVO extends ProductPropertyBaseVO { - @ApiModelProperty(value = "规格的编号", required = true, example = "1024") + @ApiModelProperty(value = "编号", required = true, example = "1024") private Long id; @ApiModelProperty(value = "创建时间", required = true) diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyUpdateReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyUpdateReqVO.java index f4630d874..4dfa48366 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyUpdateReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyUpdateReqVO.java @@ -1,12 +1,14 @@ package cn.iocoder.yudao.module.product.controller.admin.property.vo.property; -import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueCreateReqVO; -import lombok.*; -import io.swagger.annotations.*; -import javax.validation.constraints.*; -import java.util.List; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; -@ApiModel("管理后台 - 规格名称更新 Request VO") +import javax.validation.constraints.NotNull; + +@ApiModel("管理后台 - 属性项更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueBaseVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueBaseVO.java index 142a8e6e2..0c077665d 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueBaseVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueBaseVO.java @@ -7,18 +7,18 @@ import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; /** -* 规格值 Base VO,提供给添加、修改、详细的子 VO 使用 +* 属性值 Base VO,提供给添加、修改、详细的子 VO 使用 * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 */ @Data public class ProductPropertyValueBaseVO { - @ApiModelProperty(value = "规格编号", required = true, example = "1024") - @NotNull(message = "规格编号不能为空") + @ApiModelProperty(value = "属性项的编号", required = true, example = "1024") + @NotNull(message = "属性项的编号不能为空") private Long propertyId; - @ApiModelProperty(value = "规格值名字", required = true, example = "红色") - @NotEmpty(message = "规格值名字不能为空") + @ApiModelProperty(value = "名称", required = true, example = "红色") + @NotEmpty(message = "名称名字不能为空") private String name; @ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 CommonStatusEnum 枚举") diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueCreateReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueCreateReqVO.java index f7237f9cd..8930f6ba3 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueCreateReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueCreateReqVO.java @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.product.controller.admin.property.vo.value; import lombok.*; import io.swagger.annotations.*; -@ApiModel("管理后台 - 规格值创建 Request VO") +@ApiModel("管理后台 - 商品属性值创建 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValuePageReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValuePageReqVO.java index ae77d822b..3f5ffee3d 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValuePageReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValuePageReqVO.java @@ -6,23 +6,17 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import org.springframework.format.annotation.DateTimeFormat; -import javax.validation.constraints.NotEmpty; -import java.util.Date; - -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; - -@ApiModel("管理后台 - 规格名称值分页 Request VO") +@ApiModel("管理后台 - 商品属性值分页 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class ProductPropertyValuePageReqVO extends PageParam { - @ApiModelProperty(value = "规格id", example = "1024") + @ApiModelProperty(value = "属性项的编号", example = "1024") private String propertyId; - @ApiModelProperty(value = "规格值", example = "红色") + @ApiModelProperty(value = "名称", example = "红色") private String name; @ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 CommonStatusEnum 枚举") diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueRespVO.java index 501afd752..fb5ecead9 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueRespVO.java @@ -8,13 +8,13 @@ import lombok.ToString; import java.time.LocalDateTime; -@ApiModel("管理后台 - 规格值 Response VO") +@ApiModel("管理后台 - 商品属性值 Response VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class ProductPropertyValueRespVO extends ProductPropertyValueBaseVO { - @ApiModelProperty(value = "主键", required = true, example = "10") + @ApiModelProperty(value = "编号", required = true, example = "10") private Long id; @ApiModelProperty(value = "创建时间") diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueUpdateReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueUpdateReqVO.java index 2437600a8..f13d434b3 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueUpdateReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueUpdateReqVO.java @@ -4,7 +4,7 @@ import lombok.*; import io.swagger.annotations.*; import javax.validation.constraints.*; -@ApiModel("管理后台 - 规格值更新 Request VO") +@ApiModel("管理后台 - 商品属性值更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuBaseVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuBaseVO.java index 45cb447b8..39004e1ab 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuBaseVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuBaseVO.java @@ -55,7 +55,7 @@ public class ProductSkuBaseVO { @ApiModelProperty(value = "商品体积", example = "1024", notes = "单位:m^3 平米") private Double volume; - @ApiModel("规格值") + @ApiModel("商品属性") @Data public static class Property { diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuCreateOrUpdateReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuCreateOrUpdateReqVO.java index 6d5ce024d..6fad48ff0 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuCreateOrUpdateReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuCreateOrUpdateReqVO.java @@ -18,7 +18,7 @@ public class ProductSkuCreateOrUpdateReqVO extends ProductSkuBaseVO { private Long id; /** - * 规格值数组 + * 属性数组 */ private List properties; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuRespVO.java index 1ac29724b..85f5903cc 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuRespVO.java @@ -22,7 +22,7 @@ public class ProductSkuRespVO extends ProductSkuBaseVO { private LocalDateTime createTime; /** - * 规格值数组 + * 属性数组 */ private List properties; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuDetailRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuDetailRespVO.java index de41d1416..33157b644 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuDetailRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuDetailRespVO.java @@ -35,22 +35,22 @@ public class ProductSpuDetailRespVO extends ProductSpuBaseVO { public static class Sku extends ProductSkuBaseVO { /** - * 规格的数组 + * 属性数组 */ private List properties; } - @ApiModel(value = "管理后台 - 商品规格的详细 Response VO") + @ApiModel(value = "管理后台 - 商品属性的详细 Response VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public static class Property extends ProductSkuBaseVO.Property { - @ApiModelProperty(value = "规格的名字", required = true, example = "颜色") + @ApiModelProperty(value = "属性项的名字", required = true, example = "颜色") private String propertyName; - @ApiModelProperty(value = "规格值的名字", required = true, example = "蓝色") + @ApiModelProperty(value = "属性值的名称", required = true, example = "蓝色") private String valueName; } @@ -59,7 +59,7 @@ public class ProductSpuDetailRespVO extends ProductSpuBaseVO { private Long categoryId; // TODO @芋艿:在瞅瞅~ - @ApiModelProperty(value = "规格属性修改和详情展示组合", example = "[{\"propertyId\":2,\"name\":\"内存\",\"propertyValues\":[{\"v1\":11,\"v2\":\"64G\"},{\"v1\":10,\"v2\":\"32G\"}]},{\"propertyId\":3,\"name\":\"尺寸\",\"propertyValues\":[{\"v1\":16,\"v2\":\"6.1\"},{\"v1\":15,\"v2\":\"5.7\"}]}]") + @ApiModelProperty(value = "属性修改和详情展示组合", example = "[{\"propertyId\":2,\"name\":\"内存\",\"propertyValues\":[{\"v1\":11,\"v2\":\"64G\"},{\"v1\":10,\"v2\":\"32G\"}]},{\"propertyId\":3,\"name\":\"尺寸\",\"propertyValues\":[{\"v1\":16,\"v2\":\"6.1\"},{\"v1\":15,\"v2\":\"5.7\"}]}]") private List productPropertyViews; } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/property/ProductPropertyConvert.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/property/ProductPropertyConvert.java index 91f811ad6..3e5a71117 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/property/ProductPropertyConvert.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/property/ProductPropertyConvert.java @@ -5,16 +5,14 @@ import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.Pro import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyCreateReqVO; import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyRespVO; import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyUpdateReqVO; -import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueRespVO; import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO; -import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyValueDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import java.util.List; /** - * 规格名称 Convert + * 属性项 Convert * * @author 芋道源码 */ diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/propertyvalue/ProductPropertyValueConvert.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/propertyvalue/ProductPropertyValueConvert.java index 331ad623f..46ac12297 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/propertyvalue/ProductPropertyValueConvert.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/propertyvalue/ProductPropertyValueConvert.java @@ -1,9 +1,6 @@ package cn.iocoder.yudao.module.product.convert.propertyvalue; -import java.util.*; - import cn.iocoder.yudao.framework.common.pojo.PageResult; - import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueCreateReqVO; import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueRespVO; import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueUpdateReqVO; @@ -11,8 +8,10 @@ import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyVa import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; +import java.util.List; + /** - * 规格值 Convert + * 属性值 Convert * * @author 芋道源码 */ diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/ProductPropertyDO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/ProductPropertyDO.java index b3831491e..973730b67 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/ProductPropertyDO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/ProductPropertyDO.java @@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import lombok.*; /** - * 规格名称 DO + * 商品属性项 DO * * @author 芋道源码 */ @@ -28,7 +28,7 @@ public class ProductPropertyDO extends BaseDO { @TableId private Long id; /** - * 规格名称 + * 名称 */ private String name; /** diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/ProductPropertyValueDO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/ProductPropertyValueDO.java index b75f0d592..6a964c76a 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/ProductPropertyValueDO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/ProductPropertyValueDO.java @@ -9,7 +9,7 @@ import lombok.*; /** - * 规格值 DO + * 商品属性值 DO * * @author 芋道源码 */ @@ -29,13 +29,13 @@ public class ProductPropertyValueDO extends BaseDO { @TableId private Long id; /** - * 规格键编号 + * 属性项的编号 * * 关联 {@link ProductPropertyDO#getId()} */ private Long propertyId; /** - * 规格值名字 + * 名称 */ private String name; /** diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/sku/ProductSkuDO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/sku/ProductSkuDO.java index b801863ff..3836f20e5 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/sku/ProductSkuDO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/sku/ProductSkuDO.java @@ -48,7 +48,7 @@ public class ProductSkuDO extends BaseDO { */ private String spuName; /** - * 规格值数组,JSON 格式 + * 属性数组,JSON 格式 */ @TableField(typeHandler = PropertyTypeHandler.class) private List properties; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/property/ProductPropertyMapper.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/property/ProductPropertyMapper.java index 890df3477..0639ff884 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/property/ProductPropertyMapper.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/property/ProductPropertyMapper.java @@ -7,13 +7,6 @@ import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.Pro import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO; import org.apache.ibatis.annotations.Mapper; -import java.util.List; - -/** - * 规格名称 Mapper - * - * @author 芋道源码 - */ @Mapper public interface ProductPropertyMapper extends BaseMapperX { diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/property/ProductPropertyValueMapper.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/property/ProductPropertyValueMapper.java index ca9bafab2..70565a7d0 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/property/ProductPropertyValueMapper.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/property/ProductPropertyValueMapper.java @@ -9,11 +9,6 @@ import org.apache.ibatis.annotations.Mapper; import java.util.List; -/** - * 规格值 Mapper - * - * @author 芋道源码 - */ @Mapper public interface ProductPropertyValueMapper extends BaseMapperX { diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyService.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyService.java index 8780c7865..2c44b95ec 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyService.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyService.java @@ -1,23 +1,21 @@ package cn.iocoder.yudao.module.product.service.property; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyRespVO; import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.*; -import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO; import javax.validation.Valid; import java.util.Collection; import java.util.List; /** - * 规格名称 Service 接口 + * 商品属性项 Service 接口 * * @author 芋道源码 */ public interface ProductPropertyService { /** - * 创建规格名称 + * 创建属性项 * * @param createReqVO 创建信息 * @return 编号 @@ -25,23 +23,23 @@ public interface ProductPropertyService { Long createProperty(@Valid ProductPropertyCreateReqVO createReqVO); /** - * 更新规格名称 + * 更新属性项 * * @param updateReqVO 更新信息 */ void updateProperty(@Valid ProductPropertyUpdateReqVO updateReqVO); /** - * 删除规格名称 + * 删除属性项 * * @param id 编号 */ void deleteProperty(Long id); /** - * 获得规格名称列表 + * 获得属性项列表 * @param listReqVO 集合查询 - * @return 规格名称集合 + * @return 属性项集合 */ List getPropertyList(ProductPropertyListReqVO listReqVO); @@ -49,31 +47,31 @@ public interface ProductPropertyService { * 获取属性名称分页 * * @param pageReqVO 分页条件 - * @return 规格名称分页 + * @return 属性项分页 */ PageResult getPropertyPage(ProductPropertyPageReqVO pageReqVO); /** - * 获得指定编号的规格名称 + * 获得指定编号的属性项 * * @param id 编号 - * @return 规格名称 + * @return 属性项 */ ProductPropertyRespVO getProperty(Long id); /** - * 根据规格属性编号的集合,获得对应的规格 + 规格值的集合 + * 根据属性项的编号的集合,获得对应的属性项数组 * - * @param ids 规格编号的集合 - * @return 对应的规格 + * @param ids 属性项的编号的集合 + * @return 属性项数组 */ List getPropertyList(Collection ids); /** - * 获得规格名称 + 值的列表 + * 获得属性项 + 值的列表 * * @param listReqVO 列表查询 - * @return 规格名称 + 值的列表 + * @return 属性项 + 值的列表 */ List getPropertyAndValueList(ProductPropertyListReqVO listReqVO); diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyServiceImpl.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyServiceImpl.java index 74e370f9c..17f1b20ac 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyServiceImpl.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyServiceImpl.java @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.product.service.property; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; -import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.*; import cn.iocoder.yudao.module.product.convert.property.ProductPropertyConvert; @@ -19,14 +18,13 @@ import javax.annotation.Resource; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Objects; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.PROPERTY_EXISTS; import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.PROPERTY_NOT_EXISTS; /** - * 规格名称 Service 实现类 + * 商品属性项 Service 实现类 * * @author 芋道源码 */ @@ -58,7 +56,7 @@ public class ProductPropertyServiceImpl implements ProductPropertyService { @Transactional(rollbackFor = Exception.class) public void updateProperty(ProductPropertyUpdateReqVO updateReqVO) { // 校验存在 - this.validatePropertyExists(updateReqVO.getId()); + validatePropertyExists(updateReqVO.getId()); ProductPropertyDO productPropertyDO = productPropertyMapper.selectByName(updateReqVO.getName()); if (productPropertyDO != null && !productPropertyDO.getId().equals(updateReqVO.getId())) { throw exception(PROPERTY_EXISTS); @@ -71,10 +69,10 @@ public class ProductPropertyServiceImpl implements ProductPropertyService { @Override public void deleteProperty(Long id) { // 校验存在 - this.validatePropertyExists(id); + validatePropertyExists(id); // 删除 productPropertyMapper.deleteById(id); - //同步删除属性值 + // 同步删除属性值 productPropertyValueMapper.deletePropertyValueByPropertyId(id); } @@ -93,7 +91,6 @@ public class ProductPropertyServiceImpl implements ProductPropertyService { @Override public PageResult getPropertyPage(ProductPropertyPageReqVO pageReqVO) { - //获取属性列表 PageResult pageResult = productPropertyMapper.selectPage(pageReqVO); return ProductPropertyConvert.INSTANCE.convertPage(pageResult); } @@ -104,11 +101,13 @@ public class ProductPropertyServiceImpl implements ProductPropertyService { return ProductPropertyConvert.INSTANCE.convert(property); } + // TODO @芋艿:丢到 Controller @Override public List getPropertyList(Collection ids) { return ProductPropertyConvert.INSTANCE.convertList(productPropertyMapper.selectBatchIds(ids)); } + // TODO @芋艿:丢到 Controller @Override public List getPropertyAndValueList(ProductPropertyListReqVO listReqVO) { List propertyList = getPropertyList(listReqVO); diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyValueService.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyValueService.java index 9dcbd72e7..45fc0a334 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyValueService.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyValueService.java @@ -9,16 +9,14 @@ import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.Produc import java.util.List; /** - *

- * 规格值 Service 接口 - *

+ * 商品属性值 Service 接口 * * @author LuoWenFeng */ public interface ProductPropertyValueService { /** - * 创建规格值 + * 创建属性值 * * @param createReqVO 创建信息 * @return 编号 @@ -26,40 +24,40 @@ public interface ProductPropertyValueService { Long createPropertyValue(ProductPropertyValueCreateReqVO createReqVO); /** - * 更新规格值 + * 更新属性值 * * @param updateReqVO 更新信息 */ void updatePropertyValue(ProductPropertyValueUpdateReqVO updateReqVO); /** - * 删除规格值 + * 删除属性值 * * @param id 编号 */ void deletePropertyValue(Long id); /** - * 获得规格值 + * 获得属性值 * * @param id 编号 - * @return 规格名称 + * @return 属性值 */ ProductPropertyValueRespVO getPropertyValue(Long id); /** - * 获得规格值 + * 获得属性值 * * @param id 编号 - * @return 规格名称 + * @return 属性值 */ List getPropertyValueListByPropertyId(List id); /** - * 获取规格值 分页 + * 获取属性值的分页 * * @param pageReqVO 查询条件 - * @return + * @return 属性值的分页 */ PageResult getPropertyValueListPage(ProductPropertyValuePageReqVO pageReqVO); } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyValueServiceImpl.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyValueServiceImpl.java index 5addb37e8..65971f620 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyValueServiceImpl.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyValueServiceImpl.java @@ -14,13 +14,12 @@ import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.util.List; -import java.util.Objects; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.PROPERTY_VALUE_EXISTS; /** - * 规格值 Service 实现类 + * 商品属性值 Service 实现类 * * @author LuoWenFeng */ diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/bo/ProductPropertyValueDetailRespBO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/bo/ProductPropertyValueDetailRespBO.java new file mode 100644 index 000000000..6776731f9 --- /dev/null +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/bo/ProductPropertyValueDetailRespBO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.product.service.property.bo; + +import lombok.Data; + +/** + * 商品属性项的明细 Response BO + * + * @author 芋道源码 + */ +@Data +public class ProductPropertyValueDetailRespBO { + + /** + * 属性的编号 + */ + private Long propertyId; + + /** + * 属性的名称 + */ + private String propertyName; + + /** + * 属性值的编号 + */ + private Long valueId; + + /** + * 属性值的名称 + */ + private String valueName; + +} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuServiceImpl.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuServiceImpl.java index 2cc80b7ab..9853dda28 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuServiceImpl.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuServiceImpl.java @@ -84,15 +84,17 @@ public class ProductSkuServiceImpl implements ProductSkuService { return; } - // 1、校验规格属性存在 - Set propertyIds = skus.stream().filter(p -> p.getProperties() != null).flatMap(p -> p.getProperties().stream()) // 遍历多个 Property 属性 - .map(ProductSkuBaseVO.Property::getPropertyId).collect(Collectors.toSet()); // 将每个 Property 转换成对应的 propertyId,最后形成集合 + // 1、校验属性项存在 + Set propertyIds = skus.stream().filter(p -> p.getProperties() != null) + .flatMap(p -> p.getProperties().stream()) // 遍历多个 Property 属性 + .map(ProductSkuBaseVO.Property::getPropertyId) // 将每个 Property 转换成对应的 propertyId,最后形成集合 + .collect(Collectors.toSet()); List propertyList = productPropertyService.getPropertyList(propertyIds); if (propertyList.size() != propertyIds.size()) { throw exception(PROPERTY_NOT_EXISTS); } - // 2. 校验,一个 SKU 下,没有重复的规格。校验方式是,遍历每个 SKU ,看看是否有重复的规格 propertyId + // 2. 校验,一个 SKU 下,没有重复的属性。校验方式是,遍历每个 SKU ,看看是否有重复的属性 propertyId Map propertyValueMap = CollectionUtils.convertMap(productPropertyValueService.getPropertyValueListByPropertyId(new ArrayList<>(propertyIds)), ProductPropertyValueRespVO::getId); skus.forEach(sku -> { Set skuPropertyIds = convertSet(sku.getProperties(), propertyItem -> propertyValueMap.get(propertyItem.getValueId()).getPropertyId()); @@ -101,7 +103,7 @@ public class ProductSkuServiceImpl implements ProductSkuService { } }); - // 3. 再校验,每个 Sku 的规格值的数量,是一致的。 + // 3. 再校验,每个 Sku 的属性值的数量,是一致的。 int attrValueIdsSize = skus.get(0).getProperties().size(); for (int i = 1; i < skus.size(); i++) { if (attrValueIdsSize != skus.get(i).getProperties().size()) { @@ -151,7 +153,7 @@ public class ProductSkuServiceImpl implements ProductSkuService { public void updateSkus(Long spuId, String spuName, List skus) { // 查询 SPU 下已经存在的 SKU 的集合 List existsSkus = productSkuMapper.selectListBySpuId(spuId); - // 构建规格与 SKU 的映射关系; + // 构建属性与 SKU 的映射关系; // TODO @luowenfeng: 可以下 existsSkuMap2; 会简洁一点; 另外, 可以考虑抽一个小方法, 用于 Properties 生成一个串; 这样 177 也可以复用了 Map existsSkuMap = existsSkus.stream() .map(v -> { diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuServiceImpl.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuServiceImpl.java index d9f8ec8dc..83680fca0 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuServiceImpl.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuServiceImpl.java @@ -133,7 +133,7 @@ public class ProductSpuServiceImpl implements ProductSpuService { if (null != spu) { List skuReqs = ProductSkuConvert.INSTANCE.convertList03(productSkuService.getSkusBySpuId(id)); respVO.setSkus(skuReqs); - // 组合 sku 规格属性 + // 组合 sku 属性 if (spu.getSpecType().equals(ProductSpuSpecTypeEnum.DISABLE.getType())) { List properties = new ArrayList<>(); for (ProductSpuDetailRespVO.Sku productSkuRespVO : skuReqs) { diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/price/PriceServiceImpl.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/price/PriceServiceImpl.java index e384d1f81..03abb061f 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/price/PriceServiceImpl.java +++ b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/price/PriceServiceImpl.java @@ -265,7 +265,7 @@ public class PriceServiceImpl implements PriceService { private void calculatePriceByRewardActivity(PriceCalculateRespDTO priceCalculate, List orderItems, RewardActivityDO rewardActivity) { - // 获得最大匹配的满减送活动的规格 + // 获得最大匹配的满减送活动的规则 RewardActivityDO.Rule rule = getLastMatchRewardActivityRule(rewardActivity, orderItems); if (rule == null) { // 获取不到的情况下,记录不满足的优惠明细 @@ -288,11 +288,11 @@ public class PriceServiceImpl implements PriceService { } /** - * 获得最大匹配的满减送活动的规格 + * 获得最大匹配的满减送活动的规则 * * @param rewardActivity 满减送活动 * @param orderItems 商品项 - * @return 匹配的活动规格 + * @return 匹配的活动规则 */ private RewardActivityDO.Rule getLastMatchRewardActivityRule(RewardActivityDO rewardActivity, List orderItems) { diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/TradeAfterSaleBaseVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/TradeAfterSaleBaseVO.java index 74f0e4f67..b38eb0394 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/TradeAfterSaleBaseVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/TradeAfterSaleBaseVO.java @@ -72,7 +72,7 @@ public class TradeAfterSaleBaseVO { @NotNull(message = "商品 SKU 编号不能为空") private Long skuId; - @ApiModelProperty(value = "规格值数组") + @ApiModelProperty(value = "商品属性数组") private List properties; @ApiModelProperty(value = "商品图片", example = "https://www.iocoder.cn/2.png") diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/base/product/property/ProductPropertyValueDetailRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/base/product/property/ProductPropertyValueDetailRespVO.java index 1a9a4c564..b9978770c 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/base/product/property/ProductPropertyValueDetailRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/base/product/property/ProductPropertyValueDetailRespVO.java @@ -4,7 +4,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@ApiModel("管理后台 - 商品规格 + 规格值的明细 Response VO") +@ApiModel("管理后台 - 商品属性值的明细 Response VO") @Data public class ProductPropertyValueDetailRespVO { diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/TradeOrderController.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/TradeOrderController.java index c45dc6bdd..172ff9598 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/TradeOrderController.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/TradeOrderController.java @@ -1,11 +1,14 @@ package cn.iocoder.yudao.module.trade.controller.admin.order; +import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO; import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageItemRespVO; import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageReqVO; +import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert; import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; +import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; import cn.iocoder.yudao.module.trade.service.order.TradeOrderService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -15,8 +18,11 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; +import java.util.Set; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; @Api(tags = "管理后台 - 交易订单") @@ -33,7 +39,19 @@ public class TradeOrderController { @ApiOperation("获得交易订单分页") @PreAuthorize("@ss.hasPermission('trade:order:query')") public CommonResult> getOrderPage(TradeOrderPageReqVO reqVO) { + // 查询订单 PageResult pageResult = tradeOrderService.getOrderPage(reqVO); + if (CollUtil.isEmpty(pageResult.getList())) { + return success(PageResult.empty()); + } + + // 查询订单项 + List orderItems = tradeOrderService.getOrderItems( + convertSet(pageResult.getList(), TradeOrderDO::getId)); + // 查询属性 + Set propertyValueIds = TradeOrderConvert.INSTANCE.convertPropertyValueIds(orderItems); + + return success(null); } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderPageItemRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderPageItemRespVO.java index a15836829..658eb539a 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderPageItemRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderPageItemRespVO.java @@ -20,7 +20,7 @@ public class TradeOrderPageItemRespVO { public static class Item extends TradeOrderItemBaseVO { /** - * 规格值数组 + * 属性数组 */ private List properties; diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderPageReqVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderPageReqVO.java index d1cea288b..35f2b6f43 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderPageReqVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderPageReqVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.trade.controller.admin.order.vo; +import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.validation.InEnum; import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum; import io.swagger.annotations.ApiModel; @@ -8,7 +9,7 @@ import lombok.Data; @ApiModel("管理后台 - 交易订单的分页 Request VO") @Data -public class TradeOrderPageReqVO { +public class TradeOrderPageReqVO extends PageParam { @ApiModelProperty(value = "订单状态", example = "1", notes = "参见 TradeOrderStatusEnum 枚举") @InEnum(value = TradeOrderStatusEnum.class, message = "订单状态必须是 {value}") diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/property/AppProductPropertyValueDetailRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/property/AppProductPropertyValueDetailRespVO.java index 5e8a45518..bd5543b5f 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/property/AppProductPropertyValueDetailRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/property/AppProductPropertyValueDetailRespVO.java @@ -4,7 +4,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@ApiModel("用户 App - 商品规格 + 规格值的明细 Response VO") +@ApiModel("用户 App - 商品属性值的明细 Response VO") @Data public class AppProductPropertyValueDetailRespVO { diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/sku/AppProductSkuBaseRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/sku/AppProductSkuBaseRespVO.java index ed666a9c8..e95b261d2 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/sku/AppProductSkuBaseRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/sku/AppProductSkuBaseRespVO.java @@ -27,7 +27,7 @@ public class AppProductSkuBaseRespVO { private Integer stock; /** - * 规格数组 + * 属性数组 */ private List properties; diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderGetCreateInfoRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderGetCreateInfoRespVO.java index d0bf595f6..dba7fcb53 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderGetCreateInfoRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderGetCreateInfoRespVO.java @@ -56,7 +56,7 @@ public class AppTradeOrderGetCreateInfoRespVO { */ private String picURL; // /** -// * 规格值数组 +// * 属性数组 // */ // private List attrs; // TODO 后面改下 /** diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/order/TradeOrderConvert.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/order/TradeOrderConvert.java index cc4c37f2d..41138cb44 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/order/TradeOrderConvert.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/order/TradeOrderConvert.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.trade.convert.order; +import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO; import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderCreateReqDTO; @@ -18,8 +19,11 @@ import org.mapstruct.Mapping; import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.addTime; @@ -88,4 +92,14 @@ public interface TradeOrderConvert { return createReqDTO; } + default Set convertPropertyValueIds(List orderItems) { + if (CollUtil.isEmpty(orderItems)) { + return new HashSet<>(); + } + return orderItems.stream().filter(item -> item.getProperties() != null) + .flatMap(p -> p.getProperties().stream()) // 遍历多个 Property 属性 + .map(TradeOrderItemDO.Property::getValueId) // 将每个 Property 转换成对应的 propertyId,最后形成集合 + .collect(Collectors.toSet()); + } + } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/aftersale/TradeAfterSaleDO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/aftersale/TradeAfterSaleDO.java index ef5b23fcc..1b703d9e7 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/aftersale/TradeAfterSaleDO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/aftersale/TradeAfterSaleDO.java @@ -120,7 +120,7 @@ public class TradeAfterSaleDO extends BaseDO { */ private Long skuId; /** - * 规格值数组,JSON 格式 + * 属性数组,JSON 格式 * * 冗余 {@link TradeOrderItemDO#getProperties()} */ diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderItemDO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderItemDO.java index 611ea2f66..f8438030b 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderItemDO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderItemDO.java @@ -63,7 +63,7 @@ public class TradeOrderItemDO extends BaseDO { */ private Long skuId; /** - * 规格值数组,JSON 格式 + * 属性数组,JSON 格式 * * 冗余 ProductSkuDO 的 properties 字段 */ diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/order/TradeOrderMapper.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/order/TradeOrderMapper.java index 0b50bc8d6..e533e2d6c 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/order/TradeOrderMapper.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/order/TradeOrderMapper.java @@ -1,6 +1,9 @@ package cn.iocoder.yudao.module.trade.dal.mysql.order; +import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageReqVO; import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import org.apache.ibatis.annotations.Mapper; @@ -14,8 +17,12 @@ public interface TradeOrderMapper extends BaseMapperX { } default TradeOrderDO selectByIdAndUserId(Long id, Long userId) { - return selectOne(TradeOrderDO::getId, id, - TradeOrderDO::getUserId, userId); + return selectOne(TradeOrderDO::getId, id, TradeOrderDO::getUserId, userId); + } + + default PageResult selectPage(TradeOrderPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(TradeOrderDO::getStatus, reqVO.getStatus())); } } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderService.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderService.java index 24d342a9e..33601a038 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderService.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderService.java @@ -7,6 +7,12 @@ import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreate import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMultiMap; + /** * 交易订单 Service 接口 * @@ -90,4 +96,23 @@ public interface TradeOrderService { void updateOrderItemAfterSaleStatus(Long id, Integer oldAfterSaleStatus, Integer newAfterSaleStatus, Integer refundPrice); + /** + * 查询交易订单项 + * + * @param ids 交易订单项编号数组 + * @return 交易订单项数组 + */ + List getOrderItems(Collection ids); + + /** + * 查询交易订单项 Map + * + * @param ids 交易订单项编号数组 + * @return 交易订单项 Map + */ + default Map> getOrderItemMap(Collection ids) { + List orderItems = getOrderItems(ids); + return convertMultiMap(orderItems, TradeOrderItemDO::getOrderId); + } + } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceImpl.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceImpl.java index 2bc1564cd..a816570c3 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceImpl.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceImpl.java @@ -43,10 +43,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.time.LocalDateTime; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; +import java.util.*; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*; @@ -423,7 +420,7 @@ public class TradeOrderServiceImpl implements TradeOrderService { @Override public PageResult getOrderPage(TradeOrderPageReqVO reqVO) { - return null; + return tradeOrderMapper.selectPage(reqVO); } // =================== Order Item =================== @@ -475,6 +472,11 @@ public class TradeOrderServiceImpl implements TradeOrderService { // TODO 芋艿:未来如果有分佣,需要更新相关分佣订单为已失效 } + @Override + public List getOrderItems(Collection ids) { + return tradeOrderItemMapper.selectBatchIds(ids); + } + /** * 判断指定订单的所有订单项,是不是都售后成功 * diff --git a/yudao-ui-admin/src/api/mall/product/property.js b/yudao-ui-admin/src/api/mall/product/property.js index 5046b9233..f668454a0 100644 --- a/yudao-ui-admin/src/api/mall/product/property.js +++ b/yudao-ui-admin/src/api/mall/product/property.js @@ -1,6 +1,8 @@ import request from '@/utils/request' -// 创建规格名称 +// ------------------------ 属性项 ------------------- + +// 创建属性项 export function createProperty(data) { return request({ url: '/product/property/create', @@ -9,7 +11,7 @@ export function createProperty(data) { }) } -// 更新规格名称 +// 更新属性项 export function updateProperty(data) { return request({ url: '/product/property/update', @@ -18,7 +20,7 @@ export function updateProperty(data) { }) } -// 删除规格名称 +// 删除属性项 export function deleteProperty(id) { return request({ url: '/product/property/delete?id=' + id, @@ -26,7 +28,7 @@ export function deleteProperty(id) { }) } -// 获得规格名称 +// 获得属性项 export function getProperty(id) { return request({ url: '/product/property/get?id=' + id, @@ -34,7 +36,7 @@ export function getProperty(id) { }) } -// 获得规格名称分页 +// 获得属性项分页 export function getPropertyPage(query) { return request({ url: '/product/property/page', @@ -43,7 +45,7 @@ export function getPropertyPage(query) { }) } -// 获得规格名称列表 +// 获得属性项列表 export function getPropertyList(query) { return request({ url: '/product/property/list', @@ -52,7 +54,7 @@ export function getPropertyList(query) { }) } -// 获得规格名称列表 +// 获得属性项列表 export function getPropertyListAndValue(query) { return request({ url: '/product/property/listAndValue', @@ -62,7 +64,7 @@ export function getPropertyListAndValue(query) { } -// 导出规格名称 Excel +// 导出属性项 Excel export function exportPropertyExcel(query) { return request({ url: '/product/property/export-excel', @@ -72,9 +74,9 @@ export function exportPropertyExcel(query) { }) } -// ------------------------ 规格名称值 ------------------- +// ------------------------ 属性值 ------------------- -// 获得规格名称值分页 +// 获得属性值分页 export function getPropertyValuePage(query) { return request({ url: '/product/property/value/page', @@ -83,7 +85,7 @@ export function getPropertyValuePage(query) { }) } -// 获得规格名称值 +// 获得属性值 export function getPropertyValue(id) { return request({ url: '/product/property/value/get?id=' + id, @@ -92,7 +94,7 @@ export function getPropertyValue(id) { } -// 创建规格名称值 +// 创建属性值 export function createPropertyValue(data) { return request({ url: '/product/property/value/create', @@ -101,7 +103,7 @@ export function createPropertyValue(data) { }) } -// 更新规格名称值 +// 更新属性值 export function updatePropertyValue(data) { return request({ url: '/product/property/value/update', @@ -110,7 +112,7 @@ export function updatePropertyValue(data) { }) } -// 删除规格名称 +// 删除属性值 export function deletePropertyValue(id) { return request({ url: '/product/property/value/delete?id=' + id, diff --git a/yudao-ui-admin/src/router/index.js b/yudao-ui-admin/src/router/index.js index 309a7a3b8..63a01eed7 100644 --- a/yudao-ui-admin/src/router/index.js +++ b/yudao-ui-admin/src/router/index.js @@ -106,7 +106,7 @@ export const constantRoutes = [ path: 'value/:propertyId(\\d+)', component: (resolve) => require(['@/views/mall/product/property/value'], resolve), name: 'PropertyValue', - meta: {title: '规格数据', icon: '', activeMenu: '/product/property'} + meta: {title: '商品属性值', icon: '', activeMenu: '/product/property'} } ] }, { diff --git a/yudao-ui-admin/src/views/mall/product/property/index.vue b/yudao-ui-admin/src/views/mall/product/property/index.vue index 36c1ab011..301106d4e 100644 --- a/yudao-ui-admin/src/views/mall/product/property/index.vue +++ b/yudao-ui-admin/src/views/mall/product/property/index.vue @@ -3,8 +3,8 @@ - - + + @@ -33,8 +33,8 @@ - - + +