mirror of
https://gitee.com/huangge1199_admin/vue-pro.git
synced 2024-11-26 01:01:52 +08:00
✨ MALL:简化 SPU 属性 的 VO 转化
This commit is contained in:
parent
f6c8159dac
commit
bf966cd610
@ -2,8 +2,11 @@ package cn.iocoder.yudao.module.product.controller.admin.property;
|
|||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.*;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
import cn.iocoder.yudao.module.product.convert.property.ProductPropertyConvert;
|
import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyRespVO;
|
||||||
|
import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertySaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO;
|
||||||
import cn.iocoder.yudao.module.product.service.property.ProductPropertyService;
|
import cn.iocoder.yudao.module.product.service.property.ProductPropertyService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
@ -14,8 +17,6 @@ import org.springframework.security.access.prepost.PreAuthorize;
|
|||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
@Tag(name = "管理后台 - 商品属性项")
|
@Tag(name = "管理后台 - 商品属性项")
|
||||||
@ -30,14 +31,14 @@ public class ProductPropertyController {
|
|||||||
@PostMapping("/create")
|
@PostMapping("/create")
|
||||||
@Operation(summary = "创建属性项")
|
@Operation(summary = "创建属性项")
|
||||||
@PreAuthorize("@ss.hasPermission('product:property:create')")
|
@PreAuthorize("@ss.hasPermission('product:property:create')")
|
||||||
public CommonResult<Long> createProperty(@Valid @RequestBody ProductPropertyCreateReqVO createReqVO) {
|
public CommonResult<Long> createProperty(@Valid @RequestBody ProductPropertySaveReqVO createReqVO) {
|
||||||
return success(productPropertyService.createProperty(createReqVO));
|
return success(productPropertyService.createProperty(createReqVO));
|
||||||
}
|
}
|
||||||
|
|
||||||
@PutMapping("/update")
|
@PutMapping("/update")
|
||||||
@Operation(summary = "更新属性项")
|
@Operation(summary = "更新属性项")
|
||||||
@PreAuthorize("@ss.hasPermission('product:property:update')")
|
@PreAuthorize("@ss.hasPermission('product:property:update')")
|
||||||
public CommonResult<Boolean> updateProperty(@Valid @RequestBody ProductPropertyUpdateReqVO updateReqVO) {
|
public CommonResult<Boolean> updateProperty(@Valid @RequestBody ProductPropertySaveReqVO updateReqVO) {
|
||||||
productPropertyService.updateProperty(updateReqVO);
|
productPropertyService.updateProperty(updateReqVO);
|
||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
@ -56,21 +57,16 @@ public class ProductPropertyController {
|
|||||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||||
@PreAuthorize("@ss.hasPermission('product:property:query')")
|
@PreAuthorize("@ss.hasPermission('product:property:query')")
|
||||||
public CommonResult<ProductPropertyRespVO> getProperty(@RequestParam("id") Long id) {
|
public CommonResult<ProductPropertyRespVO> getProperty(@RequestParam("id") Long id) {
|
||||||
return success(ProductPropertyConvert.INSTANCE.convert(productPropertyService.getProperty(id)));
|
ProductPropertyDO property = productPropertyService.getProperty(id);
|
||||||
}
|
return success(BeanUtils.toBean(property, ProductPropertyRespVO.class));
|
||||||
|
|
||||||
@GetMapping("/list")
|
|
||||||
@Operation(summary = "获得属性项列表")
|
|
||||||
@PreAuthorize("@ss.hasPermission('product:property:query')")
|
|
||||||
public CommonResult<List<ProductPropertyRespVO>> getPropertyList(@Valid ProductPropertyListReqVO listReqVO) {
|
|
||||||
return success(ProductPropertyConvert.INSTANCE.convertList(productPropertyService.getPropertyList(listReqVO)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
@Operation(summary = "获得属性项分页")
|
@Operation(summary = "获得属性项分页")
|
||||||
@PreAuthorize("@ss.hasPermission('product:property:query')")
|
@PreAuthorize("@ss.hasPermission('product:property:query')")
|
||||||
public CommonResult<PageResult<ProductPropertyRespVO>> getPropertyPage(@Valid ProductPropertyPageReqVO pageVO) {
|
public CommonResult<PageResult<ProductPropertyRespVO>> getPropertyPage(@Valid ProductPropertyPageReqVO pageVO) {
|
||||||
return success(ProductPropertyConvert.INSTANCE.convertPage(productPropertyService.getPropertyPage(pageVO)));
|
PageResult<ProductPropertyDO> pageResult = productPropertyService.getPropertyPage(pageVO);
|
||||||
|
return success(BeanUtils.toBean(pageResult, ProductPropertyRespVO.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,22 +2,21 @@ package cn.iocoder.yudao.module.product.controller.admin.property;
|
|||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueCreateReqVO;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValuePageReqVO;
|
import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValuePageReqVO;
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueRespVO;
|
import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueRespVO;
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueUpdateReqVO;
|
import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.product.convert.property.ProductPropertyValueConvert;
|
import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyValueDO;
|
||||||
import cn.iocoder.yudao.module.product.service.property.ProductPropertyValueService;
|
import cn.iocoder.yudao.module.product.service.property.ProductPropertyValueService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import jakarta.validation.Valid;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import jakarta.validation.Valid;
|
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
@Tag(name = "管理后台 - 商品属性值")
|
@Tag(name = "管理后台 - 商品属性值")
|
||||||
@ -32,14 +31,14 @@ public class ProductPropertyValueController {
|
|||||||
@PostMapping("/create")
|
@PostMapping("/create")
|
||||||
@Operation(summary = "创建属性值")
|
@Operation(summary = "创建属性值")
|
||||||
@PreAuthorize("@ss.hasPermission('product:property:create')")
|
@PreAuthorize("@ss.hasPermission('product:property:create')")
|
||||||
public CommonResult<Long> createPropertyValue(@Valid @RequestBody ProductPropertyValueCreateReqVO createReqVO) {
|
public CommonResult<Long> createPropertyValue(@Valid @RequestBody ProductPropertyValueSaveReqVO createReqVO) {
|
||||||
return success(productPropertyValueService.createPropertyValue(createReqVO));
|
return success(productPropertyValueService.createPropertyValue(createReqVO));
|
||||||
}
|
}
|
||||||
|
|
||||||
@PutMapping("/update")
|
@PutMapping("/update")
|
||||||
@Operation(summary = "更新属性值")
|
@Operation(summary = "更新属性值")
|
||||||
@PreAuthorize("@ss.hasPermission('product:property:update')")
|
@PreAuthorize("@ss.hasPermission('product:property:update')")
|
||||||
public CommonResult<Boolean> updatePropertyValue(@Valid @RequestBody ProductPropertyValueUpdateReqVO updateReqVO) {
|
public CommonResult<Boolean> updatePropertyValue(@Valid @RequestBody ProductPropertyValueSaveReqVO updateReqVO) {
|
||||||
productPropertyValueService.updatePropertyValue(updateReqVO);
|
productPropertyValueService.updatePropertyValue(updateReqVO);
|
||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
@ -58,13 +57,16 @@ public class ProductPropertyValueController {
|
|||||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||||
@PreAuthorize("@ss.hasPermission('product:property:query')")
|
@PreAuthorize("@ss.hasPermission('product:property:query')")
|
||||||
public CommonResult<ProductPropertyValueRespVO> getPropertyValue(@RequestParam("id") Long id) {
|
public CommonResult<ProductPropertyValueRespVO> getPropertyValue(@RequestParam("id") Long id) {
|
||||||
return success(ProductPropertyValueConvert.INSTANCE.convert(productPropertyValueService.getPropertyValue(id)));
|
ProductPropertyValueDO value = productPropertyValueService.getPropertyValue(id);
|
||||||
|
return success(BeanUtils.toBean(value, ProductPropertyValueRespVO.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
@Operation(summary = "获得属性值分页")
|
@Operation(summary = "获得属性值分页")
|
||||||
@PreAuthorize("@ss.hasPermission('product:property:query')")
|
@PreAuthorize("@ss.hasPermission('product:property:query')")
|
||||||
public CommonResult<PageResult<ProductPropertyValueRespVO>> getPropertyValuePage(@Valid ProductPropertyValuePageReqVO pageVO) {
|
public CommonResult<PageResult<ProductPropertyValueRespVO>> getPropertyValuePage(@Valid ProductPropertyValuePageReqVO pageVO) {
|
||||||
return success(ProductPropertyValueConvert.INSTANCE.convertPage(productPropertyValueService.getPropertyValuePage(pageVO)));
|
PageResult<ProductPropertyValueDO> pageResult = productPropertyValueService.getPropertyValuePage(pageVO);
|
||||||
|
return success(BeanUtils.toBean(pageResult, ProductPropertyValueRespVO.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
package cn.iocoder.yudao.module.product.controller.admin.property.vo.property;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
import lombok.ToString;
|
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 属性项创建 Request VO")
|
|
||||||
@Data
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@ToString(callSuper = true)
|
|
||||||
public class ProductPropertyCreateReqVO extends ProductPropertyBaseVO {
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,17 +0,0 @@
|
|||||||
package cn.iocoder.yudao.module.product.controller.admin.property.vo.property;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.ToString;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 属性项 List Request VO")
|
|
||||||
@Data
|
|
||||||
@ToString(callSuper = true)
|
|
||||||
public class ProductPropertyListReqVO {
|
|
||||||
|
|
||||||
@Schema(description = "属性名称", example = "颜色")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
}
|
|
@ -2,20 +2,22 @@ package cn.iocoder.yudao.module.product.controller.admin.property.vo.property;
|
|||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
import lombok.ToString;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 属性项 Response VO")
|
@Schema(description = "管理后台 - 属性项 Response VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
public class ProductPropertyRespVO {
|
||||||
@ToString(callSuper = true)
|
|
||||||
public class ProductPropertyRespVO extends ProductPropertyBaseVO {
|
|
||||||
|
|
||||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "颜色")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@Schema(description = "备注", example = "颜色")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
@ -1,16 +1,15 @@
|
|||||||
package cn.iocoder.yudao.module.product.controller.admin.property.vo.property;
|
package cn.iocoder.yudao.module.product.controller.admin.property.vo.property;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotBlank;
|
@Schema(description = "管理后台 - 属性项新增/更新 Request VO")
|
||||||
|
|
||||||
/**
|
|
||||||
* 商品属性项 Base VO,提供给添加、修改、详细的子 VO 使用
|
|
||||||
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
|
|
||||||
*/
|
|
||||||
@Data
|
@Data
|
||||||
public class ProductPropertyBaseVO {
|
public class ProductPropertySaveReqVO {
|
||||||
|
|
||||||
|
@Schema(description = "主键", example = "1")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "颜色")
|
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "颜色")
|
||||||
@NotBlank(message = "名称不能为空")
|
@NotBlank(message = "名称不能为空")
|
@ -1,20 +0,0 @@
|
|||||||
package cn.iocoder.yudao.module.product.controller.admin.property.vo.property;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
import lombok.ToString;
|
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 属性项更新 Request VO")
|
|
||||||
@Data
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@ToString(callSuper = true)
|
|
||||||
public class ProductPropertyUpdateReqVO extends ProductPropertyBaseVO {
|
|
||||||
|
|
||||||
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
|
||||||
@NotNull(message = "主键不能为空")
|
|
||||||
private Long id;
|
|
||||||
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
package cn.iocoder.yudao.module.product.controller.admin.property.vo.value;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
import lombok.ToString;
|
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 商品属性值创建 Request VO")
|
|
||||||
@Data
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@ToString(callSuper = true)
|
|
||||||
public class ProductPropertyValueCreateReqVO extends ProductPropertyValueBaseVO {
|
|
||||||
|
|
||||||
}
|
|
@ -1,21 +1,30 @@
|
|||||||
package cn.iocoder.yudao.module.product.controller.admin.property.vo.value;
|
package cn.iocoder.yudao.module.product.controller.admin.property.vo.value;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import jakarta.validation.constraints.NotEmpty;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
import lombok.ToString;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 商品属性值 Response VO")
|
@Schema(description = "管理后台 - 商品属性值 Response VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
public class ProductPropertyValueRespVO {
|
||||||
@ToString(callSuper = true)
|
|
||||||
public class ProductPropertyValueRespVO extends ProductPropertyValueBaseVO {
|
|
||||||
|
|
||||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
|
@Schema(description = "主键", example = "1024")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "属性项的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
||||||
|
@NotNull(message = "属性项的编号不能为空")
|
||||||
|
private Long propertyId;
|
||||||
|
|
||||||
|
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "红色")
|
||||||
|
@NotEmpty(message = "名称名字不能为空")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@Schema(description = "备注", example = "颜色")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
@Schema(description = "创建时间")
|
@Schema(description = "创建时间")
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
@ -1,17 +1,16 @@
|
|||||||
package cn.iocoder.yudao.module.product.controller.admin.property.vo.value;
|
package cn.iocoder.yudao.module.product.controller.admin.property.vo.value;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotEmpty;
|
import jakarta.validation.constraints.NotEmpty;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
/**
|
@Schema(description = "管理后台 - 商品属性值新增/更新 Request VO")
|
||||||
* 属性值 Base VO,提供给添加、修改、详细的子 VO 使用
|
|
||||||
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
|
|
||||||
*/
|
|
||||||
@Data
|
@Data
|
||||||
public class ProductPropertyValueBaseVO {
|
public class ProductPropertyValueSaveReqVO {
|
||||||
|
|
||||||
|
@Schema(description = "主键", example = "1024")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
@Schema(description = "属性项的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
@Schema(description = "属性项的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
||||||
@NotNull(message = "属性项的编号不能为空")
|
@NotNull(message = "属性项的编号不能为空")
|
@ -1,20 +0,0 @@
|
|||||||
package cn.iocoder.yudao.module.product.controller.admin.property.vo.value;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
import lombok.ToString;
|
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 商品属性值更新 Request VO")
|
|
||||||
@Data
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@ToString(callSuper = true)
|
|
||||||
public class ProductPropertyValueUpdateReqVO extends ProductPropertyValueBaseVO {
|
|
||||||
|
|
||||||
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
|
||||||
@NotNull(message = "主键不能为空")
|
|
||||||
private Long id;
|
|
||||||
|
|
||||||
}
|
|
@ -1,33 +0,0 @@
|
|||||||
package cn.iocoder.yudao.module.product.convert.property;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
||||||
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.dal.dataobject.property.ProductPropertyDO;
|
|
||||||
import org.mapstruct.Mapper;
|
|
||||||
import org.mapstruct.factory.Mappers;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 属性项 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<ProductPropertyRespVO> convertList(List<ProductPropertyDO> list);
|
|
||||||
|
|
||||||
PageResult<ProductPropertyRespVO> convertPage(PageResult<ProductPropertyDO> page);
|
|
||||||
|
|
||||||
}
|
|
@ -1,33 +0,0 @@
|
|||||||
package cn.iocoder.yudao.module.product.convert.property;
|
|
||||||
|
|
||||||
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;
|
|
||||||
import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyValueDO;
|
|
||||||
import org.mapstruct.Mapper;
|
|
||||||
import org.mapstruct.factory.Mappers;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 属性值 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<ProductPropertyValueRespVO> convertList(List<ProductPropertyValueDO> list);
|
|
||||||
|
|
||||||
PageResult<ProductPropertyValueRespVO> convertPage(PageResult<ProductPropertyValueDO> page);
|
|
||||||
|
|
||||||
}
|
|
@ -3,13 +3,10 @@ package cn.iocoder.yudao.module.product.dal.mysql.property;
|
|||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyListReqVO;
|
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyPageReqVO;
|
import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyPageReqVO;
|
||||||
import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO;
|
import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface ProductPropertyMapper extends BaseMapperX<ProductPropertyDO> {
|
public interface ProductPropertyMapper extends BaseMapperX<ProductPropertyDO> {
|
||||||
|
|
||||||
@ -24,9 +21,4 @@ public interface ProductPropertyMapper extends BaseMapperX<ProductPropertyDO> {
|
|||||||
return selectOne(ProductPropertyDO::getName, name);
|
return selectOne(ProductPropertyDO::getName, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
default List<ProductPropertyDO> selectList(ProductPropertyListReqVO listReqVO) {
|
|
||||||
return selectList(new LambdaQueryWrapperX<ProductPropertyDO>()
|
|
||||||
.eqIfPresent(ProductPropertyDO::getName, listReqVO.getName()));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -22,14 +22,14 @@ public interface ProductPropertyService {
|
|||||||
* @param createReqVO 创建信息
|
* @param createReqVO 创建信息
|
||||||
* @return 编号
|
* @return 编号
|
||||||
*/
|
*/
|
||||||
Long createProperty(@Valid ProductPropertyCreateReqVO createReqVO);
|
Long createProperty(@Valid ProductPropertySaveReqVO createReqVO);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新属性项
|
* 更新属性项
|
||||||
*
|
*
|
||||||
* @param updateReqVO 更新信息
|
* @param updateReqVO 更新信息
|
||||||
*/
|
*/
|
||||||
void updateProperty(@Valid ProductPropertyUpdateReqVO updateReqVO);
|
void updateProperty(@Valid ProductPropertySaveReqVO updateReqVO);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除属性项
|
* 删除属性项
|
||||||
@ -38,14 +38,6 @@ public interface ProductPropertyService {
|
|||||||
*/
|
*/
|
||||||
void deleteProperty(Long id);
|
void deleteProperty(Long id);
|
||||||
|
|
||||||
/**
|
|
||||||
* 获得属性项列表
|
|
||||||
*
|
|
||||||
* @param listReqVO 集合查询
|
|
||||||
* @return 属性项集合
|
|
||||||
*/
|
|
||||||
List<ProductPropertyDO> getPropertyList(ProductPropertyListReqVO listReqVO);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取属性名称分页
|
* 获取属性名称分页
|
||||||
*
|
*
|
||||||
|
@ -2,20 +2,18 @@ package cn.iocoder.yudao.module.product.service.property;
|
|||||||
|
|
||||||
import cn.hutool.core.util.ObjUtil;
|
import cn.hutool.core.util.ObjUtil;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyCreateReqVO;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyListReqVO;
|
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyPageReqVO;
|
import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyPageReqVO;
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyUpdateReqVO;
|
import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertySaveReqVO;
|
||||||
import cn.iocoder.yudao.module.product.convert.property.ProductPropertyConvert;
|
|
||||||
import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO;
|
import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO;
|
||||||
import cn.iocoder.yudao.module.product.dal.mysql.property.ProductPropertyMapper;
|
import cn.iocoder.yudao.module.product.dal.mysql.property.ProductPropertyMapper;
|
||||||
import cn.iocoder.yudao.module.product.service.sku.ProductSkuService;
|
import cn.iocoder.yudao.module.product.service.sku.ProductSkuService;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -43,7 +41,7 @@ public class ProductPropertyServiceImpl implements ProductPropertyService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Long createProperty(ProductPropertyCreateReqVO createReqVO) {
|
public Long createProperty(ProductPropertySaveReqVO createReqVO) {
|
||||||
// 如果已经添加过该属性项,直接返回
|
// 如果已经添加过该属性项,直接返回
|
||||||
ProductPropertyDO dbProperty = productPropertyMapper.selectByName(createReqVO.getName());
|
ProductPropertyDO dbProperty = productPropertyMapper.selectByName(createReqVO.getName());
|
||||||
if (dbProperty != null) {
|
if (dbProperty != null) {
|
||||||
@ -51,7 +49,7 @@ public class ProductPropertyServiceImpl implements ProductPropertyService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 插入
|
// 插入
|
||||||
ProductPropertyDO property = ProductPropertyConvert.INSTANCE.convert(createReqVO);
|
ProductPropertyDO property = BeanUtils.toBean(createReqVO, ProductPropertyDO.class);
|
||||||
productPropertyMapper.insert(property);
|
productPropertyMapper.insert(property);
|
||||||
// 返回
|
// 返回
|
||||||
return property.getId();
|
return property.getId();
|
||||||
@ -59,17 +57,17 @@ public class ProductPropertyServiceImpl implements ProductPropertyService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateProperty(ProductPropertyUpdateReqVO updateReqVO) {
|
public void updateProperty(ProductPropertySaveReqVO updateReqVO) {
|
||||||
validatePropertyExists(updateReqVO.getId());
|
validatePropertyExists(updateReqVO.getId());
|
||||||
// 校验名字重复
|
// 校验名字重复
|
||||||
ProductPropertyDO productPropertyDO = productPropertyMapper.selectByName(updateReqVO.getName());
|
ProductPropertyDO property = productPropertyMapper.selectByName(updateReqVO.getName());
|
||||||
if (productPropertyDO != null &&
|
if (property != null &&
|
||||||
ObjUtil.notEqual(productPropertyDO.getId(), updateReqVO.getId())) {
|
ObjUtil.notEqual(property.getId(), updateReqVO.getId())) {
|
||||||
throw exception(PROPERTY_EXISTS);
|
throw exception(PROPERTY_EXISTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新
|
// 更新
|
||||||
ProductPropertyDO updateObj = ProductPropertyConvert.INSTANCE.convert(updateReqVO);
|
ProductPropertyDO updateObj = BeanUtils.toBean(updateReqVO, ProductPropertyDO.class);
|
||||||
productPropertyMapper.updateById(updateObj);
|
productPropertyMapper.updateById(updateObj);
|
||||||
// 更新 sku 相关属性
|
// 更新 sku 相关属性
|
||||||
productSkuService.updateSkuProperty(updateObj.getId(), updateObj.getName());
|
productSkuService.updateSkuProperty(updateObj.getId(), updateObj.getName());
|
||||||
@ -96,11 +94,6 @@ public class ProductPropertyServiceImpl implements ProductPropertyService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<ProductPropertyDO> getPropertyList(ProductPropertyListReqVO listReqVO) {
|
|
||||||
return productPropertyMapper.selectList(listReqVO);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<ProductPropertyDO> getPropertyPage(ProductPropertyPageReqVO pageReqVO) {
|
public PageResult<ProductPropertyDO> getPropertyPage(ProductPropertyPageReqVO pageReqVO) {
|
||||||
return productPropertyMapper.selectPage(pageReqVO);
|
return productPropertyMapper.selectPage(pageReqVO);
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
package cn.iocoder.yudao.module.product.service.property;
|
package cn.iocoder.yudao.module.product.service.property;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
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.ProductPropertyValuePageReqVO;
|
import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValuePageReqVO;
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueUpdateReqVO;
|
import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyValueDO;
|
import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyValueDO;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@ -23,14 +22,14 @@ public interface ProductPropertyValueService {
|
|||||||
* @param createReqVO 创建信息
|
* @param createReqVO 创建信息
|
||||||
* @return 编号
|
* @return 编号
|
||||||
*/
|
*/
|
||||||
Long createPropertyValue(ProductPropertyValueCreateReqVO createReqVO);
|
Long createPropertyValue(ProductPropertyValueSaveReqVO createReqVO);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新属性值
|
* 更新属性值
|
||||||
*
|
*
|
||||||
* @param updateReqVO 更新信息
|
* @param updateReqVO 更新信息
|
||||||
*/
|
*/
|
||||||
void updatePropertyValue(ProductPropertyValueUpdateReqVO updateReqVO);
|
void updatePropertyValue(ProductPropertyValueSaveReqVO updateReqVO);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除属性值
|
* 删除属性值
|
||||||
|
@ -1,18 +1,17 @@
|
|||||||
package cn.iocoder.yudao.module.product.service.property;
|
package cn.iocoder.yudao.module.product.service.property;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueCreateReqVO;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValuePageReqVO;
|
import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValuePageReqVO;
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueUpdateReqVO;
|
import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.product.convert.property.ProductPropertyValueConvert;
|
|
||||||
import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyValueDO;
|
import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyValueDO;
|
||||||
import cn.iocoder.yudao.module.product.dal.mysql.property.ProductPropertyValueMapper;
|
import cn.iocoder.yudao.module.product.dal.mysql.property.ProductPropertyValueMapper;
|
||||||
import cn.iocoder.yudao.module.product.service.sku.ProductSkuService;
|
import cn.iocoder.yudao.module.product.service.sku.ProductSkuService;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -32,16 +31,12 @@ public class ProductPropertyValueServiceImpl implements ProductPropertyValueServ
|
|||||||
@Resource
|
@Resource
|
||||||
private ProductPropertyValueMapper productPropertyValueMapper;
|
private ProductPropertyValueMapper productPropertyValueMapper;
|
||||||
|
|
||||||
@Resource
|
|
||||||
@Lazy // 延迟加载,避免循环依赖
|
|
||||||
private ProductPropertyService productPropertyService;
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
@Lazy // 延迟加载,避免循环依赖
|
@Lazy // 延迟加载,避免循环依赖
|
||||||
private ProductSkuService productSkuService;
|
private ProductSkuService productSkuService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createPropertyValue(ProductPropertyValueCreateReqVO createReqVO) {
|
public Long createPropertyValue(ProductPropertyValueSaveReqVO createReqVO) {
|
||||||
// 如果已经添加过该属性值,直接返回
|
// 如果已经添加过该属性值,直接返回
|
||||||
ProductPropertyValueDO dbValue = productPropertyValueMapper.selectByName(
|
ProductPropertyValueDO dbValue = productPropertyValueMapper.selectByName(
|
||||||
createReqVO.getPropertyId(), createReqVO.getName());
|
createReqVO.getPropertyId(), createReqVO.getName());
|
||||||
@ -50,23 +45,23 @@ public class ProductPropertyValueServiceImpl implements ProductPropertyValueServ
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 新增
|
// 新增
|
||||||
ProductPropertyValueDO value = ProductPropertyValueConvert.INSTANCE.convert(createReqVO);
|
ProductPropertyValueDO value = BeanUtils.toBean(createReqVO, ProductPropertyValueDO.class);
|
||||||
productPropertyValueMapper.insert(value);
|
productPropertyValueMapper.insert(value);
|
||||||
return value.getId();
|
return value.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updatePropertyValue(ProductPropertyValueUpdateReqVO updateReqVO) {
|
public void updatePropertyValue(ProductPropertyValueSaveReqVO updateReqVO) {
|
||||||
validatePropertyValueExists(updateReqVO.getId());
|
validatePropertyValueExists(updateReqVO.getId());
|
||||||
// 校验名字唯一
|
// 校验名字唯一
|
||||||
ProductPropertyValueDO productPropertyValueDO = productPropertyValueMapper.selectByName
|
ProductPropertyValueDO value = productPropertyValueMapper.selectByName
|
||||||
(updateReqVO.getPropertyId(), updateReqVO.getName());
|
(updateReqVO.getPropertyId(), updateReqVO.getName());
|
||||||
if (productPropertyValueDO != null && !productPropertyValueDO.getId().equals(updateReqVO.getId())) {
|
if (value != null && !value.getId().equals(updateReqVO.getId())) {
|
||||||
throw exception(PROPERTY_VALUE_EXISTS);
|
throw exception(PROPERTY_VALUE_EXISTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新
|
// 更新
|
||||||
ProductPropertyValueDO updateObj = ProductPropertyValueConvert.INSTANCE.convert(updateReqVO);
|
ProductPropertyValueDO updateObj = BeanUtils.toBean(updateReqVO, ProductPropertyValueDO.class);
|
||||||
productPropertyValueMapper.updateById(updateObj);
|
productPropertyValueMapper.updateById(updateObj);
|
||||||
// 更新 sku 相关属性
|
// 更新 sku 相关属性
|
||||||
productSkuService.updateSkuPropertyValue(updateObj.getId(), updateObj.getName());
|
productSkuService.updateSkuPropertyValue(updateObj.getId(), updateObj.getName());
|
||||||
|
Loading…
Reference in New Issue
Block a user