diff --git a/sql/mall.sql b/sql/mall.sql index c3945a1fe..7b3d8ce5b 100644 --- a/sql/mall.sql +++ b/sql/mall.sql @@ -171,7 +171,7 @@ VALUES ('商品导出', 'product:spu:export', 3, 5, @parentId, '', '', '', 0); drop table if exists product_property; create table product_property ( - id bigint comment '主键', + id bigint NOT NULL AUTO_INCREMENT comment '主键', name varchar(64) comment '规格名称', status tinyint comment '状态: 0 开启 ,1 禁用', create_time datetime default current_timestamp comment '创建时间', @@ -179,7 +179,7 @@ create table product_property creator varchar(64) comment '创建人', updater varchar(64) comment '更新人', tenant_id bigint NOT NULL DEFAULT '0' COMMENT '租户编号', - deleted bit(1) comment '状态', + deleted bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', primary key (id), key idx_name ( name (32)) comment '规格名称索引' ) comment '规格名称' character set utf8mb4 @@ -189,7 +189,7 @@ create table product_property drop table if exists product_property_value; create table product_property_value ( - id int comment '主键', + id bigint NOT NULL AUTO_INCREMENT COMMENT '主键', property_id bigint comment '规格键id', name varchar(128) comment '规格值名字', status tinyint comment '状态: 1 开启 ,2 禁用', @@ -198,7 +198,7 @@ create table product_property_value creator varchar(64) comment '创建人', updater varchar(64) comment '更新人', tenant_id bigint NOT NULL DEFAULT '0' COMMENT '租户编号', - deleted bit(1) comment '状态', + deleted bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', primary key (id) ) comment '规格值' character set utf8mb4 collate utf8mb4_general_ci; @@ -207,7 +207,7 @@ create table product_property_value drop table if exists product_spu; create table product_spu ( - id int comment '主键', + id bigint NOT NULL AUTO_INCREMENT COMMENT '主键', name varchar(128) comment '商品名称', sell_point varchar(128) not null comment '卖点', description text not null comment '描述', @@ -223,7 +223,7 @@ create table product_spu creator varchar(64) comment '创建人', updater varchar(64) comment '更新人', tenant_id bigint NOT NULL DEFAULT '0' COMMENT '租户编号', - deleted bit(1) comment '状态', + deleted bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', primary key (id) ) comment '商品spu' character set utf8mb4 collate utf8mb4_general_ci; @@ -233,7 +233,7 @@ create table product_spu drop table if exists product_sku; create table product_sku ( - id int comment '主键', + id bigint NOT NULL AUTO_INCREMENT COMMENT '主键', spu_id bigint not null comment 'spu编号', properties varchar(64) not null comment '规格值数组-json格式, [{propertId: , valueId: }, {propertId: , valueId: }]', price int not null DEFAULT -1 comment '销售价格,单位:分', @@ -247,7 +247,7 @@ create table product_sku creator varchar(64) comment '创建人', updater varchar(64) comment '更新人', tenant_id bigint NOT NULL DEFAULT '0' COMMENT '租户编号', - deleted bit(1) comment '状态', + deleted bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', primary key (id) ) comment '商品sku' character set utf8mb4 collate utf8mb4_general_ci; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/PropertyController.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/ProductPropertyController.java old mode 100755 new mode 100644 similarity index 65% rename from yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/PropertyController.java rename to yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/ProductPropertyController.java index b35e38ca0..f1d31acab --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/PropertyController.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/ProductPropertyController.java @@ -1,12 +1,12 @@ package cn.iocoder.yudao.module.product.controller.admin.property; +import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.security.access.prepost.PreAuthorize; import io.swagger.annotations.*; -import javax.validation.constraints.*; import javax.validation.*; import javax.servlet.http.*; import java.util.*; @@ -22,31 +22,30 @@ import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; import cn.iocoder.yudao.module.product.controller.admin.property.vo.*; -import cn.iocoder.yudao.module.product.dal.dataobject.property.PropertyDO; -import cn.iocoder.yudao.module.product.convert.property.PropertyConvert; -import cn.iocoder.yudao.module.product.service.property.PropertyService; +import cn.iocoder.yudao.module.product.convert.property.ProductPropertyConvert; +import cn.iocoder.yudao.module.product.service.property.ProductPropertyService; @Api(tags = "管理后台 - 规格名称") @RestController @RequestMapping("/product/property") @Validated -public class PropertyController { +public class ProductPropertyController { @Resource - private PropertyService propertyService; + private ProductPropertyService productPropertyService; @PostMapping("/create") @ApiOperation("创建规格名称") @PreAuthorize("@ss.hasPermission('product:property:create')") - public CommonResult createProperty(@Valid @RequestBody PropertyCreateReqVO createReqVO) { - return success(propertyService.createProperty(createReqVO)); + public CommonResult createProperty(@Valid @RequestBody ProductPropertyCreateReqVO createReqVO) { + return success(productPropertyService.createProperty(createReqVO)); } @PutMapping("/update") @ApiOperation("更新规格名称") @PreAuthorize("@ss.hasPermission('product:property:update')") - public CommonResult updateProperty(@Valid @RequestBody PropertyUpdateReqVO updateReqVO) { - propertyService.updateProperty(updateReqVO); + public CommonResult updateProperty(@Valid @RequestBody ProductPropertyUpdateReqVO updateReqVO) { + productPropertyService.updateProperty(updateReqVO); return success(true); } @@ -55,7 +54,7 @@ public class PropertyController { @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class) @PreAuthorize("@ss.hasPermission('product:property:delete')") public CommonResult deleteProperty(@RequestParam("id") Long id) { - propertyService.deleteProperty(id); + productPropertyService.deleteProperty(id); return success(true); } @@ -63,38 +62,36 @@ public class PropertyController { @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) { - PropertyDO property = propertyService.getProperty(id); - return success(PropertyConvert.INSTANCE.convert(property)); + public CommonResult getProperty(@RequestParam("id") Long id) { + return success(productPropertyService.getPropertyResp(id)); } @GetMapping("/list") @ApiOperation("获得规格名称列表") @ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class) @PreAuthorize("@ss.hasPermission('product:property:query')") - public CommonResult> getPropertyList(@RequestParam("ids") Collection ids) { - List list = propertyService.getPropertyList(ids); - return success(PropertyConvert.INSTANCE.convertList(list)); + public CommonResult> getPropertyList(@RequestParam("ids") Collection ids) { + List list = productPropertyService.getPropertyList(ids); + return success(ProductPropertyConvert.INSTANCE.convertList(list)); } @GetMapping("/page") @ApiOperation("获得规格名称分页") @PreAuthorize("@ss.hasPermission('product:property:query')") - public CommonResult> getPropertyPage(@Valid PropertyPageReqVO pageVO) { - PageResult pageResult = propertyService.getPropertyPage(pageVO); - return success(PropertyConvert.INSTANCE.convertPage(pageResult)); + public CommonResult> getPropertyPage(@Valid ProductPropertyPageReqVO pageVO) { + return success(productPropertyService.getPropertyListPage(pageVO)); } @GetMapping("/export-excel") @ApiOperation("导出规格名称 Excel") @PreAuthorize("@ss.hasPermission('product:property:export')") @OperateLog(type = EXPORT) - public void exportPropertyExcel(@Valid PropertyExportReqVO exportReqVO, + public void exportPropertyExcel(@Valid ProductPropertyExportReqVO exportReqVO, HttpServletResponse response) throws IOException { - List list = propertyService.getPropertyList(exportReqVO); + List list = productPropertyService.getPropertyList(exportReqVO); // 导出 Excel - List datas = PropertyConvert.INSTANCE.convertList02(list); - ExcelUtils.write(response, "规格名称.xls", "数据", PropertyExcelVO.class, datas); + List datas = ProductPropertyConvert.INSTANCE.convertList02(list); + ExcelUtils.write(response, "规格名称.xls", "数据", ProductPropertyExcelVO.class, datas); } } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/PropertyBaseVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyBaseVO.java old mode 100755 new mode 100644 similarity index 93% rename from yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/PropertyBaseVO.java rename to yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyBaseVO.java index c04447920..4d38763f9 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/PropertyBaseVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyBaseVO.java @@ -10,7 +10,7 @@ import javax.validation.constraints.*; * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 */ @Data -public class PropertyBaseVO { +public class ProductPropertyBaseVO { @ApiModelProperty(value = "规格名称") private String name; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyCreateReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyCreateReqVO.java new file mode 100644 index 000000000..54d72da8a --- /dev/null +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyCreateReqVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.product.controller.admin.property.vo; + +import cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo.ProductPropertyValueCreateReqVO; +import lombok.*; +import io.swagger.annotations.*; + +import javax.validation.constraints.NotNull; +import java.util.List; + +@ApiModel("管理后台 - 规格名称创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ProductPropertyCreateReqVO extends ProductPropertyBaseVO { + + @ApiModelProperty(value = "属性值") + @NotNull(message = "属性值不能为空") + List propertyValueList; + +} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/PropertyExcelVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyExcelVO.java old mode 100755 new mode 100644 similarity index 93% rename from yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/PropertyExcelVO.java rename to yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyExcelVO.java index eb82e8512..c935c1001 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/PropertyExcelVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyExcelVO.java @@ -12,7 +12,7 @@ import com.alibaba.excel.annotation.ExcelProperty; * @author 芋道源码 */ @Data -public class PropertyExcelVO { +public class ProductPropertyExcelVO { @ExcelProperty("主键") private Long id; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/PropertyExportReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyExportReqVO.java old mode 100755 new mode 100644 similarity index 95% rename from yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/PropertyExportReqVO.java rename to yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyExportReqVO.java index 0201ec5cf..e19ea2bfa --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/PropertyExportReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyExportReqVO.java @@ -10,7 +10,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @ApiModel(value = "管理后台 - 规格名称 Excel 导出 Request VO", description = "参数和 PropertyPageReqVO 是一致的") @Data -public class PropertyExportReqVO { +public class ProductPropertyExportReqVO { @ApiModelProperty(value = "规格名称") private String name; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/PropertyPageReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyPageReqVO.java old mode 100755 new mode 100644 similarity index 94% rename from yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/PropertyPageReqVO.java rename to yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyPageReqVO.java index c6caf0b12..34d7239f2 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/PropertyPageReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyPageReqVO.java @@ -12,7 +12,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) -public class PropertyPageReqVO extends PageParam { +public class ProductPropertyPageReqVO extends PageParam { @ApiModelProperty(value = "规格名称") private String name; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/PropertyRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyRespVO.java old mode 100755 new mode 100644 similarity index 60% rename from yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/PropertyRespVO.java rename to yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyRespVO.java index 8b14f2ba2..978f26308 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/PropertyRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyRespVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.product.controller.admin.property.vo; +import cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo.ProductPropertyValueRespVO; import lombok.*; import java.util.*; import io.swagger.annotations.*; @@ -8,7 +9,7 @@ import io.swagger.annotations.*; @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) -public class PropertyRespVO extends PropertyBaseVO { +public class ProductPropertyRespVO extends ProductPropertyBaseVO { @ApiModelProperty(value = "主键", required = true) private Long id; @@ -16,4 +17,7 @@ public class PropertyRespVO extends PropertyBaseVO { @ApiModelProperty(value = "创建时间") private Date createTime; + @ApiModelProperty(value = "属性值") + private List propertyValueList; + } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/PropertyUpdateReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyUpdateReqVO.java old mode 100755 new mode 100644 similarity index 54% rename from yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/PropertyUpdateReqVO.java rename to yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyUpdateReqVO.java index 84b0b4ca7..ed190e8b0 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/PropertyUpdateReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyUpdateReqVO.java @@ -1,18 +1,23 @@ package cn.iocoder.yudao.module.product.controller.admin.property.vo; +import cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo.ProductPropertyValueCreateReqVO; import lombok.*; -import java.util.*; import io.swagger.annotations.*; import javax.validation.constraints.*; +import java.util.List; @ApiModel("管理后台 - 规格名称更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) -public class PropertyUpdateReqVO extends PropertyBaseVO { +public class ProductPropertyUpdateReqVO extends ProductPropertyBaseVO { @ApiModelProperty(value = "主键", required = true) @NotNull(message = "主键不能为空") private Long id; + @ApiModelProperty(value = "属性值") + @NotNull(message = "属性值不能为空") + List propertyValueList; + } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/PropertyCreateReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/PropertyCreateReqVO.java deleted file mode 100755 index 4effd68b9..000000000 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/PropertyCreateReqVO.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.iocoder.yudao.module.product.controller.admin.property.vo; - -import lombok.*; -import java.util.*; -import io.swagger.annotations.*; -import javax.validation.constraints.*; - -@ApiModel("管理后台 - 规格名称创建 Request VO") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class PropertyCreateReqVO extends PropertyBaseVO { - -} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/PropertyValueController.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/PropertyValueController.java deleted file mode 100755 index 78404e507..000000000 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/PropertyValueController.java +++ /dev/null @@ -1,100 +0,0 @@ -package cn.iocoder.yudao.module.product.controller.admin.propertyvalue; - -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.annotations.*; - -import javax.validation.constraints.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; -import java.io.IOException; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; - -import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; - -import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; -import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; - -import cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo.*; -import cn.iocoder.yudao.module.product.dal.dataobject.propertyvalue.PropertyValueDO; -import cn.iocoder.yudao.module.product.convert.propertyvalue.PropertyValueConvert; -import cn.iocoder.yudao.module.product.service.propertyvalue.PropertyValueService; - -@Api(tags = "管理后台 - 规格值") -@RestController -@RequestMapping("/product/property-value") -@Validated -public class PropertyValueController { - - @Resource - private PropertyValueService propertyValueService; - - @PostMapping("/create") - @ApiOperation("创建规格值") - @PreAuthorize("@ss.hasPermission('product:property-value:create')") - public CommonResult createPropertyValue(@Valid @RequestBody PropertyValueCreateReqVO createReqVO) { - return success(propertyValueService.createPropertyValue(createReqVO)); - } - - @PutMapping("/update") - @ApiOperation("更新规格值") - @PreAuthorize("@ss.hasPermission('product:property-value:update')") - public CommonResult updatePropertyValue(@Valid @RequestBody PropertyValueUpdateReqVO updateReqVO) { - propertyValueService.updatePropertyValue(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @ApiOperation("删除规格值") - @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Integer.class) - @PreAuthorize("@ss.hasPermission('product:property-value:delete')") - public CommonResult deletePropertyValue(@RequestParam("id") Integer id) { - propertyValueService.deletePropertyValue(id); - return success(true); - } - - @GetMapping("/get") - @ApiOperation("获得规格值") - @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Integer.class) - @PreAuthorize("@ss.hasPermission('product:property-value:query')") - public CommonResult getPropertyValue(@RequestParam("id") Integer id) { - PropertyValueDO propertyValue = propertyValueService.getPropertyValue(id); - return success(PropertyValueConvert.INSTANCE.convert(propertyValue)); - } - - @GetMapping("/list") - @ApiOperation("获得规格值列表") - @ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class) - @PreAuthorize("@ss.hasPermission('product:property-value:query')") - public CommonResult> getPropertyValueList(@RequestParam("ids") Collection ids) { - List list = propertyValueService.getPropertyValueList(ids); - return success(PropertyValueConvert.INSTANCE.convertList(list)); - } - - @GetMapping("/page") - @ApiOperation("获得规格值分页") - @PreAuthorize("@ss.hasPermission('product:property-value:query')") - public CommonResult> getPropertyValuePage(@Valid PropertyValuePageReqVO pageVO) { - PageResult pageResult = propertyValueService.getPropertyValuePage(pageVO); - return success(PropertyValueConvert.INSTANCE.convertPage(pageResult)); - } - - @GetMapping("/export-excel") - @ApiOperation("导出规格值 Excel") - @PreAuthorize("@ss.hasPermission('product:property-value:export')") - @OperateLog(type = EXPORT) - public void exportPropertyValueExcel(@Valid PropertyValueExportReqVO exportReqVO, - HttpServletResponse response) throws IOException { - List list = propertyValueService.getPropertyValueList(exportReqVO); - // 导出 Excel - List datas = PropertyValueConvert.INSTANCE.convertList02(list); - ExcelUtils.write(response, "规格值.xls", "数据", PropertyValueExcelVO.class, datas); - } - -} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/PropertyValueBaseVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/ProductPropertyValueBaseVO.java old mode 100755 new mode 100644 similarity index 93% rename from yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/PropertyValueBaseVO.java rename to yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/ProductPropertyValueBaseVO.java index 814911ccb..ed600a9ac --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/PropertyValueBaseVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/ProductPropertyValueBaseVO.java @@ -10,7 +10,7 @@ import javax.validation.constraints.*; * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 */ @Data -public class PropertyValueBaseVO { +public class ProductPropertyValueBaseVO { @ApiModelProperty(value = "规格键id") private Long propertyId; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/PropertyValueCreateReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/ProductPropertyValueCreateReqVO.java old mode 100755 new mode 100644 similarity index 66% rename from yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/PropertyValueCreateReqVO.java rename to yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/ProductPropertyValueCreateReqVO.java index ac4857efd..23ea0690c --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/PropertyValueCreateReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/ProductPropertyValueCreateReqVO.java @@ -1,14 +1,12 @@ package cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo; import lombok.*; -import java.util.*; import io.swagger.annotations.*; -import javax.validation.constraints.*; @ApiModel("管理后台 - 规格值创建 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) -public class PropertyValueCreateReqVO extends PropertyValueBaseVO { +public class ProductPropertyValueCreateReqVO extends ProductPropertyValueBaseVO { } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/PropertyValueRespVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/ProductPropertyValueRespVO.java old mode 100755 new mode 100644 similarity index 84% rename from yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/PropertyValueRespVO.java rename to yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/ProductPropertyValueRespVO.java index ac30456d4..8cbd45a7f --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/PropertyValueRespVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/ProductPropertyValueRespVO.java @@ -8,7 +8,7 @@ import io.swagger.annotations.*; @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) -public class PropertyValueRespVO extends PropertyValueBaseVO { +public class ProductPropertyValueRespVO extends ProductPropertyValueBaseVO { @ApiModelProperty(value = "主键", required = true) private Integer id; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/PropertyValueUpdateReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/ProductPropertyValueUpdateReqVO.java old mode 100755 new mode 100644 similarity index 82% rename from yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/PropertyValueUpdateReqVO.java rename to yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/ProductPropertyValueUpdateReqVO.java index 1883192a7..894d6f6eb --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/PropertyValueUpdateReqVO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/ProductPropertyValueUpdateReqVO.java @@ -1,7 +1,6 @@ package cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo; import lombok.*; -import java.util.*; import io.swagger.annotations.*; import javax.validation.constraints.*; @@ -9,7 +8,7 @@ import javax.validation.constraints.*; @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) -public class PropertyValueUpdateReqVO extends PropertyValueBaseVO { +public class ProductPropertyValueUpdateReqVO extends ProductPropertyValueBaseVO { @ApiModelProperty(value = "主键", required = true) @NotNull(message = "主键不能为空") diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/PropertyValueExcelVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/PropertyValueExcelVO.java deleted file mode 100755 index 59c368f79..000000000 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/PropertyValueExcelVO.java +++ /dev/null @@ -1,32 +0,0 @@ -package cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo; - -import lombok.*; -import java.util.*; -import io.swagger.annotations.*; - -import com.alibaba.excel.annotation.ExcelProperty; - -/** - * 规格值 Excel VO - * - * @author 芋道源码 - */ -@Data -public class PropertyValueExcelVO { - - @ExcelProperty("主键") - private Integer id; - - @ExcelProperty("规格键id") - private Long propertyId; - - @ExcelProperty("规格值名字") - private String name; - - @ExcelProperty("状态: 1 开启 ,2 禁用") - private Integer status; - - @ExcelProperty("创建时间") - private Date createTime; - -} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/PropertyValueExportReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/PropertyValueExportReqVO.java deleted file mode 100755 index 6c76156b7..000000000 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/PropertyValueExportReqVO.java +++ /dev/null @@ -1,32 +0,0 @@ -package cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo; - -import lombok.*; -import java.util.*; -import io.swagger.annotations.*; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import org.springframework.format.annotation.DateTimeFormat; - -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; - -@ApiModel(value = "管理后台 - 规格值 Excel 导出 Request VO", description = "参数和 PropertyValuePageReqVO 是一致的") -@Data -public class PropertyValueExportReqVO { - - @ApiModelProperty(value = "规格键id") - private Long propertyId; - - @ApiModelProperty(value = "规格值名字") - private String name; - - @ApiModelProperty(value = "状态: 1 开启 ,2 禁用") - private Integer status; - - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - @ApiModelProperty(value = "开始创建时间") - private Date beginCreateTime; - - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - @ApiModelProperty(value = "结束创建时间") - private Date endCreateTime; - -} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/PropertyValuePageReqVO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/PropertyValuePageReqVO.java deleted file mode 100755 index 5308c42d1..000000000 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/propertyvalue/vo/PropertyValuePageReqVO.java +++ /dev/null @@ -1,34 +0,0 @@ -package cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo; - -import lombok.*; -import java.util.*; -import io.swagger.annotations.*; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import org.springframework.format.annotation.DateTimeFormat; - -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; - -@ApiModel("管理后台 - 规格值分页 Request VO") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class PropertyValuePageReqVO extends PageParam { - - @ApiModelProperty(value = "规格键id") - private Long propertyId; - - @ApiModelProperty(value = "规格值名字") - private String name; - - @ApiModelProperty(value = "状态: 1 开启 ,2 禁用") - private Integer status; - - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - @ApiModelProperty(value = "开始创建时间") - private Date beginCreateTime; - - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - @ApiModelProperty(value = "结束创建时间") - private Date endCreateTime; - -} 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 new file mode 100644 index 000000000..c44cdc841 --- /dev/null +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/property/ProductPropertyConvert.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.product.convert.property; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; + +import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; +import cn.iocoder.yudao.module.product.controller.admin.property.vo.*; + +/** + * 规格名称 Convert + * + * @author 芋道源码 + */ +@Mapper +public interface ProductPropertyConvert { + + ProductPropertyConvert INSTANCE = Mappers.getMapper(ProductPropertyConvert.class); + + ProductPropertyDO convert(ProductPropertyCreateReqVO bean); + + ProductPropertyDO convert(ProductPropertyUpdateReqVO bean); + + ProductPropertyRespVO convert(ProductPropertyDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + + List convertList02(List list); + +} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/property/PropertyConvert.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/property/PropertyConvert.java deleted file mode 100755 index 520d7235e..000000000 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/property/PropertyConvert.java +++ /dev/null @@ -1,34 +0,0 @@ -package cn.iocoder.yudao.module.product.convert.property; - -import java.util.*; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; - -import org.mapstruct.Mapper; -import org.mapstruct.factory.Mappers; -import cn.iocoder.yudao.module.product.controller.admin.property.vo.*; -import cn.iocoder.yudao.module.product.dal.dataobject.property.PropertyDO; - -/** - * 规格名称 Convert - * - * @author 芋道源码 - */ -@Mapper -public interface PropertyConvert { - - PropertyConvert INSTANCE = Mappers.getMapper(PropertyConvert.class); - - PropertyDO convert(PropertyCreateReqVO bean); - - PropertyDO convert(PropertyUpdateReqVO bean); - - PropertyRespVO convert(PropertyDO bean); - - List convertList(List list); - - PageResult convertPage(PageResult page); - - List convertList02(List list); - -} 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 new file mode 100644 index 000000000..730ce1cf4 --- /dev/null +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/propertyvalue/ProductPropertyValueConvert.java @@ -0,0 +1,34 @@ +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.dal.dataobject.propertyvalue.ProductPropertyValueDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; +import cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo.*; + +/** + * 规格值 Convert + * + * @author 芋道源码 + */ +@Mapper +public interface ProductPropertyValueConvert { + + ProductPropertyValueConvert INSTANCE = Mappers.getMapper(ProductPropertyValueConvert.class); + + ProductPropertyValueDO convert(ProductPropertyValueCreateReqVO bean); + + ProductPropertyValueDO convert(ProductPropertyValueUpdateReqVO bean); + + ProductPropertyValueRespVO convert(ProductPropertyValueDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + + List convertList03(List list); + +} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/propertyvalue/PropertyValueConvert.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/propertyvalue/PropertyValueConvert.java deleted file mode 100755 index 58ec93069..000000000 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/propertyvalue/PropertyValueConvert.java +++ /dev/null @@ -1,34 +0,0 @@ -package cn.iocoder.yudao.module.product.convert.propertyvalue; - -import java.util.*; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; - -import org.mapstruct.Mapper; -import org.mapstruct.factory.Mappers; -import cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo.*; -import cn.iocoder.yudao.module.product.dal.dataobject.propertyvalue.PropertyValueDO; - -/** - * 规格值 Convert - * - * @author 芋道源码 - */ -@Mapper -public interface PropertyValueConvert { - - PropertyValueConvert INSTANCE = Mappers.getMapper(PropertyValueConvert.class); - - PropertyValueDO convert(PropertyValueCreateReqVO bean); - - PropertyValueDO convert(PropertyValueUpdateReqVO bean); - - PropertyValueRespVO convert(PropertyValueDO bean); - - List convertList(List list); - - PageResult convertPage(PageResult page); - - List convertList02(List list); - -} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/PropertyDO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/ProductPropertyDO.java old mode 100755 new mode 100644 similarity index 82% rename from yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/PropertyDO.java rename to yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/ProductPropertyDO.java index 7ff368800..5255c36ed --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/PropertyDO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/ProductPropertyDO.java @@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.*; -// TODO @franky:每个表名,都加个 Product 前缀哈。 /** * 规格名称 DO * @@ -21,7 +20,7 @@ import lombok.*; @Builder @NoArgsConstructor @AllArgsConstructor -public class PropertyDO extends BaseDO { +public class ProductPropertyDO extends BaseDO { /** * 主键 @@ -35,7 +34,7 @@ public class PropertyDO extends BaseDO { /** * 状态: 0 开启 ,1 禁用 * - * TODO @franky:加个 枚举 {@link CommonStatusEnum} ,这样就能更好的知道 + * {@link CommonStatusEnum} */ private Integer status; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/propertyvalue/PropertyValueDO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/propertyvalue/ProductPropertyValueDO.java old mode 100755 new mode 100644 similarity index 86% rename from yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/propertyvalue/PropertyValueDO.java rename to yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/propertyvalue/ProductPropertyValueDO.java index 083c4a485..2dd1e80b6 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/propertyvalue/PropertyValueDO.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/propertyvalue/ProductPropertyValueDO.java @@ -1,7 +1,7 @@ package cn.iocoder.yudao.module.product.dal.dataobject.propertyvalue; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; -import cn.iocoder.yudao.module.product.dal.dataobject.property.PropertyDO; +import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -21,7 +21,7 @@ import lombok.*; @Builder @NoArgsConstructor @AllArgsConstructor -public class PropertyValueDO extends BaseDO { +public class ProductPropertyValueDO extends BaseDO { /** * 主键 @@ -31,7 +31,7 @@ public class PropertyValueDO extends BaseDO { /** * 规格键 id * - * TODO @franky:加个 关联 {@link PropertyDO#getId()} ,这样就能更好的知道 + * TODO @franky:加个 关联 {@link ProductPropertyDO#getId()} ,这样就能更好的知道 */ private Long propertyId; /** 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 new file mode 100644 index 000000000..079b21c84 --- /dev/null +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/property/ProductPropertyMapper.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.product.dal.mysql.property; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.product.controller.admin.property.vo.*; + +/** + * 规格名称 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface ProductPropertyMapper extends BaseMapperX { + + default PageResult selectPage(ProductPropertyPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(ProductPropertyDO::getName, reqVO.getName()) + .eqIfPresent(ProductPropertyDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(ProductPropertyDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()) + .orderByDesc(ProductPropertyDO::getId)); + } + + default List selectList(ProductPropertyExportReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .likeIfPresent(ProductPropertyDO::getName, reqVO.getName()) + .eqIfPresent(ProductPropertyDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(ProductPropertyDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()) + .orderByDesc(ProductPropertyDO::getId)); + } + +} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/property/PropertyMapper.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/property/PropertyMapper.java deleted file mode 100755 index 3adb3cb1f..000000000 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/property/PropertyMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package cn.iocoder.yudao.module.product.dal.mysql.property; - -import java.util.*; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.module.product.dal.dataobject.property.PropertyDO; -import org.apache.ibatis.annotations.Mapper; -import cn.iocoder.yudao.module.product.controller.admin.property.vo.*; - -/** - * 规格名称 Mapper - * - * @author 芋道源码 - */ -@Mapper -public interface PropertyMapper extends BaseMapperX { - - default PageResult selectPage(PropertyPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .likeIfPresent(PropertyDO::getName, reqVO.getName()) - .eqIfPresent(PropertyDO::getStatus, reqVO.getStatus()) - .betweenIfPresent(PropertyDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()) - .orderByDesc(PropertyDO::getId)); - } - - default List selectList(PropertyExportReqVO reqVO) { - return selectList(new LambdaQueryWrapperX() - .likeIfPresent(PropertyDO::getName, reqVO.getName()) - .eqIfPresent(PropertyDO::getStatus, reqVO.getStatus()) - .betweenIfPresent(PropertyDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()) - .orderByDesc(PropertyDO::getId)); - } - -} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/propertyvalue/ProductPropertyValueMapper.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/propertyvalue/ProductPropertyValueMapper.java new file mode 100644 index 000000000..760d22481 --- /dev/null +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/propertyvalue/ProductPropertyValueMapper.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.product.dal.mysql.propertyvalue; + +import java.util.*; + +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.product.dal.dataobject.propertyvalue.ProductPropertyValueDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 规格值 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface ProductPropertyValueMapper extends BaseMapperX { + + default List getPropertyValueListByPropertyId(List propertyIds){ + return selectList(new LambdaQueryWrapperX() + .inIfPresent(ProductPropertyValueDO::getPropertyId, propertyIds)); + } + + default void deletePropertyValueByPropertyId(Long propertyId){ + LambdaQueryWrapperX queryWrapperX = new LambdaQueryWrapperX<>(); + queryWrapperX.eq(ProductPropertyValueDO::getPropertyId, propertyId) + .eq(ProductPropertyValueDO::getDeleted, false); + delete(queryWrapperX); + } +} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/propertyvalue/PropertyValueMapper.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/propertyvalue/PropertyValueMapper.java deleted file mode 100755 index 305541783..000000000 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/propertyvalue/PropertyValueMapper.java +++ /dev/null @@ -1,38 +0,0 @@ -package cn.iocoder.yudao.module.product.dal.mysql.propertyvalue; - -import java.util.*; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.module.product.dal.dataobject.propertyvalue.PropertyValueDO; -import org.apache.ibatis.annotations.Mapper; -import cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo.*; - -/** - * 规格值 Mapper - * - * @author 芋道源码 - */ -@Mapper -public interface PropertyValueMapper extends BaseMapperX { - - default PageResult selectPage(PropertyValuePageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(PropertyValueDO::getPropertyId, reqVO.getPropertyId()) - .likeIfPresent(PropertyValueDO::getName, reqVO.getName()) - .eqIfPresent(PropertyValueDO::getStatus, reqVO.getStatus()) - .betweenIfPresent(PropertyValueDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()) - .orderByDesc(PropertyValueDO::getId)); - } - - default List selectList(PropertyValueExportReqVO reqVO) { - return selectList(new LambdaQueryWrapperX() - .eqIfPresent(PropertyValueDO::getPropertyId, reqVO.getPropertyId()) - .likeIfPresent(PropertyValueDO::getName, reqVO.getName()) - .eqIfPresent(PropertyValueDO::getStatus, reqVO.getStatus()) - .betweenIfPresent(PropertyValueDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()) - .orderByDesc(PropertyValueDO::getId)); - } - -} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/PropertyService.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyService.java old mode 100755 new mode 100644 similarity index 61% rename from yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/PropertyService.java rename to yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyService.java index e1e372a83..ec2622af5 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/PropertyService.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyService.java @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.product.service.property; import java.util.*; import javax.validation.*; import cn.iocoder.yudao.module.product.controller.admin.property.vo.*; -import cn.iocoder.yudao.module.product.dal.dataobject.property.PropertyDO; +import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; /** @@ -11,7 +11,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; * * @author 芋道源码 */ -public interface PropertyService { +public interface ProductPropertyService { /** * 创建规格名称 @@ -19,14 +19,14 @@ public interface PropertyService { * @param createReqVO 创建信息 * @return 编号 */ - Long createProperty(@Valid PropertyCreateReqVO createReqVO); + Long createProperty(@Valid ProductPropertyCreateReqVO createReqVO); /** * 更新规格名称 * * @param updateReqVO 更新信息 */ - void updateProperty(@Valid PropertyUpdateReqVO updateReqVO); + void updateProperty(@Valid ProductPropertyUpdateReqVO updateReqVO); /** * 删除规格名称 @@ -41,7 +41,7 @@ public interface PropertyService { * @param id 编号 * @return 规格名称 */ - PropertyDO getProperty(Long id); + ProductPropertyDO getProperty(Long id); /** * 获得规格名称列表 @@ -49,7 +49,7 @@ public interface PropertyService { * @param ids 编号 * @return 规格名称列表 */ - List getPropertyList(Collection ids); + List getPropertyList(Collection ids); /** * 获得规格名称分页 @@ -57,7 +57,7 @@ public interface PropertyService { * @param pageReqVO 分页查询 * @return 规格名称分页 */ - PageResult getPropertyPage(PropertyPageReqVO pageReqVO); + PageResult getPropertyPage(ProductPropertyPageReqVO pageReqVO); /** * 获得规格名称列表, 用于 Excel 导出 @@ -65,6 +65,15 @@ public interface PropertyService { * @param exportReqVO 查询条件 * @return 规格名称列表 */ - List getPropertyList(PropertyExportReqVO exportReqVO); + List getPropertyList(ProductPropertyExportReqVO exportReqVO); + + /** + * 获取属性及属性值列表 分页 + * @param pageReqVO + * @return + */ + PageResult getPropertyListPage(ProductPropertyPageReqVO pageReqVO); + + ProductPropertyRespVO getPropertyResp(Long id); } 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 new file mode 100644 index 000000000..b940b6799 --- /dev/null +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyServiceImpl.java @@ -0,0 +1,143 @@ +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.*; +import cn.iocoder.yudao.module.product.controller.admin.property.vo.ProductPropertyCreateReqVO; +import cn.iocoder.yudao.module.product.controller.admin.property.vo.ProductPropertyUpdateReqVO; +import cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo.ProductPropertyValueCreateReqVO; +import cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo.ProductPropertyValueRespVO; +import cn.iocoder.yudao.module.product.convert.property.ProductPropertyConvert; +import cn.iocoder.yudao.module.product.convert.propertyvalue.ProductPropertyValueConvert; +import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO; +import cn.iocoder.yudao.module.product.dal.dataobject.propertyvalue.ProductPropertyValueDO; +import cn.iocoder.yudao.module.product.dal.mysql.property.ProductPropertyMapper; +import cn.iocoder.yudao.module.product.service.propertyvalue.ProductPropertyValueService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.PROPERTY_NOT_EXISTS; + +/** + * 规格名称 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class ProductPropertyServiceImpl implements ProductPropertyService { + + @Resource + private ProductPropertyMapper productPropertyMapper; + + @Resource + private ProductPropertyValueService productPropertyValueService; + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createProperty(ProductPropertyCreateReqVO createReqVO) { + // 插入 + ProductPropertyDO property = ProductPropertyConvert.INSTANCE.convert(createReqVO); + productPropertyMapper.insert(property); + + //插入属性值 + List propertyValueList = createReqVO.getPropertyValueList(); + List productPropertyValueDOList = ProductPropertyValueConvert.INSTANCE.convertList03(propertyValueList); + productPropertyValueDOList.stream().forEach(x-> x.setPropertyId(property.getId())); + productPropertyValueService.batchInsert(productPropertyValueDOList); + // 返回 + return property.getId(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateProperty(ProductPropertyUpdateReqVO updateReqVO) { + // 校验存在 + this.validatePropertyExists(updateReqVO.getId()); + // 更新 + ProductPropertyDO updateObj = ProductPropertyConvert.INSTANCE.convert(updateReqVO); + productPropertyMapper.updateById(updateObj); + //更新属性值,先删后加 + productPropertyValueService.deletePropertyValueByPropertyId(updateReqVO.getId()); + List propertyValueList = updateReqVO.getPropertyValueList(); + List productPropertyValueDOList = ProductPropertyValueConvert.INSTANCE.convertList03(propertyValueList); + productPropertyValueDOList.stream().forEach(x-> x.setPropertyId(updateReqVO.getId())); + productPropertyValueService.batchInsert(productPropertyValueDOList); + } + + @Override + public void deleteProperty(Long id) { + // 校验存在 + this.validatePropertyExists(id); + // 删除 + productPropertyMapper.deleteById(id); + //同步删除属性值 + productPropertyValueService.deletePropertyValueByPropertyId(id); + } + + private void validatePropertyExists(Long id) { + if (productPropertyMapper.selectById(id) == null) { + throw exception(PROPERTY_NOT_EXISTS); + } + } + + @Override + public ProductPropertyDO getProperty(Long id) { + return productPropertyMapper.selectById(id); + } + + @Override + public List getPropertyList(Collection ids) { + return productPropertyMapper.selectBatchIds(ids); + } + + @Override + public PageResult getPropertyPage(ProductPropertyPageReqVO pageReqVO) { + return productPropertyMapper.selectPage(pageReqVO); + } + + @Override + public List getPropertyList(ProductPropertyExportReqVO exportReqVO) { + return productPropertyMapper.selectList(exportReqVO); + } + + @Override + public PageResult getPropertyListPage(ProductPropertyPageReqVO pageReqVO) { + //获取属性列表 + PageResult pageResult = productPropertyMapper.selectPage(pageReqVO); + PageResult propertyRespVOPageResult = ProductPropertyConvert.INSTANCE.convertPage(pageResult); + List propertyIds = propertyRespVOPageResult.getList().stream().map(x -> x.getId()).collect(Collectors.toList()); + + //获取属性值列表 + List productPropertyValueDOList = productPropertyValueService.getPropertyValueListByPropertyId(propertyIds); + List propertyValueRespVOList = ProductPropertyValueConvert.INSTANCE.convertList(productPropertyValueDOList); + //组装一对多 + propertyRespVOPageResult.getList().stream().forEach(x->{ + Long propertyId = x.getId(); + List valueDOList = propertyValueRespVOList.stream().filter(v -> v.getPropertyId().equals(propertyId)).collect(Collectors.toList()); + x.setPropertyValueList(valueDOList); + }); + return propertyRespVOPageResult; + } + + @Override + public ProductPropertyRespVO getPropertyResp(Long id) { + //查询规格 + ProductPropertyDO property = getProperty(id); + ProductPropertyRespVO propertyRespVO = ProductPropertyConvert.INSTANCE.convert(property); + //查询属性值 + List valueDOList = productPropertyValueService.getPropertyValueListByPropertyId(Arrays.asList(id)); + List propertyValueRespVOS = ProductPropertyValueConvert.INSTANCE.convertList(valueDOList); + //组装 + propertyRespVO.setPropertyValueList(propertyValueRespVOS); + return propertyRespVO; + } + +} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/PropertyServiceImpl.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/PropertyServiceImpl.java deleted file mode 100755 index ecb4543c3..000000000 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/PropertyServiceImpl.java +++ /dev/null @@ -1,85 +0,0 @@ -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.PropertyCreateReqVO; -import cn.iocoder.yudao.module.product.controller.admin.property.vo.PropertyExportReqVO; -import cn.iocoder.yudao.module.product.controller.admin.property.vo.PropertyPageReqVO; -import cn.iocoder.yudao.module.product.controller.admin.property.vo.PropertyUpdateReqVO; -import cn.iocoder.yudao.module.product.convert.property.PropertyConvert; -import cn.iocoder.yudao.module.product.dal.dataobject.property.PropertyDO; -import cn.iocoder.yudao.module.product.dal.mysql.property.PropertyMapper; -import org.springframework.stereotype.Service; -import org.springframework.validation.annotation.Validated; - -import javax.annotation.Resource; -import java.util.Collection; -import java.util.List; - -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.PROPERTY_NOT_EXISTS; - -/** - * 规格名称 Service 实现类 - * - * @author 芋道源码 - */ -@Service -@Validated -public class PropertyServiceImpl implements PropertyService { - - @Resource - private PropertyMapper propertyMapper; - - @Override - public Long createProperty(PropertyCreateReqVO createReqVO) { - // 插入 - PropertyDO property = PropertyConvert.INSTANCE.convert(createReqVO); - propertyMapper.insert(property); - // 返回 - return property.getId(); - } - - @Override - public void updateProperty(PropertyUpdateReqVO updateReqVO) { - // 校验存在 - this.validatePropertyExists(updateReqVO.getId()); - // 更新 - PropertyDO updateObj = PropertyConvert.INSTANCE.convert(updateReqVO); - propertyMapper.updateById(updateObj); - } - - @Override - public void deleteProperty(Long id) { - // 校验存在 - this.validatePropertyExists(id); - // 删除 - propertyMapper.deleteById(id); - } - - private void validatePropertyExists(Long id) { - if (propertyMapper.selectById(id) == null) { - throw exception(PROPERTY_NOT_EXISTS); - } - } - - @Override - public PropertyDO getProperty(Long id) { - return propertyMapper.selectById(id); - } - - @Override - public List getPropertyList(Collection ids) { - return propertyMapper.selectBatchIds(ids); - } - - @Override - public PageResult getPropertyPage(PropertyPageReqVO pageReqVO) { - return propertyMapper.selectPage(pageReqVO); - } - - @Override - public List getPropertyList(PropertyExportReqVO exportReqVO) { - return propertyMapper.selectList(exportReqVO); - } - -} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/propertyvalue/ProductProductPropertyValueServiceImpl.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/propertyvalue/ProductProductPropertyValueServiceImpl.java new file mode 100644 index 000000000..764f59c32 --- /dev/null +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/propertyvalue/ProductProductPropertyValueServiceImpl.java @@ -0,0 +1,88 @@ +package cn.iocoder.yudao.module.product.service.propertyvalue; + +import cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo.*; +import cn.iocoder.yudao.module.product.convert.propertyvalue.ProductPropertyValueConvert; +import cn.iocoder.yudao.module.product.dal.dataobject.propertyvalue.ProductPropertyValueDO; +import cn.iocoder.yudao.module.product.dal.mysql.propertyvalue.ProductPropertyValueMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.Collection; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.PROPERTY_VALUE_NOT_EXISTS; + +/** + * 规格值 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class ProductProductPropertyValueServiceImpl implements ProductPropertyValueService { + + @Resource + private ProductPropertyValueMapper productPropertyValueMapper; + + // TODO @franky:这个合并到 property 中。他们本身是在一起的哈。基本不存在只查询规格,而不查询规格值。 + + @Override + public Integer createPropertyValue(ProductPropertyValueCreateReqVO createReqVO) { + // 插入 + ProductPropertyValueDO propertyValue = ProductPropertyValueConvert.INSTANCE.convert(createReqVO); + productPropertyValueMapper.insert(propertyValue); + // 返回 + return propertyValue.getId(); + } + + @Override + public void updatePropertyValue(ProductPropertyValueUpdateReqVO updateReqVO) { + // 校验存在 + this.validatePropertyValueExists(updateReqVO.getId()); + // 更新 + ProductPropertyValueDO updateObj = ProductPropertyValueConvert.INSTANCE.convert(updateReqVO); + productPropertyValueMapper.updateById(updateObj); + } + + @Override + public void deletePropertyValue(Integer id) { + // 校验存在 + this.validatePropertyValueExists(id); + // 删除 + productPropertyValueMapper.deleteById(id); + } + + private void validatePropertyValueExists(Integer id) { + if (productPropertyValueMapper.selectById(id) == null) { + throw exception(PROPERTY_VALUE_NOT_EXISTS); + } + } + + @Override + public ProductPropertyValueDO getPropertyValue(Integer id) { + return productPropertyValueMapper.selectById(id); + } + + @Override + public List getPropertyValueList(Collection ids) { + return productPropertyValueMapper.selectBatchIds(ids); + } + + @Override + public void batchInsert(List propertyValues) { + productPropertyValueMapper.insertBatch(propertyValues); + } + + @Override + public List getPropertyValueListByPropertyId(List propertyIds) { + return productPropertyValueMapper.getPropertyValueListByPropertyId(propertyIds); + } + + @Override + public void deletePropertyValueByPropertyId(Long propertyId) { + productPropertyValueMapper.deletePropertyValueByPropertyId(propertyId); + } + +} diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/propertyvalue/PropertyValueService.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/propertyvalue/ProductPropertyValueService.java old mode 100755 new mode 100644 similarity index 51% rename from yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/propertyvalue/PropertyValueService.java rename to yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/propertyvalue/ProductPropertyValueService.java index 0e04e4bd9..a2bab1cf7 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/propertyvalue/PropertyValueService.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/propertyvalue/ProductPropertyValueService.java @@ -3,15 +3,14 @@ package cn.iocoder.yudao.module.product.service.propertyvalue; import java.util.*; import javax.validation.*; import cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo.*; -import cn.iocoder.yudao.module.product.dal.dataobject.propertyvalue.PropertyValueDO; -import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.product.dal.dataobject.propertyvalue.ProductPropertyValueDO; /** * 规格值 Service 接口 * * @author 芋道源码 */ -public interface PropertyValueService { +public interface ProductPropertyValueService { /** * 创建规格值 @@ -19,14 +18,14 @@ public interface PropertyValueService { * @param createReqVO 创建信息 * @return 编号 */ - Integer createPropertyValue(@Valid PropertyValueCreateReqVO createReqVO); + Integer createPropertyValue(@Valid ProductPropertyValueCreateReqVO createReqVO); /** * 更新规格值 * * @param updateReqVO 更新信息 */ - void updatePropertyValue(@Valid PropertyValueUpdateReqVO updateReqVO); + void updatePropertyValue(@Valid ProductPropertyValueUpdateReqVO updateReqVO); /** * 删除规格值 @@ -41,7 +40,7 @@ public interface PropertyValueService { * @param id 编号 * @return 规格值 */ - PropertyValueDO getPropertyValue(Integer id); + ProductPropertyValueDO getPropertyValue(Integer id); /** * 获得规格值列表 @@ -49,22 +48,24 @@ public interface PropertyValueService { * @param ids 编号 * @return 规格值列表 */ - List getPropertyValueList(Collection ids); + List getPropertyValueList(Collection ids); /** - * 获得规格值分页 - * - * @param pageReqVO 分页查询 - * @return 规格值分页 + * 批量插入属性值 + * @param propertyValues */ - PageResult getPropertyValuePage(PropertyValuePageReqVO pageReqVO); + void batchInsert(List propertyValues); /** - * 获得规格值列表, 用于 Excel 导出 - * - * @param exportReqVO 查询条件 - * @return 规格值列表 + * 根据属性id查询 + * @param propertyIds + * @return */ - List getPropertyValueList(PropertyValueExportReqVO exportReqVO); + List getPropertyValueListByPropertyId(List propertyIds); + /** + * 根据属性id 删除 + * @param propertyId + */ + void deletePropertyValueByPropertyId(Long propertyId); } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/propertyvalue/PropertyValueServiceImpl.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/propertyvalue/PropertyValueServiceImpl.java deleted file mode 100755 index d647d3e2e..000000000 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/propertyvalue/PropertyValueServiceImpl.java +++ /dev/null @@ -1,87 +0,0 @@ -package cn.iocoder.yudao.module.product.service.propertyvalue; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo.PropertyValueCreateReqVO; -import cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo.PropertyValueExportReqVO; -import cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo.PropertyValuePageReqVO; -import cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo.PropertyValueUpdateReqVO; -import cn.iocoder.yudao.module.product.convert.propertyvalue.PropertyValueConvert; -import cn.iocoder.yudao.module.product.dal.dataobject.propertyvalue.PropertyValueDO; -import cn.iocoder.yudao.module.product.dal.mysql.propertyvalue.PropertyValueMapper; -import org.springframework.stereotype.Service; -import org.springframework.validation.annotation.Validated; - -import javax.annotation.Resource; -import java.util.Collection; -import java.util.List; - -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.PROPERTY_VALUE_NOT_EXISTS; - -/** - * 规格值 Service 实现类 - * - * @author 芋道源码 - */ -@Service -@Validated -public class PropertyValueServiceImpl implements PropertyValueService { - - @Resource - private PropertyValueMapper propertyValueMapper; - - // TODO @franky:这个合并到 property 中。他们本身是在一起的哈。基本不存在只查询规格,而不查询规格值。 - - @Override - public Integer createPropertyValue(PropertyValueCreateReqVO createReqVO) { - // 插入 - PropertyValueDO propertyValue = PropertyValueConvert.INSTANCE.convert(createReqVO); - propertyValueMapper.insert(propertyValue); - // 返回 - return propertyValue.getId(); - } - - @Override - public void updatePropertyValue(PropertyValueUpdateReqVO updateReqVO) { - // 校验存在 - this.validatePropertyValueExists(updateReqVO.getId()); - // 更新 - PropertyValueDO updateObj = PropertyValueConvert.INSTANCE.convert(updateReqVO); - propertyValueMapper.updateById(updateObj); - } - - @Override - public void deletePropertyValue(Integer id) { - // 校验存在 - this.validatePropertyValueExists(id); - // 删除 - propertyValueMapper.deleteById(id); - } - - private void validatePropertyValueExists(Integer id) { - if (propertyValueMapper.selectById(id) == null) { - throw exception(PROPERTY_VALUE_NOT_EXISTS); - } - } - - @Override - public PropertyValueDO getPropertyValue(Integer id) { - return propertyValueMapper.selectById(id); - } - - @Override - public List getPropertyValueList(Collection ids) { - return propertyValueMapper.selectBatchIds(ids); - } - - @Override - public PageResult getPropertyValuePage(PropertyValuePageReqVO pageReqVO) { - return propertyValueMapper.selectPage(pageReqVO); - } - - @Override - public List getPropertyValueList(PropertyValueExportReqVO exportReqVO) { - return propertyValueMapper.selectList(exportReqVO); - } - -} 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 46881fe88..6fd222341 100644 --- a/yudao-ui-admin/src/views/mall/product/property/index.vue +++ b/yudao-ui-admin/src/views/mall/product/property/index.vue @@ -24,16 +24,17 @@ 新增 - - 导出 - + + +