Commit 854ba3315ccfc0080850dcac6e81bee03c3e17fc
1 parent
7b98a3f3
marge master
Showing
335 changed files
with
16 additions
and
21122 deletions
Too many changes.
To preserve performance only 100 of 335 files are displayed.
yudao-module-mall/pom.xml deleted
| 1 | -<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | -<project xmlns="http://maven.apache.org/POM/4.0.0" | |
| 3 | - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 4 | - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
| 5 | - <parent> | |
| 6 | - <artifactId>yudao</artifactId> | |
| 7 | - <groupId>cn.iocoder.boot</groupId> | |
| 8 | - <version>${revision}</version> | |
| 9 | - </parent> | |
| 10 | - <modelVersion>4.0.0</modelVersion> | |
| 11 | - | |
| 12 | - <artifactId>yudao-module-mall</artifactId> | |
| 13 | - <packaging>pom</packaging> | |
| 14 | - | |
| 15 | - <name>${project.artifactId}</name> | |
| 16 | - | |
| 17 | - <description> | |
| 18 | - 商城大模块,由 product 商品、promotion 营销、trade 交易等组成 | |
| 19 | - </description> | |
| 20 | - <modules> | |
| 21 | - <module>yudao-module-promotion-api</module> | |
| 22 | - <module>yudao-module-promotion-biz</module> | |
| 23 | - <module>yudao-module-product-api</module> | |
| 24 | - <module>yudao-module-product-biz</module> | |
| 25 | - <module>yudao-module-trade-api</module> | |
| 26 | - <module>yudao-module-trade-biz</module> | |
| 27 | - </modules> | |
| 28 | - | |
| 29 | -</project> |
yudao-module-mall/yudao-module-product-api/pom.xml deleted
| 1 | -<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | -<project xmlns="http://maven.apache.org/POM/4.0.0" | |
| 3 | - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 4 | - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
| 5 | - <modelVersion>4.0.0</modelVersion> | |
| 6 | - <parent> | |
| 7 | - <groupId>cn.iocoder.boot</groupId> | |
| 8 | - <artifactId>yudao-module-mall</artifactId> | |
| 9 | - <version>${revision}</version> | |
| 10 | - </parent> | |
| 11 | - | |
| 12 | - <artifactId>yudao-module-product-api</artifactId> | |
| 13 | - <packaging>jar</packaging> | |
| 14 | - | |
| 15 | - <name>${project.artifactId}</name> | |
| 16 | - <description> | |
| 17 | - product 模块 API,暴露给其它模块调用 | |
| 18 | - </description> | |
| 19 | - | |
| 20 | - <dependencies> | |
| 21 | - <dependency> | |
| 22 | - <groupId>cn.iocoder.boot</groupId> | |
| 23 | - <artifactId>yudao-common</artifactId> | |
| 24 | - </dependency> | |
| 25 | - | |
| 26 | - <!-- 参数校验 --> | |
| 27 | - <dependency> | |
| 28 | - <groupId>org.springframework.boot</groupId> | |
| 29 | - <artifactId>spring-boot-starter-validation</artifactId> | |
| 30 | - <optional>true</optional> | |
| 31 | - </dependency> | |
| 32 | - </dependencies> | |
| 33 | - | |
| 34 | -</project> |
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/package-info.java deleted
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/property/ProductPropertyValueApi.java deleted
| 1 | -package cn.iocoder.yudao.module.product.api.property; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.module.product.api.property.dto.ProductPropertyValueDetailRespDTO; | |
| 4 | - | |
| 5 | -import java.util.Collection; | |
| 6 | -import java.util.List; | |
| 7 | - | |
| 8 | -/** | |
| 9 | - * 商品属性值 API 接口 | |
| 10 | - * | |
| 11 | - * @author 芋道源码 | |
| 12 | - */ | |
| 13 | -public interface ProductPropertyValueApi { | |
| 14 | - | |
| 15 | - /** | |
| 16 | - * 根据编号数组,获得属性值列表 | |
| 17 | - * | |
| 18 | - * @param ids 编号数组 | |
| 19 | - * @return 属性值明细列表 | |
| 20 | - */ | |
| 21 | - List<ProductPropertyValueDetailRespDTO> getPropertyValueDetailList(Collection<Long> ids); | |
| 22 | - | |
| 23 | -} |
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/property/dto/ProductPropertyValueDetailRespDTO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.api.property.dto; | |
| 2 | - | |
| 3 | -import lombok.Data; | |
| 4 | - | |
| 5 | -/** | |
| 6 | - * 商品属性项的明细 Response DTO | |
| 7 | - * | |
| 8 | - * @author 芋道源码 | |
| 9 | - */ | |
| 10 | -@Data | |
| 11 | -public class ProductPropertyValueDetailRespDTO { | |
| 12 | - | |
| 13 | - /** | |
| 14 | - * 属性的编号 | |
| 15 | - */ | |
| 16 | - private Long propertyId; | |
| 17 | - | |
| 18 | - /** | |
| 19 | - * 属性的名称 | |
| 20 | - */ | |
| 21 | - private String propertyName; | |
| 22 | - | |
| 23 | - /** | |
| 24 | - * 属性值的编号 | |
| 25 | - */ | |
| 26 | - private Long valueId; | |
| 27 | - | |
| 28 | - /** | |
| 29 | - * 属性值的名称 | |
| 30 | - */ | |
| 31 | - private String valueName; | |
| 32 | - | |
| 33 | -} |
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/sku/ProductSkuApi.java deleted
| 1 | -package cn.iocoder.yudao.module.product.api.sku; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuUpdateStockReqDTO; | |
| 4 | -import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO; | |
| 5 | - | |
| 6 | -import java.util.Collection; | |
| 7 | -import java.util.List; | |
| 8 | - | |
| 9 | -/** | |
| 10 | - * 商品 SKU API 接口 | |
| 11 | - * | |
| 12 | - * @author LeeYan9 | |
| 13 | - * @since 2022-08-26 | |
| 14 | - */ | |
| 15 | -public interface ProductSkuApi { | |
| 16 | - | |
| 17 | - /** | |
| 18 | - * 查询 SKU 信息 | |
| 19 | - * | |
| 20 | - * @param id SKU 编号 | |
| 21 | - * @return SKU 信息 | |
| 22 | - */ | |
| 23 | - ProductSkuRespDTO getSku(Long id); | |
| 24 | - | |
| 25 | - /** | |
| 26 | - * 批量查询 SKU 数组 | |
| 27 | - * | |
| 28 | - * @param ids SKU 编号列表 | |
| 29 | - * @return SKU 数组 | |
| 30 | - */ | |
| 31 | - List<ProductSkuRespDTO> getSkuList(Collection<Long> ids); | |
| 32 | - | |
| 33 | - /** | |
| 34 | - * 更新 SKU 库存 | |
| 35 | - * | |
| 36 | - * @param updateStockReqDTO 更新请求 | |
| 37 | - */ | |
| 38 | - void updateSkuStock(ProductSkuUpdateStockReqDTO updateStockReqDTO); | |
| 39 | - | |
| 40 | -} |
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/sku/dto/ProductSkuRespDTO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.api.sku.dto; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | |
| 4 | -import lombok.Data; | |
| 5 | - | |
| 6 | -import java.util.List; | |
| 7 | - | |
| 8 | -/** | |
| 9 | - * 商品 SKU 信息 Response DTO | |
| 10 | - * | |
| 11 | - * @author LeeYan9 | |
| 12 | - * @since 2022-08-26 | |
| 13 | - */ | |
| 14 | -@Data | |
| 15 | -public class ProductSkuRespDTO { | |
| 16 | - | |
| 17 | - /** | |
| 18 | - * 商品 SKU 编号,自增 | |
| 19 | - */ | |
| 20 | - private Long id; | |
| 21 | - /** | |
| 22 | - * SPU 编号 | |
| 23 | - */ | |
| 24 | - private Long spuId; | |
| 25 | - /** | |
| 26 | - * SPU 名字 | |
| 27 | - */ | |
| 28 | - private String spuName; | |
| 29 | - | |
| 30 | - /** | |
| 31 | - * 属性数组,JSON 格式 | |
| 32 | - */ | |
| 33 | - private List<Property> properties; | |
| 34 | - /** | |
| 35 | - * 销售价格,单位:分 | |
| 36 | - */ | |
| 37 | - private Integer price; | |
| 38 | - /** | |
| 39 | - * 市场价,单位:分 | |
| 40 | - */ | |
| 41 | - private Integer marketPrice; | |
| 42 | - /** | |
| 43 | - * 成本价,单位:分 | |
| 44 | - */ | |
| 45 | - private Integer costPrice; | |
| 46 | - /** | |
| 47 | - * SKU 的条形码 | |
| 48 | - */ | |
| 49 | - private String barCode; | |
| 50 | - /** | |
| 51 | - * 图片地址 | |
| 52 | - */ | |
| 53 | - private String picUrl; | |
| 54 | - /** | |
| 55 | - * SKU 状态 | |
| 56 | - * <p> | |
| 57 | - * 枚举 {@link CommonStatusEnum} | |
| 58 | - */ | |
| 59 | - private Integer status; | |
| 60 | - /** | |
| 61 | - * 库存 | |
| 62 | - */ | |
| 63 | - private Integer stock; | |
| 64 | - /** | |
| 65 | - * 预警预存 | |
| 66 | - */ | |
| 67 | - private Integer warnStock; | |
| 68 | - /** | |
| 69 | - * 商品重量,单位:kg 千克 | |
| 70 | - */ | |
| 71 | - private Double weight; | |
| 72 | - /** | |
| 73 | - * 商品体积,单位:m^3 平米 | |
| 74 | - */ | |
| 75 | - private Double volume; | |
| 76 | - | |
| 77 | - /** | |
| 78 | - * 商品属性 | |
| 79 | - */ | |
| 80 | - @Data | |
| 81 | - public static class Property { | |
| 82 | - | |
| 83 | - /** | |
| 84 | - * 属性编号 | |
| 85 | - */ | |
| 86 | - private Long propertyId; | |
| 87 | - /** | |
| 88 | - * 属性值编号 | |
| 89 | - */ | |
| 90 | - private Long valueId; | |
| 91 | - | |
| 92 | - } | |
| 93 | - | |
| 94 | - | |
| 95 | -} |
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/sku/dto/ProductSkuUpdateStockReqDTO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.api.sku.dto; | |
| 2 | - | |
| 3 | -import lombok.AllArgsConstructor; | |
| 4 | -import lombok.Data; | |
| 5 | -import lombok.NoArgsConstructor; | |
| 6 | - | |
| 7 | -import javax.validation.constraints.NotNull; | |
| 8 | -import java.util.List; | |
| 9 | - | |
| 10 | -/** | |
| 11 | - * 商品 SKU 更新库存 Request DTO | |
| 12 | - * | |
| 13 | - * @author LeeYan9 | |
| 14 | - * @since 2022-08-26 | |
| 15 | - */ | |
| 16 | -@Data | |
| 17 | -@NoArgsConstructor | |
| 18 | -@AllArgsConstructor | |
| 19 | -public class ProductSkuUpdateStockReqDTO { | |
| 20 | - | |
| 21 | - /** | |
| 22 | - * 商品 SKU | |
| 23 | - */ | |
| 24 | - @NotNull(message = "商品 SKU 不能为空") | |
| 25 | - private List<Item> items; | |
| 26 | - | |
| 27 | - @Data | |
| 28 | - public static class Item { | |
| 29 | - | |
| 30 | - /** | |
| 31 | - * 商品 SKU 编号 | |
| 32 | - */ | |
| 33 | - @NotNull(message = "商品 SKU 编号不能为空") | |
| 34 | - private Long id; | |
| 35 | - | |
| 36 | - /** | |
| 37 | - * 库存变化数量 | |
| 38 | - * | |
| 39 | - * 正数:增加库存 | |
| 40 | - * 负数:扣减库存 | |
| 41 | - */ | |
| 42 | - @NotNull(message = "库存变化数量不能为空") | |
| 43 | - private Integer incrCount; | |
| 44 | - | |
| 45 | - } | |
| 46 | - | |
| 47 | -} |
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/spu/ProductSpuApi.java deleted
| 1 | -package cn.iocoder.yudao.module.product.api.spu; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO; | |
| 4 | - | |
| 5 | -import java.util.Collection; | |
| 6 | -import java.util.List; | |
| 7 | - | |
| 8 | -/** | |
| 9 | - * 商品 SPU API 接口 | |
| 10 | - * | |
| 11 | - * @author LeeYan9 | |
| 12 | - * @since 2022-08-26 | |
| 13 | - */ | |
| 14 | -public interface ProductSpuApi { | |
| 15 | - | |
| 16 | - /** | |
| 17 | - * 批量查询 SPU 数组 | |
| 18 | - * | |
| 19 | - * @param ids SPU 编号列表 | |
| 20 | - * @return SPU 数组 | |
| 21 | - */ | |
| 22 | - List<ProductSpuRespDTO> getSpuList(Collection<Long> ids); | |
| 23 | - | |
| 24 | -} |
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/spu/dto/ProductSpuRespDTO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.api.spu.dto; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO; | |
| 4 | -import cn.iocoder.yudao.module.product.enums.spu.ProductSpuSpecTypeEnum; | |
| 5 | -import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum; | |
| 6 | -import lombok.Data; | |
| 7 | - | |
| 8 | -import java.util.List; | |
| 9 | - | |
| 10 | -// TODO @LeeYan9: ProductSpuRespDTO | |
| 11 | -/** | |
| 12 | - * 商品 SPU 信息 Response DTO | |
| 13 | - * | |
| 14 | - * @author LeeYan9 | |
| 15 | - * @since 2022-08-26 | |
| 16 | - */ | |
| 17 | -@Data | |
| 18 | -public class ProductSpuRespDTO { | |
| 19 | - | |
| 20 | - /** | |
| 21 | - * 商品 SPU 编号,自增 | |
| 22 | - */ | |
| 23 | - private Long id; | |
| 24 | - | |
| 25 | - // ========== 基本信息 ========= | |
| 26 | - | |
| 27 | - /** | |
| 28 | - * 商品名称 | |
| 29 | - */ | |
| 30 | - private String name; | |
| 31 | - /** | |
| 32 | - * 商品编码 | |
| 33 | - */ | |
| 34 | - private String code; | |
| 35 | - /** | |
| 36 | - * 促销语 | |
| 37 | - */ | |
| 38 | - private String sellPoint; | |
| 39 | - /** | |
| 40 | - * 商品详情 | |
| 41 | - */ | |
| 42 | - private String description; | |
| 43 | - /** | |
| 44 | - * 商品分类编号 | |
| 45 | - */ | |
| 46 | - private Long categoryId; | |
| 47 | - /** | |
| 48 | - * 商品品牌编号 | |
| 49 | - */ | |
| 50 | - private Long brandId; | |
| 51 | - /** | |
| 52 | - * 商品图片的数组 | |
| 53 | - * <p> | |
| 54 | - * 1. 第一张图片将作为商品主图,支持同时上传多张图; | |
| 55 | - * 2. 建议使用尺寸 800x800 像素以上、大小不超过 1M 的正方形图片; | |
| 56 | - * 3. 至少 1 张,最多上传 10 张 | |
| 57 | - */ | |
| 58 | - private List<String> picUrls; | |
| 59 | - /** | |
| 60 | - * 商品视频 | |
| 61 | - */ | |
| 62 | - private String videoUrl; | |
| 63 | - | |
| 64 | - /** | |
| 65 | - * 排序字段 | |
| 66 | - */ | |
| 67 | - private Integer sort; | |
| 68 | - /** | |
| 69 | - * 商品状态 | |
| 70 | - * <p> | |
| 71 | - * 枚举 {@link ProductSpuStatusEnum} | |
| 72 | - */ | |
| 73 | - private Integer status; | |
| 74 | - | |
| 75 | - // ========== SKU 相关字段 ========= | |
| 76 | - | |
| 77 | - /** | |
| 78 | - * 规格类型 | |
| 79 | - * <p> | |
| 80 | - * 枚举 {@link ProductSpuSpecTypeEnum} | |
| 81 | - */ | |
| 82 | - private Integer specType; | |
| 83 | - /** | |
| 84 | - * 最小价格,单位使用:分 | |
| 85 | - * <p> | |
| 86 | - * 基于其对应的 {@link ProductSkuRespDTO#getPrice()} 最小值 | |
| 87 | - */ | |
| 88 | - private Integer minPrice; | |
| 89 | - /** | |
| 90 | - * 最大价格,单位使用:分 | |
| 91 | - * <p> | |
| 92 | - * 基于其对应的 {@link ProductSkuRespDTO#getPrice()} 最大值 | |
| 93 | - */ | |
| 94 | - private Integer maxPrice; | |
| 95 | - /** | |
| 96 | - * 市场价,单位使用:分 | |
| 97 | - * <p> | |
| 98 | - * 基于其对应的 {@link ProductSkuRespDTO#getMarketPrice()} 最大值 | |
| 99 | - */ | |
| 100 | - private Integer marketPrice; | |
| 101 | - /** | |
| 102 | - * 总库存 | |
| 103 | - * <p> | |
| 104 | - * 基于其对应的 {@link ProductSkuRespDTO#getStock()} 求和 | |
| 105 | - */ | |
| 106 | - private Integer totalStock; | |
| 107 | - /** | |
| 108 | - * 是否展示库存 | |
| 109 | - */ | |
| 110 | - private Boolean showStock; | |
| 111 | - | |
| 112 | - // ========== 统计相关字段 ========= | |
| 113 | - | |
| 114 | - /** | |
| 115 | - * 商品销量 | |
| 116 | - */ | |
| 117 | - private Integer salesCount; | |
| 118 | - /** | |
| 119 | - * 虚拟销量 | |
| 120 | - */ | |
| 121 | - private Integer virtualSalesCount; | |
| 122 | - /** | |
| 123 | - * 商品点击量 | |
| 124 | - */ | |
| 125 | - private Integer clickCount; | |
| 126 | - | |
| 127 | -} |
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/ErrorCodeConstants.java deleted
| 1 | -package cn.iocoder.yudao.module.product.enums; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.exception.ErrorCode; | |
| 4 | - | |
| 5 | -/** | |
| 6 | - * Product 错误码枚举类 | |
| 7 | - * | |
| 8 | - * product 系统,使用 1-008-000-000 段 | |
| 9 | - */ | |
| 10 | -public interface ErrorCodeConstants { | |
| 11 | - | |
| 12 | - // ========== 商品分类相关 1008001000 ============ | |
| 13 | - ErrorCode CATEGORY_NOT_EXISTS = new ErrorCode(1008001000, "商品分类不存在"); | |
| 14 | - ErrorCode CATEGORY_PARENT_NOT_EXISTS = new ErrorCode(1008001001, "父分类不存在"); | |
| 15 | - ErrorCode CATEGORY_PARENT_NOT_FIRST_LEVEL = new ErrorCode(1008001002, "父分类不能是二级分类"); | |
| 16 | - ErrorCode CATEGORY_EXISTS_CHILDREN = new ErrorCode(1008001003, "存在子分类,无法删除"); | |
| 17 | - ErrorCode CATEGORY_DISABLED = new ErrorCode(1008001004, "商品分类({})已禁用,无法使用"); | |
| 18 | - | |
| 19 | - // ========== 商品品牌相关编号 1008002000 ========== | |
| 20 | - ErrorCode BRAND_NOT_EXISTS = new ErrorCode(1008002000, "品牌不存在"); | |
| 21 | - ErrorCode BRAND_DISABLED = new ErrorCode(1008002001, "品牌不存在"); | |
| 22 | - ErrorCode BRAND_NAME_EXISTS = new ErrorCode(1008002002, "品牌名称已存在"); | |
| 23 | - | |
| 24 | - // ========== 商品属性项 1008003000 ========== | |
| 25 | - ErrorCode PROPERTY_NOT_EXISTS = new ErrorCode(1008003000, "属性项不存在"); | |
| 26 | - ErrorCode PROPERTY_EXISTS = new ErrorCode(1008003001, "属性项的名称已存在"); | |
| 27 | - ErrorCode PROPERTY_DELETE_FAIL_VALUE_EXISTS = new ErrorCode(1008003002, "属性项下存在属性值,无法删除"); | |
| 28 | - | |
| 29 | - // ========== 商品属性值 1008004000 ========== | |
| 30 | - ErrorCode PROPERTY_VALUE_NOT_EXISTS = new ErrorCode(1008004000, "属性值不存在"); | |
| 31 | - ErrorCode PROPERTY_VALUE_EXISTS = new ErrorCode(1008004001, "属性值的名称已存在"); | |
| 32 | - | |
| 33 | - // ========== 商品 SPU 1008005000 ========== | |
| 34 | - ErrorCode SPU_NOT_EXISTS = new ErrorCode(1008005000, "商品 SPU 不存在"); | |
| 35 | - ErrorCode SPU_SAVE_FAIL_CATEGORY_LEVEL_ERROR = new ErrorCode(1008005001, "商品分类不正确,原因:必须使用第三级的商品分类下"); | |
| 36 | - ErrorCode SPU_NOT_ENABLE = new ErrorCode(1008005002, "商品 SPU 不处于上架状态"); | |
| 37 | - | |
| 38 | - // ========== 商品 SKU 1008006000 ========== | |
| 39 | - ErrorCode SKU_NOT_EXISTS = new ErrorCode(1008006000, "商品 SKU 不存在"); | |
| 40 | - ErrorCode SKU_PROPERTIES_DUPLICATED = new ErrorCode(1008006001, "商品 SKU 的属性组合存在重复"); | |
| 41 | - ErrorCode SPU_ATTR_NUMBERS_MUST_BE_EQUALS = new ErrorCode(1008006002, "一个 SPU 下的每个 SKU,其属性项必须一致"); | |
| 42 | - ErrorCode SPU_SKU_NOT_DUPLICATE = new ErrorCode(1008006003, "一个 SPU 下的每个 SKU,必须不重复"); | |
| 43 | - ErrorCode SKU_STOCK_NOT_ENOUGH = new ErrorCode(1008006004, "商品 SKU 库存不足"); | |
| 44 | - | |
| 45 | -} |
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/comment/ProductCommentAuditStatusEnum.java deleted
| 1 | -package cn.iocoder.yudao.module.product.enums.comment; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.core.IntArrayValuable; | |
| 4 | -import lombok.AllArgsConstructor; | |
| 5 | -import lombok.Getter; | |
| 6 | - | |
| 7 | -import java.util.Arrays; | |
| 8 | - | |
| 9 | -/** | |
| 10 | - * 商品评论的审批状态枚举 | |
| 11 | - * | |
| 12 | - * @author 芋道源码 | |
| 13 | - */ | |
| 14 | -@Getter | |
| 15 | -@AllArgsConstructor | |
| 16 | -public enum ProductCommentAuditStatusEnum implements IntArrayValuable { | |
| 17 | - | |
| 18 | - NONE(1, "待审核"), | |
| 19 | - APPROVE(2, "审批通过"), | |
| 20 | - REJECT(2, "审批不通过"),; | |
| 21 | - | |
| 22 | - public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(ProductCommentAuditStatusEnum::getStatus).toArray(); | |
| 23 | - | |
| 24 | - /** | |
| 25 | - * 审批状态 | |
| 26 | - */ | |
| 27 | - private final Integer status; | |
| 28 | - /** | |
| 29 | - * 状态名 | |
| 30 | - */ | |
| 31 | - private final String name; | |
| 32 | - | |
| 33 | - @Override | |
| 34 | - public int[] array() { | |
| 35 | - return ARRAYS; | |
| 36 | - } | |
| 37 | - | |
| 38 | -} |
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/delivery/DeliveryTypeEnum.java deleted
| 1 | -package cn.iocoder.yudao.module.product.enums.delivery; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.core.IntArrayValuable; | |
| 4 | -import lombok.AllArgsConstructor; | |
| 5 | -import lombok.Getter; | |
| 6 | - | |
| 7 | -import java.util.Arrays; | |
| 8 | - | |
| 9 | -/** | |
| 10 | - * 配送方式枚举 | |
| 11 | - * | |
| 12 | - * @author 芋道源码 | |
| 13 | - */ | |
| 14 | -@Getter | |
| 15 | -@AllArgsConstructor | |
| 16 | -public enum DeliveryTypeEnum implements IntArrayValuable { | |
| 17 | - | |
| 18 | - // TODO 芋艿:英文单词,需要再想下; | |
| 19 | - EXPRESS(1, "快递发货"), | |
| 20 | - USER(2, "用户自提"),; | |
| 21 | - | |
| 22 | - public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(DeliveryTypeEnum::getMode).toArray(); | |
| 23 | - | |
| 24 | - /** | |
| 25 | - * 配送方式 | |
| 26 | - */ | |
| 27 | - private final Integer mode; | |
| 28 | - /** | |
| 29 | - * 状态名 | |
| 30 | - */ | |
| 31 | - private final String name; | |
| 32 | - | |
| 33 | - @Override | |
| 34 | - public int[] array() { | |
| 35 | - return ARRAYS; | |
| 36 | - } | |
| 37 | - | |
| 38 | -} |
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/group/ProductGroupStyleEnum.java deleted
| 1 | -package cn.iocoder.yudao.module.product.enums.group; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.core.IntArrayValuable; | |
| 4 | -import lombok.AllArgsConstructor; | |
| 5 | -import lombok.Getter; | |
| 6 | - | |
| 7 | -import java.util.Arrays; | |
| 8 | - | |
| 9 | -/** | |
| 10 | - * 商品分组的样式枚举 | |
| 11 | - * | |
| 12 | - * @author 芋道源码 | |
| 13 | - */ | |
| 14 | -@Getter | |
| 15 | -@AllArgsConstructor | |
| 16 | -public enum ProductGroupStyleEnum implements IntArrayValuable { | |
| 17 | - | |
| 18 | - ONE(1, "每列一个"), | |
| 19 | - TWO(2, "每列两个"), | |
| 20 | - THREE(2, "每列三个"),; | |
| 21 | - | |
| 22 | - public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(ProductGroupStyleEnum::getStyle).toArray(); | |
| 23 | - | |
| 24 | - /** | |
| 25 | - * 列表样式 | |
| 26 | - */ | |
| 27 | - private final Integer style; | |
| 28 | - /** | |
| 29 | - * 状态名 | |
| 30 | - */ | |
| 31 | - private final String name; | |
| 32 | - | |
| 33 | - @Override | |
| 34 | - public int[] array() { | |
| 35 | - return ARRAYS; | |
| 36 | - } | |
| 37 | - | |
| 38 | -} |
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/spu/ProductSpuSpecTypeEnum.java deleted
| 1 | -package cn.iocoder.yudao.module.product.enums.spu; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.core.IntArrayValuable; | |
| 4 | -import lombok.AllArgsConstructor; | |
| 5 | -import lombok.Getter; | |
| 6 | - | |
| 7 | -import java.util.Arrays; | |
| 8 | - | |
| 9 | -/** | |
| 10 | - * 商品 SPU 规格类型 | |
| 11 | - * | |
| 12 | - * @author 芋道源码 | |
| 13 | - */ | |
| 14 | -@Getter | |
| 15 | -@AllArgsConstructor | |
| 16 | -public enum ProductSpuSpecTypeEnum implements IntArrayValuable { | |
| 17 | - | |
| 18 | - RECYCLE(1, "统一规格"), | |
| 19 | - DISABLE(2, "多规格"); | |
| 20 | - | |
| 21 | - public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(ProductSpuSpecTypeEnum::getType).toArray(); | |
| 22 | - | |
| 23 | - /** | |
| 24 | - * 规格类型 | |
| 25 | - */ | |
| 26 | - private final Integer type; | |
| 27 | - /** | |
| 28 | - * 规格名称 | |
| 29 | - */ | |
| 30 | - private final String name; | |
| 31 | - | |
| 32 | - @Override | |
| 33 | - public int[] array() { | |
| 34 | - return ARRAYS; | |
| 35 | - } | |
| 36 | - | |
| 37 | -} |
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/spu/ProductSpuStatusEnum.java deleted
| 1 | -package cn.iocoder.yudao.module.product.enums.spu; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.core.IntArrayValuable; | |
| 4 | -import lombok.AllArgsConstructor; | |
| 5 | -import lombok.Getter; | |
| 6 | - | |
| 7 | -import java.util.Arrays; | |
| 8 | - | |
| 9 | -/** | |
| 10 | - * 商品 SPU 状态 | |
| 11 | - * | |
| 12 | - * @author 芋道源码 | |
| 13 | - */ | |
| 14 | -@Getter | |
| 15 | -@AllArgsConstructor | |
| 16 | -public enum ProductSpuStatusEnum implements IntArrayValuable { | |
| 17 | - | |
| 18 | - RECYCLE(-1, "回收站"), | |
| 19 | - DISABLE(0, "下架"), | |
| 20 | - ENABLE(1, "上架"),; | |
| 21 | - | |
| 22 | - public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(ProductSpuStatusEnum::getStatus).toArray(); | |
| 23 | - | |
| 24 | - /** | |
| 25 | - * 状态 | |
| 26 | - */ | |
| 27 | - private final Integer status; | |
| 28 | - /** | |
| 29 | - * 状态名 | |
| 30 | - */ | |
| 31 | - private final String name; | |
| 32 | - | |
| 33 | - @Override | |
| 34 | - public int[] array() { | |
| 35 | - return ARRAYS; | |
| 36 | - } | |
| 37 | - | |
| 38 | - /** | |
| 39 | - * 判断是否处于【上架】状态 | |
| 40 | - * | |
| 41 | - * @param status 状态 | |
| 42 | - * @return 是否处于【上架】状态 | |
| 43 | - */ | |
| 44 | - public static boolean isEnable(Integer status) { | |
| 45 | - return ENABLE.getStatus().equals(status); | |
| 46 | - } | |
| 47 | - | |
| 48 | -} |
yudao-module-mall/yudao-module-product-biz/pom.xml deleted
| 1 | -<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | -<project xmlns="http://maven.apache.org/POM/4.0.0" | |
| 3 | - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 4 | - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
| 5 | - <parent> | |
| 6 | - <groupId>cn.iocoder.boot</groupId> | |
| 7 | - <artifactId>yudao-module-mall</artifactId> | |
| 8 | - <version>${revision}</version> | |
| 9 | - </parent> | |
| 10 | - <modelVersion>4.0.0</modelVersion> | |
| 11 | - <artifactId>yudao-module-product-biz</artifactId> | |
| 12 | - <packaging>jar</packaging> | |
| 13 | - | |
| 14 | - <name>${project.artifactId}</name> | |
| 15 | - <description> | |
| 16 | - product 模块,主要实现商品相关功能 | |
| 17 | - 例如:品牌、商品分类、spu、sku等功能。 | |
| 18 | - </description> | |
| 19 | - | |
| 20 | - <dependencies> | |
| 21 | - <dependency> | |
| 22 | - <groupId>cn.iocoder.boot</groupId> | |
| 23 | - <artifactId>yudao-module-product-api</artifactId> | |
| 24 | - <version>${revision}</version> | |
| 25 | - </dependency> | |
| 26 | - | |
| 27 | - <!-- 业务组件 --> | |
| 28 | - <dependency> | |
| 29 | - <groupId>cn.iocoder.boot</groupId> | |
| 30 | - <artifactId>yudao-spring-boot-starter-biz-operatelog</artifactId> | |
| 31 | - </dependency> | |
| 32 | - | |
| 33 | - <!-- Web 相关 --> | |
| 34 | - <dependency> | |
| 35 | - <groupId>cn.iocoder.boot</groupId> | |
| 36 | - <artifactId>yudao-spring-boot-starter-web</artifactId> | |
| 37 | - </dependency> | |
| 38 | - <dependency> | |
| 39 | - <groupId>cn.iocoder.boot</groupId> | |
| 40 | - <artifactId>yudao-spring-boot-starter-security</artifactId> | |
| 41 | - </dependency> | |
| 42 | - | |
| 43 | - <!-- DB 相关 --> | |
| 44 | - <dependency> | |
| 45 | - <groupId>cn.iocoder.boot</groupId> | |
| 46 | - <artifactId>yudao-spring-boot-starter-mybatis</artifactId> | |
| 47 | - </dependency> | |
| 48 | - | |
| 49 | - <!-- Test 测试相关 --> | |
| 50 | - <dependency> | |
| 51 | - <groupId>cn.iocoder.boot</groupId> | |
| 52 | - <artifactId>yudao-spring-boot-starter-test</artifactId> | |
| 53 | - </dependency> | |
| 54 | - | |
| 55 | - <!-- 工具类相关 --> | |
| 56 | - <dependency> | |
| 57 | - <groupId>cn.iocoder.boot</groupId> | |
| 58 | - <artifactId>yudao-spring-boot-starter-excel</artifactId> | |
| 59 | - </dependency> | |
| 60 | - </dependencies> | |
| 61 | - | |
| 62 | -</project> |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/api/package-info.java deleted
| 1 | -package cn.iocoder.yudao.module.product.api; |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/api/property/ProductPropertyValueApiImpl.java deleted
| 1 | -package cn.iocoder.yudao.module.product.api.property; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.module.product.api.property.dto.ProductPropertyValueDetailRespDTO; | |
| 4 | -import cn.iocoder.yudao.module.product.convert.propertyvalue.ProductPropertyValueConvert; | |
| 5 | -import cn.iocoder.yudao.module.product.service.property.ProductPropertyValueService; | |
| 6 | -import org.springframework.stereotype.Service; | |
| 7 | -import org.springframework.validation.annotation.Validated; | |
| 8 | - | |
| 9 | -import javax.annotation.Resource; | |
| 10 | -import java.util.Collection; | |
| 11 | -import java.util.List; | |
| 12 | - | |
| 13 | -/** | |
| 14 | - * 商品属性值 API 实现类 | |
| 15 | - * | |
| 16 | - * @author 芋道源码 | |
| 17 | - */ | |
| 18 | -@Service | |
| 19 | -@Validated | |
| 20 | -public class ProductPropertyValueApiImpl implements ProductPropertyValueApi { | |
| 21 | - | |
| 22 | - @Resource | |
| 23 | - private ProductPropertyValueService productPropertyValueService; | |
| 24 | - | |
| 25 | - @Override | |
| 26 | - public List<ProductPropertyValueDetailRespDTO> getPropertyValueDetailList(Collection<Long> ids) { | |
| 27 | - return ProductPropertyValueConvert.INSTANCE.convertList02( | |
| 28 | - productPropertyValueService.getPropertyValueDetailList(ids)); | |
| 29 | - } | |
| 30 | - | |
| 31 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/api/sku/ProductSkuApiImpl.java deleted
| 1 | -package cn.iocoder.yudao.module.product.api.sku; | |
| 2 | - | |
| 3 | -import cn.hutool.core.collection.CollUtil; | |
| 4 | -import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO; | |
| 5 | -import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuUpdateStockReqDTO; | |
| 6 | -import cn.iocoder.yudao.module.product.convert.sku.ProductSkuConvert; | |
| 7 | -import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; | |
| 8 | -import cn.iocoder.yudao.module.product.service.sku.ProductSkuService; | |
| 9 | -import org.springframework.stereotype.Service; | |
| 10 | -import org.springframework.validation.annotation.Validated; | |
| 11 | - | |
| 12 | -import javax.annotation.Resource; | |
| 13 | -import java.util.Collection; | |
| 14 | -import java.util.Collections; | |
| 15 | -import java.util.List; | |
| 16 | - | |
| 17 | -/** | |
| 18 | - * TODO LeeYan9: 类注释; | |
| 19 | - * @author LeeYan9 | |
| 20 | - * @since 2022-09-06 | |
| 21 | - */ | |
| 22 | -@Service | |
| 23 | -@Validated | |
| 24 | -public class ProductSkuApiImpl implements ProductSkuApi { | |
| 25 | - | |
| 26 | - @Resource | |
| 27 | - private ProductSkuService productSkuService; | |
| 28 | - | |
| 29 | - @Override | |
| 30 | - public ProductSkuRespDTO getSku(Long id) { | |
| 31 | - // TODO TODO LeeYan9: 需要实现 | |
| 32 | - return null; | |
| 33 | - } | |
| 34 | - | |
| 35 | - @Override | |
| 36 | - public List<ProductSkuRespDTO> getSkuList(Collection<Long> ids) { | |
| 37 | - if (CollUtil.isEmpty(ids)) { | |
| 38 | - return Collections.emptyList(); | |
| 39 | - } | |
| 40 | - List<ProductSkuDO> skus = productSkuService.getSkuList(ids); | |
| 41 | - return ProductSkuConvert.INSTANCE.convertList04(skus); | |
| 42 | - } | |
| 43 | - | |
| 44 | - @Override | |
| 45 | - public void updateSkuStock(ProductSkuUpdateStockReqDTO updateStockReqDTO) { | |
| 46 | - productSkuService.updateSkuStock(updateStockReqDTO); | |
| 47 | - } | |
| 48 | - | |
| 49 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/api/spu/ProductSpuApiImpl.java deleted
| 1 | -package cn.iocoder.yudao.module.product.api.spu; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | |
| 4 | -import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO; | |
| 5 | -import cn.iocoder.yudao.module.product.convert.spu.ProductSpuConvert; | |
| 6 | -import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; | |
| 7 | -import cn.iocoder.yudao.module.product.dal.mysql.spu.ProductSpuMapper; | |
| 8 | -import org.springframework.stereotype.Service; | |
| 9 | -import org.springframework.validation.annotation.Validated; | |
| 10 | - | |
| 11 | -import javax.annotation.Resource; | |
| 12 | -import java.util.Collection; | |
| 13 | -import java.util.Collections; | |
| 14 | -import java.util.List; | |
| 15 | - | |
| 16 | -/** | |
| 17 | - * TODO LeeYan9: 类注释; | |
| 18 | - * | |
| 19 | - * @author LeeYan9 | |
| 20 | - * @since 2022-09-06 | |
| 21 | - */ | |
| 22 | -@Service | |
| 23 | -@Validated | |
| 24 | -public class ProductSpuApiImpl implements ProductSpuApi { | |
| 25 | - | |
| 26 | - @Resource | |
| 27 | - private ProductSpuMapper productSpuMapper; | |
| 28 | - | |
| 29 | - @Override | |
| 30 | - public List<ProductSpuRespDTO> getSpuList(Collection<Long> spuIds) { | |
| 31 | - // TODO TODO LeeYan9: AllEmpty? | |
| 32 | - if (CollectionUtils.isAnyEmpty(spuIds)) { | |
| 33 | - return Collections.emptyList(); | |
| 34 | - } | |
| 35 | - List<ProductSpuDO> productSpuDOList = productSpuMapper.selectBatchIds(spuIds); | |
| 36 | - return ProductSpuConvert.INSTANCE.convertList2(productSpuDOList); | |
| 37 | - } | |
| 38 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/ProductBrandController.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.brand; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.CommonResult; | |
| 4 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 5 | -import cn.iocoder.yudao.module.product.controller.admin.brand.vo.*; | |
| 6 | -import cn.iocoder.yudao.module.product.convert.brand.ProductBrandConvert; | |
| 7 | -import cn.iocoder.yudao.module.product.dal.dataobject.brand.ProductBrandDO; | |
| 8 | -import cn.iocoder.yudao.module.product.service.brand.ProductBrandService; | |
| 9 | -import io.swagger.v3.oas.annotations.tags.Tag; | |
| 10 | -import io.swagger.v3.oas.annotations.Parameter; | |
| 11 | -import io.swagger.v3.oas.annotations.Operation; | |
| 12 | -import org.springframework.security.access.prepost.PreAuthorize; | |
| 13 | -import org.springframework.validation.annotation.Validated; | |
| 14 | -import org.springframework.web.bind.annotation.*; | |
| 15 | - | |
| 16 | -import javax.annotation.Resource; | |
| 17 | -import javax.validation.Valid; | |
| 18 | -import java.util.Comparator; | |
| 19 | -import java.util.List; | |
| 20 | - | |
| 21 | -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | |
| 22 | - | |
| 23 | -@Tag(name = "管理后台 - 商品品牌") | |
| 24 | -@RestController | |
| 25 | -@RequestMapping("/product/brand") | |
| 26 | -@Validated | |
| 27 | -public class ProductBrandController { | |
| 28 | - | |
| 29 | - @Resource | |
| 30 | - private ProductBrandService brandService; | |
| 31 | - | |
| 32 | - @PostMapping("/create") | |
| 33 | - @Operation(summary = "创建品牌") | |
| 34 | - @PreAuthorize("@ss.hasPermission('product:brand:create')") | |
| 35 | - public CommonResult<Long> createBrand(@Valid @RequestBody ProductBrandCreateReqVO createReqVO) { | |
| 36 | - return success(brandService.createBrand(createReqVO)); | |
| 37 | - } | |
| 38 | - | |
| 39 | - @PutMapping("/update") | |
| 40 | - @Operation(summary = "更新品牌") | |
| 41 | - @PreAuthorize("@ss.hasPermission('product:brand:update')") | |
| 42 | - public CommonResult<Boolean> updateBrand(@Valid @RequestBody ProductBrandUpdateReqVO updateReqVO) { | |
| 43 | - brandService.updateBrand(updateReqVO); | |
| 44 | - return success(true); | |
| 45 | - } | |
| 46 | - | |
| 47 | - @DeleteMapping("/delete") | |
| 48 | - @Operation(summary = "删除品牌") | |
| 49 | - @Parameter(name = "id", description = "编号", required = true) | |
| 50 | - @PreAuthorize("@ss.hasPermission('product:brand:delete')") | |
| 51 | - public CommonResult<Boolean> deleteBrand(@RequestParam("id") Long id) { | |
| 52 | - brandService.deleteBrand(id); | |
| 53 | - return success(true); | |
| 54 | - } | |
| 55 | - | |
| 56 | - @GetMapping("/get") | |
| 57 | - @Operation(summary = "获得品牌") | |
| 58 | - @Parameter(name = "id", description = "编号", required = true, example = "1024") | |
| 59 | - @PreAuthorize("@ss.hasPermission('product:brand:query')") | |
| 60 | - public CommonResult<ProductBrandRespVO> getBrand(@RequestParam("id") Long id) { | |
| 61 | - ProductBrandDO brand = brandService.getBrand(id); | |
| 62 | - return success(ProductBrandConvert.INSTANCE.convert(brand)); | |
| 63 | - } | |
| 64 | - | |
| 65 | - @GetMapping("/page") | |
| 66 | - @Operation(summary = "获得品牌分页") | |
| 67 | - @PreAuthorize("@ss.hasPermission('product:brand:query')") | |
| 68 | - public CommonResult<PageResult<ProductBrandRespVO>> getBrandPage(@Valid ProductBrandPageReqVO pageVO) { | |
| 69 | - PageResult<ProductBrandDO> pageResult = brandService.getBrandPage(pageVO); | |
| 70 | - return success(ProductBrandConvert.INSTANCE.convertPage(pageResult)); | |
| 71 | - } | |
| 72 | - | |
| 73 | - @GetMapping("/list") | |
| 74 | - @Operation(summary = "获得品牌列表") | |
| 75 | - @PreAuthorize("@ss.hasPermission('product:brand:query')") | |
| 76 | - public CommonResult<List<ProductBrandRespVO>> getBrandList(@Valid ProductBrandListReqVO listVO) { | |
| 77 | - List<ProductBrandDO> list = brandService.getBrandList(listVO); | |
| 78 | - list.sort(Comparator.comparing(ProductBrandDO::getSort)); | |
| 79 | - return success(ProductBrandConvert.INSTANCE.convertList(list)); | |
| 80 | - } | |
| 81 | - | |
| 82 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandBaseVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.brand.vo; | |
| 2 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 3 | -import lombok.Data; | |
| 4 | - | |
| 5 | -import javax.validation.constraints.NotNull; | |
| 6 | - | |
| 7 | -/** | |
| 8 | -* 商品品牌 Base VO,提供给添加、修改、详细的子 VO 使用 | |
| 9 | -* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | |
| 10 | -*/ | |
| 11 | -@Data | |
| 12 | -public class ProductBrandBaseVO { | |
| 13 | - | |
| 14 | - @Schema(description = "品牌名称", required = true, example = "芋道") | |
| 15 | - @NotNull(message = "品牌名称不能为空") | |
| 16 | - private String name; | |
| 17 | - | |
| 18 | - @Schema(description = "品牌图片", required = true) | |
| 19 | - @NotNull(message = "品牌图片不能为空") | |
| 20 | - private String picUrl; | |
| 21 | - | |
| 22 | - @Schema(description = "品牌排序", required = true, example = "1") | |
| 23 | - @NotNull(message = "品牌排序不能为空") | |
| 24 | - private Integer sort; | |
| 25 | - | |
| 26 | - @Schema(description = "品牌描述", example = "描述") | |
| 27 | - private String description; | |
| 28 | - | |
| 29 | - @Schema(description = "状态", required = true, example = "0") | |
| 30 | - @NotNull(message = "状态不能为空") | |
| 31 | - private Integer status; | |
| 32 | - | |
| 33 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandCreateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.brand.vo; | |
| 2 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 3 | -import lombok.*; | |
| 4 | - | |
| 5 | -@Schema(description = "管理后台 - 商品品牌创建 Request VO") | |
| 6 | -@Data | |
| 7 | -@EqualsAndHashCode(callSuper = true) | |
| 8 | -@ToString(callSuper = true) | |
| 9 | -public class ProductBrandCreateReqVO extends ProductBrandBaseVO { | |
| 10 | - | |
| 11 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandListReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.brand.vo; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | - | |
| 6 | -@Schema(description = "管理后台 - 商品品牌分页 Request VO") | |
| 7 | -@Data | |
| 8 | -public class ProductBrandListReqVO { | |
| 9 | - | |
| 10 | - @Schema(description = "品牌名称", example = "芋道") | |
| 11 | - private String name; | |
| 12 | - | |
| 13 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandPageReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.brand.vo; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageParam; | |
| 4 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 5 | -import lombok.Data; | |
| 6 | -import lombok.EqualsAndHashCode; | |
| 7 | -import lombok.ToString; | |
| 8 | -import org.springframework.format.annotation.DateTimeFormat; | |
| 9 | - | |
| 10 | -import java.time.LocalDateTime; | |
| 11 | - | |
| 12 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | |
| 13 | - | |
| 14 | -@Schema(description = "管理后台 - 商品品牌分页 Request VO") | |
| 15 | -@Data | |
| 16 | -@EqualsAndHashCode(callSuper = true) | |
| 17 | -@ToString(callSuper = true) | |
| 18 | -public class ProductBrandPageReqVO extends PageParam { | |
| 19 | - | |
| 20 | - @Schema(description = "品牌名称", example = "芋道") | |
| 21 | - private String name; | |
| 22 | - | |
| 23 | - @Schema(description = "状态-参考 CommonStatusEnum 枚举", example = "0") | |
| 24 | - private Integer status; | |
| 25 | - | |
| 26 | - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | |
| 27 | - @Schema(description = "创建时间") | |
| 28 | - private LocalDateTime[] createTime; | |
| 29 | - | |
| 30 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.brand.vo; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | -import lombok.EqualsAndHashCode; | |
| 6 | -import lombok.ToString; | |
| 7 | - | |
| 8 | -import java.time.LocalDateTime; | |
| 9 | - | |
| 10 | -@Schema(description = "管理后台 - 品牌 Response VO") | |
| 11 | -@Data | |
| 12 | -@EqualsAndHashCode(callSuper = true) | |
| 13 | -@ToString(callSuper = true) | |
| 14 | -public class ProductBrandRespVO extends ProductBrandBaseVO { | |
| 15 | - | |
| 16 | - @Schema(description = "品牌编号", required = true, example = "1") | |
| 17 | - private Long id; | |
| 18 | - | |
| 19 | - @Schema(description = "创建时间", required = true) | |
| 20 | - private LocalDateTime createTime; | |
| 21 | - | |
| 22 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandUpdateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.brand.vo; | |
| 2 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 3 | -import lombok.*; | |
| 4 | -import javax.validation.constraints.*; | |
| 5 | - | |
| 6 | -@Schema(description = "管理后台 - 商品品牌更新 Request VO") | |
| 7 | -@Data | |
| 8 | -@EqualsAndHashCode(callSuper = true) | |
| 9 | -@ToString(callSuper = true) | |
| 10 | -public class ProductBrandUpdateReqVO extends ProductBrandBaseVO { | |
| 11 | - | |
| 12 | - @Schema(description = "品牌编号", required = true, example = "1") | |
| 13 | - @NotNull(message = "品牌编号不能为空") | |
| 14 | - private Long id; | |
| 15 | - | |
| 16 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/category/ProductCategoryController.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.category; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.CommonResult; | |
| 4 | -import cn.iocoder.yudao.module.product.controller.admin.category.vo.ProductCategoryRespVO; | |
| 5 | -import cn.iocoder.yudao.module.product.controller.admin.category.vo.ProductCategoryListReqVO; | |
| 6 | -import cn.iocoder.yudao.module.product.controller.admin.category.vo.ProductCategoryCreateReqVO; | |
| 7 | -import cn.iocoder.yudao.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO; | |
| 8 | -import cn.iocoder.yudao.module.product.convert.category.ProductCategoryConvert; | |
| 9 | -import cn.iocoder.yudao.module.product.dal.dataobject.category.ProductCategoryDO; | |
| 10 | -import cn.iocoder.yudao.module.product.service.category.ProductCategoryService; | |
| 11 | -import io.swagger.v3.oas.annotations.tags.Tag; | |
| 12 | -import io.swagger.v3.oas.annotations.Parameter; | |
| 13 | -import io.swagger.v3.oas.annotations.Operation; | |
| 14 | -import org.springframework.security.access.prepost.PreAuthorize; | |
| 15 | -import org.springframework.validation.annotation.Validated; | |
| 16 | -import org.springframework.web.bind.annotation.*; | |
| 17 | - | |
| 18 | -import javax.annotation.Resource; | |
| 19 | -import javax.validation.Valid; | |
| 20 | -import java.util.Comparator; | |
| 21 | -import java.util.List; | |
| 22 | - | |
| 23 | -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | |
| 24 | - | |
| 25 | -@Tag(name = "管理后台 - 商品分类") | |
| 26 | -@RestController | |
| 27 | -@RequestMapping("/product/category") | |
| 28 | -@Validated | |
| 29 | -public class ProductCategoryController { | |
| 30 | - | |
| 31 | - @Resource | |
| 32 | - private ProductCategoryService categoryService; | |
| 33 | - | |
| 34 | - @PostMapping("/create") | |
| 35 | - @Operation(summary = "创建商品分类") | |
| 36 | - @PreAuthorize("@ss.hasPermission('product:category:create')") | |
| 37 | - public CommonResult<Long> createCategory(@Valid @RequestBody ProductCategoryCreateReqVO createReqVO) { | |
| 38 | - return success(categoryService.createCategory(createReqVO)); | |
| 39 | - } | |
| 40 | - | |
| 41 | - @PutMapping("/update") | |
| 42 | - @Operation(summary = "更新商品分类") | |
| 43 | - @PreAuthorize("@ss.hasPermission('product:category:update')") | |
| 44 | - public CommonResult<Boolean> updateCategory(@Valid @RequestBody ProductCategoryUpdateReqVO updateReqVO) { | |
| 45 | - categoryService.updateCategory(updateReqVO); | |
| 46 | - return success(true); | |
| 47 | - } | |
| 48 | - | |
| 49 | - @DeleteMapping("/delete") | |
| 50 | - @Operation(summary = "删除商品分类") | |
| 51 | - @Parameter(name = "id", description = "编号", required = true) | |
| 52 | - @PreAuthorize("@ss.hasPermission('product:category:delete')") | |
| 53 | - public CommonResult<Boolean> deleteCategory(@RequestParam("id") Long id) { | |
| 54 | - categoryService.deleteCategory(id); | |
| 55 | - return success(true); | |
| 56 | - } | |
| 57 | - | |
| 58 | - @GetMapping("/get") | |
| 59 | - @Operation(summary = "获得商品分类") | |
| 60 | - @Parameter(name = "id", description = "编号", required = true, example = "1024") | |
| 61 | - @PreAuthorize("@ss.hasPermission('product:category:query')") | |
| 62 | - public CommonResult<ProductCategoryRespVO> getCategory(@RequestParam("id") Long id) { | |
| 63 | - ProductCategoryDO category = categoryService.getCategory(id); | |
| 64 | - return success(ProductCategoryConvert.INSTANCE.convert(category)); | |
| 65 | - } | |
| 66 | - | |
| 67 | - @GetMapping("/list") | |
| 68 | - @Operation(summary = "获得商品分类列表") | |
| 69 | - @PreAuthorize("@ss.hasPermission('product:category:query')") | |
| 70 | - public CommonResult<List<ProductCategoryRespVO>> getCategoryList(@Valid ProductCategoryListReqVO treeListReqVO) { | |
| 71 | - List<ProductCategoryDO> list = categoryService.getEnableCategoryList(treeListReqVO); | |
| 72 | - list.sort(Comparator.comparing(ProductCategoryDO::getSort)); | |
| 73 | - return success(ProductCategoryConvert.INSTANCE.convertList(list)); | |
| 74 | - } | |
| 75 | - | |
| 76 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/category/vo/ProductCategoryBaseVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.category.vo; | |
| 2 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 3 | -import lombok.Data; | |
| 4 | - | |
| 5 | -import javax.validation.constraints.NotBlank; | |
| 6 | -import javax.validation.constraints.NotNull; | |
| 7 | - | |
| 8 | -/** | |
| 9 | -* 商品分类 Base VO,提供给添加、修改、详细的子 VO 使用 | |
| 10 | -* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | |
| 11 | -*/ | |
| 12 | -@Data | |
| 13 | -public class ProductCategoryBaseVO { | |
| 14 | - | |
| 15 | - @Schema(description = "父分类编号", required = true, example = "1") | |
| 16 | - @NotNull(message = "父分类编号不能为空") | |
| 17 | - private Long parentId; | |
| 18 | - | |
| 19 | - @Schema(description = "分类名称", required = true, example = "办公文具") | |
| 20 | - @NotBlank(message = "分类名称不能为空") | |
| 21 | - private String name; | |
| 22 | - | |
| 23 | - @Schema(description = "分类图片", required = true) | |
| 24 | - @NotBlank(message = "分类图片不能为空") | |
| 25 | - private String picUrl; | |
| 26 | - | |
| 27 | - @Schema(description = "分类排序", required = true, example = "1") | |
| 28 | - private Integer sort; | |
| 29 | - | |
| 30 | - @Schema(description = "分类描述", required = true, example = "描述") | |
| 31 | - private String description; | |
| 32 | - | |
| 33 | - @Schema(description = "开启状态", required = true, example = "0") | |
| 34 | - @NotNull(message = "开启状态不能为空") | |
| 35 | - private Integer status; | |
| 36 | - | |
| 37 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/category/vo/ProductCategoryCreateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.category.vo; | |
| 2 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 3 | -import lombok.*; | |
| 4 | - | |
| 5 | -@Schema(description = "管理后台 - 商品分类创建 Request VO") | |
| 6 | -@Data | |
| 7 | -@EqualsAndHashCode(callSuper = true) | |
| 8 | -@ToString(callSuper = true) | |
| 9 | -public class ProductCategoryCreateReqVO extends ProductCategoryBaseVO { | |
| 10 | - | |
| 11 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/category/vo/ProductCategoryListReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.category.vo; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | - | |
| 6 | -@Schema(description = "管理后台 - 商品分类列表查询 Request VO") | |
| 7 | -@Data | |
| 8 | -public class ProductCategoryListReqVO { | |
| 9 | - | |
| 10 | - @Schema(description = "分类名称", example = "办公文具") | |
| 11 | - private String name; | |
| 12 | - | |
| 13 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/category/vo/ProductCategoryRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.category.vo; | |
| 2 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 3 | -import lombok.*; | |
| 4 | - | |
| 5 | -import java.time.LocalDateTime; | |
| 6 | - | |
| 7 | -@Schema(description = "管理后台 - 商品分类 Response VO") | |
| 8 | -@Data | |
| 9 | -@EqualsAndHashCode(callSuper = true) | |
| 10 | -@ToString(callSuper = true) | |
| 11 | -public class ProductCategoryRespVO extends ProductCategoryBaseVO { | |
| 12 | - | |
| 13 | - @Schema(description = "分类编号", required = true, example = "2") | |
| 14 | - private Long id; | |
| 15 | - | |
| 16 | - @Schema(description = "创建时间", required = true) | |
| 17 | - private LocalDateTime createTime; | |
| 18 | - | |
| 19 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/category/vo/ProductCategoryUpdateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.category.vo; | |
| 2 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 3 | -import lombok.*; | |
| 4 | -import javax.validation.constraints.*; | |
| 5 | - | |
| 6 | -@Schema(description = "管理后台 - 商品分类更新 Request VO") | |
| 7 | -@Data | |
| 8 | -@EqualsAndHashCode(callSuper = true) | |
| 9 | -@ToString(callSuper = true) | |
| 10 | -public class ProductCategoryUpdateReqVO extends ProductCategoryBaseVO { | |
| 11 | - | |
| 12 | - @Schema(description = "分类编号", required = true, example = "2") | |
| 13 | - @NotNull(message = "分类编号不能为空") | |
| 14 | - private Long id; | |
| 15 | - | |
| 16 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/ProductPropertyController.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.property; | |
| 2 | - | |
| 3 | -import cn.hutool.core.collection.CollUtil; | |
| 4 | -import cn.iocoder.yudao.framework.common.pojo.CommonResult; | |
| 5 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 6 | -import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.*; | |
| 7 | -import cn.iocoder.yudao.module.product.convert.property.ProductPropertyConvert; | |
| 8 | -import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO; | |
| 9 | -import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyValueDO; | |
| 10 | -import cn.iocoder.yudao.module.product.service.property.ProductPropertyService; | |
| 11 | -import cn.iocoder.yudao.module.product.service.property.ProductPropertyValueService; | |
| 12 | -import io.swagger.v3.oas.annotations.tags.Tag; | |
| 13 | -import io.swagger.v3.oas.annotations.Parameter; | |
| 14 | -import io.swagger.v3.oas.annotations.Operation; | |
| 15 | -import org.springframework.security.access.prepost.PreAuthorize; | |
| 16 | -import org.springframework.validation.annotation.Validated; | |
| 17 | -import org.springframework.web.bind.annotation.*; | |
| 18 | - | |
| 19 | -import javax.annotation.Resource; | |
| 20 | -import javax.validation.Valid; | |
| 21 | -import java.util.Collections; | |
| 22 | -import java.util.List; | |
| 23 | - | |
| 24 | -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | |
| 25 | -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; | |
| 26 | - | |
| 27 | -@Tag(name = "管理后台 - 商品属性项") | |
| 28 | -@RestController | |
| 29 | -@RequestMapping("/product/property") | |
| 30 | -@Validated | |
| 31 | -public class ProductPropertyController { | |
| 32 | - | |
| 33 | - @Resource | |
| 34 | - private ProductPropertyService productPropertyService; | |
| 35 | - @Resource | |
| 36 | - private ProductPropertyValueService productPropertyValueService; | |
| 37 | - | |
| 38 | - @PostMapping("/create") | |
| 39 | - @Operation(summary = "创建属性项") | |
| 40 | - @PreAuthorize("@ss.hasPermission('product:property:create')") | |
| 41 | - public CommonResult<Long> createProperty(@Valid @RequestBody ProductPropertyCreateReqVO createReqVO) { | |
| 42 | - return success(productPropertyService.createProperty(createReqVO)); | |
| 43 | - } | |
| 44 | - | |
| 45 | - @PutMapping("/update") | |
| 46 | - @Operation(summary = "更新属性项") | |
| 47 | - @PreAuthorize("@ss.hasPermission('product:property:update')") | |
| 48 | - public CommonResult<Boolean> updateProperty(@Valid @RequestBody ProductPropertyUpdateReqVO updateReqVO) { | |
| 49 | - productPropertyService.updateProperty(updateReqVO); | |
| 50 | - return success(true); | |
| 51 | - } | |
| 52 | - | |
| 53 | - @DeleteMapping("/delete") | |
| 54 | - @Operation(summary = "删除属性项") | |
| 55 | - @Parameter(name = "id", description = "编号", required = true) | |
| 56 | - @PreAuthorize("@ss.hasPermission('product:property:delete')") | |
| 57 | - public CommonResult<Boolean> deleteProperty(@RequestParam("id") Long id) { | |
| 58 | - productPropertyService.deleteProperty(id); | |
| 59 | - return success(true); | |
| 60 | - } | |
| 61 | - | |
| 62 | - @GetMapping("/get") | |
| 63 | - @Operation(summary = "获得属性项") | |
| 64 | - @Parameter(name = "id", description = "编号", required = true, example = "1024") | |
| 65 | - @PreAuthorize("@ss.hasPermission('product:property:query')") | |
| 66 | - public CommonResult<ProductPropertyRespVO> getProperty(@RequestParam("id") Long id) { | |
| 67 | - return success(ProductPropertyConvert.INSTANCE.convert(productPropertyService.getProperty(id))); | |
| 68 | - } | |
| 69 | - | |
| 70 | - @GetMapping("/list") | |
| 71 | - @Operation(summary = "获得属性项列表") | |
| 72 | - @PreAuthorize("@ss.hasPermission('product:property:query')") | |
| 73 | - public CommonResult<List<ProductPropertyRespVO>> getPropertyList(@Valid ProductPropertyListReqVO listReqVO) { | |
| 74 | - return success(ProductPropertyConvert.INSTANCE.convertList(productPropertyService.getPropertyList(listReqVO))); | |
| 75 | - } | |
| 76 | - | |
| 77 | - @GetMapping("/page") | |
| 78 | - @Operation(summary = "获得属性项分页") | |
| 79 | - @PreAuthorize("@ss.hasPermission('product:property:query')") | |
| 80 | - public CommonResult<PageResult<ProductPropertyRespVO>> getPropertyPage(@Valid ProductPropertyPageReqVO pageVO) { | |
| 81 | - return success(ProductPropertyConvert.INSTANCE.convertPage(productPropertyService.getPropertyPage(pageVO))); | |
| 82 | - } | |
| 83 | - | |
| 84 | - @GetMapping("/get-value-list") | |
| 85 | - @Operation(summary = "获得属性项列表") | |
| 86 | - @PreAuthorize("@ss.hasPermission('product:property:query')") | |
| 87 | - public CommonResult<List<ProductPropertyAndValueRespVO>> getPropertyAndValueList(@Valid ProductPropertyListReqVO listReqVO) { | |
| 88 | - // 查询属性项 | |
| 89 | - List<ProductPropertyDO> keys = productPropertyService.getPropertyList(listReqVO); | |
| 90 | - if (CollUtil.isEmpty(keys)) { | |
| 91 | - return success(Collections.emptyList()); | |
| 92 | - } | |
| 93 | - // 查询属性值 | |
| 94 | - List<ProductPropertyValueDO> values = productPropertyValueService.getPropertyValueListByPropertyId( | |
| 95 | - convertSet(keys, ProductPropertyDO::getId)); | |
| 96 | - return success(ProductPropertyConvert.INSTANCE.convertList(keys, values)); | |
| 97 | - } | |
| 98 | - | |
| 99 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/ProductPropertyValueController.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.property; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.CommonResult; | |
| 4 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 5 | -import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueCreateReqVO; | |
| 6 | -import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValuePageReqVO; | |
| 7 | -import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueRespVO; | |
| 8 | -import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueUpdateReqVO; | |
| 9 | -import cn.iocoder.yudao.module.product.convert.propertyvalue.ProductPropertyValueConvert; | |
| 10 | -import cn.iocoder.yudao.module.product.service.property.ProductPropertyValueService; | |
| 11 | -import io.swagger.v3.oas.annotations.tags.Tag; | |
| 12 | -import io.swagger.v3.oas.annotations.Parameter; | |
| 13 | -import io.swagger.v3.oas.annotations.Operation; | |
| 14 | -import org.springframework.security.access.prepost.PreAuthorize; | |
| 15 | -import org.springframework.validation.annotation.Validated; | |
| 16 | -import org.springframework.web.bind.annotation.*; | |
| 17 | - | |
| 18 | -import javax.annotation.Resource; | |
| 19 | -import javax.validation.Valid; | |
| 20 | - | |
| 21 | -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | |
| 22 | - | |
| 23 | -@Tag(name = "管理后台 - 商品属性值") | |
| 24 | -@RestController | |
| 25 | -@RequestMapping("/product/property/value") | |
| 26 | -@Validated | |
| 27 | -public class ProductPropertyValueController { | |
| 28 | - | |
| 29 | - @Resource | |
| 30 | - private ProductPropertyValueService productPropertyValueService; | |
| 31 | - | |
| 32 | - @PostMapping("/create") | |
| 33 | - @Operation(summary = "创建属性值") | |
| 34 | - @PreAuthorize("@ss.hasPermission('product:property:create')") | |
| 35 | - public CommonResult<Long> createProperty(@Valid @RequestBody ProductPropertyValueCreateReqVO createReqVO) { | |
| 36 | - return success(productPropertyValueService.createPropertyValue(createReqVO)); | |
| 37 | - } | |
| 38 | - | |
| 39 | - @PutMapping("/update") | |
| 40 | - @Operation(summary = "更新属性值") | |
| 41 | - @PreAuthorize("@ss.hasPermission('product:property:update')") | |
| 42 | - public CommonResult<Boolean> updateProperty(@Valid @RequestBody ProductPropertyValueUpdateReqVO updateReqVO) { | |
| 43 | - productPropertyValueService.updatePropertyValue(updateReqVO); | |
| 44 | - return success(true); | |
| 45 | - } | |
| 46 | - | |
| 47 | - @DeleteMapping("/delete") | |
| 48 | - @Operation(summary = "删除属性值") | |
| 49 | - @Parameter(name = "id", description = "编号", required = true) | |
| 50 | - @PreAuthorize("@ss.hasPermission('product:property:delete')") | |
| 51 | - public CommonResult<Boolean> deleteProperty(@RequestParam("id") Long id) { | |
| 52 | - productPropertyValueService.deletePropertyValue(id); | |
| 53 | - return success(true); | |
| 54 | - } | |
| 55 | - | |
| 56 | - @GetMapping("/get") | |
| 57 | - @Operation(summary = "获得属性值") | |
| 58 | - @Parameter(name = "id", description = "编号", required = true, example = "1024") | |
| 59 | - @PreAuthorize("@ss.hasPermission('product:property:query')") | |
| 60 | - public CommonResult<ProductPropertyValueRespVO> getProperty(@RequestParam("id") Long id) { | |
| 61 | - return success(ProductPropertyValueConvert.INSTANCE.convert(productPropertyValueService.getPropertyValue(id))); | |
| 62 | - } | |
| 63 | - | |
| 64 | - @GetMapping("/page") | |
| 65 | - @Operation(summary = "获得属性值分页") | |
| 66 | - @PreAuthorize("@ss.hasPermission('product:property:query')") | |
| 67 | - public CommonResult<PageResult<ProductPropertyValueRespVO>> getPropertyValuePage(@Valid ProductPropertyValuePageReqVO pageVO) { | |
| 68 | - return success(ProductPropertyValueConvert.INSTANCE.convertPage(productPropertyValueService.getPropertyValuePage(pageVO))); | |
| 69 | - } | |
| 70 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/ProductPropertyViewRespVO.java deleted
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyAndValueRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.property.vo.property; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | - | |
| 6 | -import java.util.List; | |
| 7 | - | |
| 8 | -@Schema(description = "管理后台 - 商品属性项 + 属性值 Response VO") | |
| 9 | -@Data | |
| 10 | -public class ProductPropertyAndValueRespVO { | |
| 11 | - | |
| 12 | - @ApiModelProperty(value = "属性项的编号", required = true, example = "1024") | |
| 13 | - private Long id; | |
| 14 | - | |
| 15 | - @ApiModelProperty(value = "属性项的名称", required = true, example = "颜色") | |
| 16 | - private String name; | |
| 17 | - | |
| 18 | - /** | |
| 19 | - * 属性值的集合 | |
| 20 | - */ | |
| 21 | - private List<Value> values; | |
| 22 | - | |
| 23 | - @ApiModel("管理后台 - 属性值的简单 Response VO") | |
| 24 | - @Data | |
| 25 | - public static class Value { | |
| 26 | - | |
| 27 | - @Schema(description = "属性值的编号", required = true, example = "2048") | |
| 28 | - private Long id; | |
| 29 | - | |
| 30 | - @Schema(description = "属性值的名称", required = true, example = "红色") | |
| 31 | - private String name; | |
| 32 | - | |
| 33 | - } | |
| 34 | - | |
| 35 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyBaseVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.property.vo.property; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | - | |
| 6 | -import javax.validation.constraints.NotBlank; | |
| 7 | - | |
| 8 | -/** | |
| 9 | - * 商品属性项 Base VO,提供给添加、修改、详细的子 VO 使用 | |
| 10 | - * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | |
| 11 | - */ | |
| 12 | -@Data | |
| 13 | -public class ProductPropertyBaseVO { | |
| 14 | - | |
| 15 | - @Schema(description = "名称", required = true, example = "颜色") | |
| 16 | - @NotBlank(message = "名称不能为空") | |
| 17 | - private String name; | |
| 18 | - | |
| 19 | - @Schema(description = "备注", example = "颜色") | |
| 20 | - private String remark; | |
| 21 | - | |
| 22 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyCreateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.property.vo.property; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | -import lombok.EqualsAndHashCode; | |
| 6 | -import lombok.ToString; | |
| 7 | - | |
| 8 | -@Schema(description = "管理后台 - 属性项创建 Request VO") | |
| 9 | -@Data | |
| 10 | -@EqualsAndHashCode(callSuper = true) | |
| 11 | -@ToString(callSuper = true) | |
| 12 | -public class ProductPropertyCreateReqVO extends ProductPropertyBaseVO { | |
| 13 | - | |
| 14 | - | |
| 15 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyListReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.property.vo.property; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | -import lombok.ToString; | |
| 6 | - | |
| 7 | -@Schema(description = "管理后台 - 属性项 List Request VO") | |
| 8 | -@Data | |
| 9 | -@ToString(callSuper = true) | |
| 10 | -public class ProductPropertyListReqVO { | |
| 11 | - | |
| 12 | - @Schema(description = "名称", example = "颜色") | |
| 13 | - private String name; | |
| 14 | - | |
| 15 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyPageReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.property.vo.property; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageParam; | |
| 4 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 5 | -import lombok.Data; | |
| 6 | -import lombok.EqualsAndHashCode; | |
| 7 | -import lombok.ToString; | |
| 8 | -import org.springframework.format.annotation.DateTimeFormat; | |
| 9 | - | |
| 10 | -import java.time.LocalDateTime; | |
| 11 | - | |
| 12 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | |
| 13 | - | |
| 14 | -@Schema(description = "管理后台 - 属性项 Request VO") | |
| 15 | -@Data | |
| 16 | -@EqualsAndHashCode(callSuper = true) | |
| 17 | -@ToString(callSuper = true) | |
| 18 | -public class ProductPropertyPageReqVO extends PageParam { | |
| 19 | - | |
| 20 | - @Schema(description = "名称", example = "颜色") | |
| 21 | - private String name; | |
| 22 | - | |
| 23 | - @Schema(description = "状态-参见 CommonStatusEnum 枚举", required = true, example = "1") | |
| 24 | - private Integer status; | |
| 25 | - | |
| 26 | - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | |
| 27 | - @Schema(description = "创建时间") | |
| 28 | - private LocalDateTime[] createTime; | |
| 29 | - | |
| 30 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.property.vo.property; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | -import lombok.EqualsAndHashCode; | |
| 6 | -import lombok.ToString; | |
| 7 | - | |
| 8 | -import java.time.LocalDateTime; | |
| 9 | - | |
| 10 | -@Schema(description = "管理后台 - 属性项 Response VO") | |
| 11 | -@Data | |
| 12 | -@EqualsAndHashCode(callSuper = true) | |
| 13 | -@ToString(callSuper = true) | |
| 14 | -public class ProductPropertyRespVO extends ProductPropertyBaseVO { | |
| 15 | - | |
| 16 | - @Schema(description = "编号", required = true, example = "1024") | |
| 17 | - private Long id; | |
| 18 | - | |
| 19 | - @Schema(description = "创建时间", required = true) | |
| 20 | - private LocalDateTime createTime; | |
| 21 | - | |
| 22 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/property/ProductPropertyUpdateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.property.vo.property; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | -import lombok.EqualsAndHashCode; | |
| 6 | -import lombok.ToString; | |
| 7 | - | |
| 8 | -import javax.validation.constraints.NotNull; | |
| 9 | - | |
| 10 | -@Schema(description = "管理后台 - 属性项更新 Request VO") | |
| 11 | -@Data | |
| 12 | -@EqualsAndHashCode(callSuper = true) | |
| 13 | -@ToString(callSuper = true) | |
| 14 | -public class ProductPropertyUpdateReqVO extends ProductPropertyBaseVO { | |
| 15 | - | |
| 16 | - @Schema(description = "主键", required = true, example = "1") | |
| 17 | - @NotNull(message = "主键不能为空") | |
| 18 | - private Long id; | |
| 19 | - | |
| 20 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueBaseVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.property.vo.value; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | - | |
| 6 | -import javax.validation.constraints.NotEmpty; | |
| 7 | -import javax.validation.constraints.NotNull; | |
| 8 | - | |
| 9 | -/** | |
| 10 | -* 属性值 Base VO,提供给添加、修改、详细的子 VO 使用 | |
| 11 | -* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | |
| 12 | -*/ | |
| 13 | -@Data | |
| 14 | -public class ProductPropertyValueBaseVO { | |
| 15 | - | |
| 16 | - @Schema(description = "属性项的编号", required = true, example = "1024") | |
| 17 | - @NotNull(message = "属性项的编号不能为空") | |
| 18 | - private Long propertyId; | |
| 19 | - | |
| 20 | - @Schema(description = "名称", required = true, example = "红色") | |
| 21 | - @NotEmpty(message = "名称名字不能为空") | |
| 22 | - private String name; | |
| 23 | - | |
| 24 | - @Schema(description = "备注", example = "颜色") | |
| 25 | - private String remark; | |
| 26 | - | |
| 27 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueCreateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.property.vo.value; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.*; | |
| 5 | - | |
| 6 | -@Schema(description = "管理后台 - 商品属性值创建 Request VO") | |
| 7 | -@Data | |
| 8 | -@EqualsAndHashCode(callSuper = true) | |
| 9 | -@ToString(callSuper = true) | |
| 10 | -public class ProductPropertyValueCreateReqVO extends ProductPropertyValueBaseVO { | |
| 11 | - | |
| 12 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueDetailRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.property.vo.value; | |
| 2 | - | |
| 3 | -import io.swagger.annotations.ApiModel; | |
| 4 | -import io.swagger.annotations.ApiModelProperty; | |
| 5 | -import lombok.Data; | |
| 6 | - | |
| 7 | -@ApiModel("管理后台 - 商品属性值的明细 Response VO") | |
| 8 | -@Data | |
| 9 | -public class ProductPropertyValueDetailRespVO { | |
| 10 | - | |
| 11 | - @ApiModelProperty(value = "属性的编号", required = true, example = "1") | |
| 12 | - private Long propertyId; | |
| 13 | - | |
| 14 | - @ApiModelProperty(value = "属性的名称", required = true, example = "颜色") | |
| 15 | - private String propertyName; | |
| 16 | - | |
| 17 | - @ApiModelProperty(value = "属性值的编号", required = true, example = "1024") | |
| 18 | - private Long valueId; | |
| 19 | - | |
| 20 | - @ApiModelProperty(value = "属性值的名称", required = true, example = "红色") | |
| 21 | - private String valueName; | |
| 22 | - | |
| 23 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValuePageReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.property.vo.value; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageParam; | |
| 4 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 5 | -import lombok.Data; | |
| 6 | -import lombok.EqualsAndHashCode; | |
| 7 | -import lombok.ToString; | |
| 8 | - | |
| 9 | -@Schema(description = "管理后台 - 商品属性值分页 Request VO") | |
| 10 | -@Data | |
| 11 | -@EqualsAndHashCode(callSuper = true) | |
| 12 | -@ToString(callSuper = true) | |
| 13 | -public class ProductPropertyValuePageReqVO extends PageParam { | |
| 14 | - | |
| 15 | - @Schema(description = "属性项的编号", example = "1024") | |
| 16 | - private String propertyId; | |
| 17 | - | |
| 18 | - @Schema(description = "名称", example = "红色") | |
| 19 | - private String name; | |
| 20 | - | |
| 21 | - @Schema(description = "状态 - 参见 CommonStatusEnum 枚举", required = true, example = "1") | |
| 22 | - private Integer status; | |
| 23 | - | |
| 24 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.property.vo.value; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | -import lombok.EqualsAndHashCode; | |
| 6 | -import lombok.ToString; | |
| 7 | - | |
| 8 | -import java.time.LocalDateTime; | |
| 9 | - | |
| 10 | -@Schema(description = "管理后台 - 商品属性值 Response VO") | |
| 11 | -@Data | |
| 12 | -@EqualsAndHashCode(callSuper = true) | |
| 13 | -@ToString(callSuper = true) | |
| 14 | -public class ProductPropertyValueRespVO extends ProductPropertyValueBaseVO { | |
| 15 | - | |
| 16 | - @Schema(description = "编号", required = true, example = "10") | |
| 17 | - private Long id; | |
| 18 | - | |
| 19 | - @Schema(description = "创建时间") | |
| 20 | - private LocalDateTime createTime; | |
| 21 | - | |
| 22 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/vo/value/ProductPropertyValueUpdateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.property.vo.value; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.*; | |
| 5 | -import javax.validation.constraints.*; | |
| 6 | - | |
| 7 | -@Schema(description = "管理后台 - 商品属性值更新 Request VO") | |
| 8 | -@Data | |
| 9 | -@EqualsAndHashCode(callSuper = true) | |
| 10 | -@ToString(callSuper = true) | |
| 11 | -public class ProductPropertyValueUpdateReqVO extends ProductPropertyValueBaseVO { | |
| 12 | - | |
| 13 | - @Schema(description = "主键", required = true, example = "1024") | |
| 14 | - @NotNull(message = "主键不能为空") | |
| 15 | - private Long id; | |
| 16 | - | |
| 17 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/ProductSkuController.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.sku; | |
| 2 | - | |
| 3 | -import cn.hutool.core.collection.CollUtil; | |
| 4 | -import cn.iocoder.yudao.framework.common.pojo.CommonResult; | |
| 5 | -import cn.iocoder.yudao.framework.common.util.collection.MapUtils; | |
| 6 | -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuOptionRespVO; | |
| 7 | -import cn.iocoder.yudao.module.product.convert.sku.ProductSkuConvert; | |
| 8 | -import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; | |
| 9 | -import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; | |
| 10 | -import cn.iocoder.yudao.module.product.service.sku.ProductSkuService; | |
| 11 | -import cn.iocoder.yudao.module.product.service.spu.ProductSpuService; | |
| 12 | -import io.swagger.v3.oas.annotations.tags.Tag; | |
| 13 | -import io.swagger.v3.oas.annotations.Operation; | |
| 14 | -import org.springframework.validation.annotation.Validated; | |
| 15 | -import org.springframework.web.bind.annotation.GetMapping; | |
| 16 | -import org.springframework.web.bind.annotation.RequestMapping; | |
| 17 | -import org.springframework.web.bind.annotation.RestController; | |
| 18 | - | |
| 19 | -import javax.annotation.Resource; | |
| 20 | -import java.util.Collections; | |
| 21 | -import java.util.List; | |
| 22 | -import java.util.Map; | |
| 23 | - | |
| 24 | -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | |
| 25 | -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; | |
| 26 | - | |
| 27 | -@Tag(name = "管理后台 - 商品 sku") | |
| 28 | -@RestController | |
| 29 | -@RequestMapping("/product/sku") | |
| 30 | -@Validated | |
| 31 | -public class ProductSkuController { | |
| 32 | - | |
| 33 | - @Resource | |
| 34 | - private ProductSkuService productSkuService; | |
| 35 | - @Resource | |
| 36 | - private ProductSpuService productSpuService; | |
| 37 | - | |
| 38 | - @GetMapping("/get-option-list") | |
| 39 | - @Operation(summary = "获得商品 SKU 选项的列表") | |
| 40 | -// @PreAuthorize("@ss.hasPermission('product:sku:query')") | |
| 41 | - public CommonResult<List<ProductSkuOptionRespVO>> getSkuOptionList() { | |
| 42 | - // 获得 SKU 列表 | |
| 43 | - List<ProductSkuDO> skus = productSkuService.getSkuList(); | |
| 44 | - if (CollUtil.isEmpty(skus)) { | |
| 45 | - return success(Collections.emptyList()); | |
| 46 | - } | |
| 47 | - | |
| 48 | - // 获得对应的 SPU 映射 | |
| 49 | - Map<Long, ProductSpuDO> spuMap = productSpuService.getSpuMap(convertSet(skus, ProductSkuDO::getSpuId)); | |
| 50 | - // 转换为返回结果 | |
| 51 | - List<ProductSkuOptionRespVO> skuVOs = ProductSkuConvert.INSTANCE.convertList05(skus); | |
| 52 | - skuVOs.forEach(sku -> MapUtils.findAndThen(spuMap, sku.getSpuId(), | |
| 53 | - spu -> sku.setSpuId(spu.getId()).setSpuName(spu.getName()))); | |
| 54 | - return success(skuVOs); | |
| 55 | - } | |
| 56 | - | |
| 57 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuBaseVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.sku.vo; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | |
| 4 | -import cn.iocoder.yudao.framework.common.validation.InEnum; | |
| 5 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 6 | -import lombok.AllArgsConstructor; | |
| 7 | -import lombok.Data; | |
| 8 | -import lombok.NoArgsConstructor; | |
| 9 | - | |
| 10 | -import javax.validation.constraints.NotEmpty; | |
| 11 | -import javax.validation.constraints.NotNull; | |
| 12 | - | |
| 13 | -/** | |
| 14 | -* 商品 SKU Base VO,提供给添加、修改、详细的子 VO 使用 | |
| 15 | -* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | |
| 16 | -*/ | |
| 17 | -@Data | |
| 18 | -public class ProductSkuBaseVO { | |
| 19 | - | |
| 20 | - @Schema(description = "商品 SKU 名字", required = true, example = "芋道") | |
| 21 | - @NotEmpty(message = "商品 SKU 名字不能为空") | |
| 22 | - private String name; | |
| 23 | - | |
| 24 | - @Schema(description = "销售价格,单位:分", required = true, example = "1024", notes = "单位:分") | |
| 25 | - @NotNull(message = "销售价格,单位:分不能为空") | |
| 26 | - private Integer price; | |
| 27 | - | |
| 28 | - @Schema(description = "市场价", example = "1024", notes = "单位:分") | |
| 29 | - private Integer marketPrice; | |
| 30 | - | |
| 31 | - @Schema(description = "成本价", example = "1024", notes = "单位:分") | |
| 32 | - private Integer costPrice; | |
| 33 | - | |
| 34 | - @Schema(description = "条形码", example = "haha") | |
| 35 | - private String barCode; | |
| 36 | - | |
| 37 | - @Schema(description = "图片地址", required = true, example = "https://www.iocoder.cn/xx.png") | |
| 38 | - @NotNull(message = "图片地址不能为空") | |
| 39 | - private String picUrl; | |
| 40 | - | |
| 41 | - @Schema(description = "SKU 状态", required = true, example = "1", notes = "参见 CommonStatusEnum 枚举") | |
| 42 | - @NotNull(message = "SKU 状态不能为空") | |
| 43 | - @InEnum(CommonStatusEnum.class) | |
| 44 | - private Integer status; | |
| 45 | - | |
| 46 | - @Schema(description = "库存", required = true, example = "1") | |
| 47 | - @NotNull(message = "库存不能为空") | |
| 48 | - private Integer stock; | |
| 49 | - | |
| 50 | - @Schema(description = "预警预存", example = "1") | |
| 51 | - private Integer warnStock; | |
| 52 | - | |
| 53 | - @Schema(description = "商品重量 - 单位:kg 千克", example = "1") | |
| 54 | - private Double weight; | |
| 55 | - | |
| 56 | - @Schema(description = "商品体积 - 单位:m^3 平米", example = "1024") | |
| 57 | - private Double volume; | |
| 58 | - | |
| 59 | - @ApiModel("商品属性") | |
| 60 | - @Data | |
| 61 | - @AllArgsConstructor | |
| 62 | - @NoArgsConstructor | |
| 63 | - public static class Property { | |
| 64 | - | |
| 65 | - @Schema(description = "属性编号", required = true, example = "1") | |
| 66 | - @NotNull(message = "属性编号不能为空") | |
| 67 | - private Long propertyId; | |
| 68 | - | |
| 69 | - @Schema(description = "属性值编号", required = true, example = "1024") | |
| 70 | - @NotNull(message = "属性值编号不能为空") | |
| 71 | - private Long valueId; | |
| 72 | - | |
| 73 | - } | |
| 74 | - | |
| 75 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuCreateOrUpdateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.sku.vo; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | -import lombok.EqualsAndHashCode; | |
| 6 | -import lombok.ToString; | |
| 7 | - | |
| 8 | -import java.util.List; | |
| 9 | - | |
| 10 | -@Schema(description = "管理后台 - 商品 SKU 创建/更新 Request VO") | |
| 11 | -@Data | |
| 12 | -@EqualsAndHashCode(callSuper = true) | |
| 13 | -@ToString(callSuper = true) | |
| 14 | -public class ProductSkuCreateOrUpdateReqVO extends ProductSkuBaseVO { | |
| 15 | - | |
| 16 | - /** | |
| 17 | - * 属性数组 | |
| 18 | - */ | |
| 19 | - private List<Property> properties; | |
| 20 | - | |
| 21 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuOptionRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.sku.vo; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | - | |
| 6 | -@Schema(description = "管理后台 - 商品 SKU 选项 Response VO,用于前端 SELECT 选项") | |
| 7 | -@Data | |
| 8 | -public class ProductSkuOptionRespVO { | |
| 9 | - | |
| 10 | - @Schema(description = "主键", required = true, example = "1024") | |
| 11 | - private Long id; | |
| 12 | - | |
| 13 | - @Schema(description = "商品 SKU 名字", example = "红色") | |
| 14 | - private String name; | |
| 15 | - | |
| 16 | - @Schema(description = "销售价格,单位:分", required = true, example = "100") | |
| 17 | - private String price; | |
| 18 | - | |
| 19 | - @Schema(description = "库存", required = true, example = "100") | |
| 20 | - private Integer stock; | |
| 21 | - | |
| 22 | - // ========== 商品 SPU 信息 ========== | |
| 23 | - | |
| 24 | - @Schema(description = "商品 SPU 编号", required = true, example = "1") | |
| 25 | - private Long spuId; | |
| 26 | - | |
| 27 | - @Schema(description = "商品 SPU 名字", required = true, example = "iPhone 11") | |
| 28 | - private String spuName; | |
| 29 | - | |
| 30 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.sku.vo; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | -import lombok.EqualsAndHashCode; | |
| 6 | -import lombok.ToString; | |
| 7 | - | |
| 8 | -import java.time.LocalDateTime; | |
| 9 | -import java.util.List; | |
| 10 | - | |
| 11 | -@Schema(description = "管理后台 - 商品 SKU Response VO") | |
| 12 | -@Data | |
| 13 | -@EqualsAndHashCode(callSuper = true) | |
| 14 | -@ToString(callSuper = true) | |
| 15 | -public class ProductSkuRespVO extends ProductSkuBaseVO { | |
| 16 | - | |
| 17 | - @Schema(description = "主键", required = true, example = "1024") | |
| 18 | - private Long id; | |
| 19 | - | |
| 20 | - @Schema(description = "创建时间") | |
| 21 | - private LocalDateTime createTime; | |
| 22 | - | |
| 23 | - /** | |
| 24 | - * 属性数组 | |
| 25 | - */ | |
| 26 | - private List<Property> properties; | |
| 27 | - | |
| 28 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/ProductSpuController.http deleted
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/ProductSpuController.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.spu; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.CommonResult; | |
| 4 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 5 | -import cn.iocoder.yudao.module.product.controller.admin.spu.vo.*; | |
| 6 | -import cn.iocoder.yudao.module.product.convert.sku.ProductSkuConvert; | |
| 7 | -import cn.iocoder.yudao.module.product.convert.spu.ProductSpuConvert; | |
| 8 | -import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; | |
| 9 | -import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; | |
| 10 | -import cn.iocoder.yudao.module.product.service.property.ProductPropertyValueService; | |
| 11 | -import cn.iocoder.yudao.module.product.service.property.bo.ProductPropertyValueDetailRespBO; | |
| 12 | -import cn.iocoder.yudao.module.product.service.sku.ProductSkuService; | |
| 13 | -import cn.iocoder.yudao.module.product.service.spu.ProductSpuService; | |
| 14 | -import io.swagger.v3.oas.annotations.tags.Tag; | |
| 15 | -import io.swagger.v3.oas.annotations.Parameter; | |
| 16 | -import io.swagger.v3.oas.annotations.Operation; | |
| 17 | -import org.springframework.security.access.prepost.PreAuthorize; | |
| 18 | -import org.springframework.validation.annotation.Validated; | |
| 19 | -import org.springframework.web.bind.annotation.*; | |
| 20 | - | |
| 21 | -import javax.annotation.Resource; | |
| 22 | -import javax.validation.Valid; | |
| 23 | -import java.util.List; | |
| 24 | - | |
| 25 | -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | |
| 26 | -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | |
| 27 | -import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.SPU_NOT_EXISTS; | |
| 28 | - | |
| 29 | -@Tag(name = "管理后台 - 商品 SPU") | |
| 30 | -@RestController | |
| 31 | -@RequestMapping("/product/spu") | |
| 32 | -@Validated | |
| 33 | -public class ProductSpuController { | |
| 34 | - | |
| 35 | - @Resource | |
| 36 | - private ProductSpuService productSpuService; | |
| 37 | - @Resource | |
| 38 | - private ProductSkuService productSkuService; | |
| 39 | - @Resource | |
| 40 | - private ProductPropertyValueService productPropertyValueService; | |
| 41 | - | |
| 42 | - @PostMapping("/create") | |
| 43 | - @Operation(summary = "创建商品 SPU") | |
| 44 | - @PreAuthorize("@ss.hasPermission('product:spu:create')") | |
| 45 | - public CommonResult<Long> createProductSpu(@Valid @RequestBody ProductSpuCreateReqVO createReqVO) { | |
| 46 | - return success(productSpuService.createSpu(createReqVO)); | |
| 47 | - } | |
| 48 | - | |
| 49 | - @PutMapping("/update") | |
| 50 | - @Operation(summary = "更新商品 SPU") | |
| 51 | - @PreAuthorize("@ss.hasPermission('product:spu:update')") | |
| 52 | - public CommonResult<Boolean> updateSpu(@Valid @RequestBody ProductSpuUpdateReqVO updateReqVO) { | |
| 53 | - productSpuService.updateSpu(updateReqVO); | |
| 54 | - return success(true); | |
| 55 | - } | |
| 56 | - | |
| 57 | - @DeleteMapping("/delete") | |
| 58 | - @Operation(summary = "删除商品 SPU") | |
| 59 | - @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class) | |
| 60 | - @PreAuthorize("@ss.hasPermission('product:spu:delete')") | |
| 61 | - public CommonResult<Boolean> deleteSpu(@RequestParam("id") Long id) { | |
| 62 | - productSpuService.deleteSpu(id); | |
| 63 | - return success(true); | |
| 64 | - } | |
| 65 | - | |
| 66 | - @GetMapping("/get-detail") | |
| 67 | - @Operation(summary = "获得商品 SPU 明细") | |
| 68 | - @Parameter(name = "id", value = "编号", required = true, example = "1024") | |
| 69 | - @PreAuthorize("@ss.hasPermission('product:spu:query')") | |
| 70 | - public CommonResult<ProductSpuDetailRespVO> getSpuDetail(@RequestParam("id") Long id) { | |
| 71 | - // 获得商品 SPU | |
| 72 | - ProductSpuDO spu = productSpuService.getSpu(id); | |
| 73 | - if (spu == null) { | |
| 74 | - throw exception(SPU_NOT_EXISTS); | |
| 75 | - } | |
| 76 | - | |
| 77 | - // 查询商品 SKU | |
| 78 | - List<ProductSkuDO> skus = productSkuService.getSkuListBySpuIdAndStatus(spu.getId(), null); | |
| 79 | - // 查询商品属性 | |
| 80 | - List<ProductPropertyValueDetailRespBO> propertyValues = productPropertyValueService | |
| 81 | - .getPropertyValueDetailList(ProductSkuConvert.INSTANCE.convertPropertyValueIds(skus)); | |
| 82 | - // 拼接 | |
| 83 | - return success(ProductSpuConvert.INSTANCE.convert03(spu, skus, propertyValues)); | |
| 84 | - } | |
| 85 | - | |
| 86 | - @GetMapping("/get-simple-list") | |
| 87 | - @Operation(summary = "获得商品 SPU 精简列表") | |
| 88 | - @PreAuthorize("@ss.hasPermission('product:spu:query')") | |
| 89 | - public CommonResult<List<ProductSpuSimpleRespVO>> getSpuSimpleList() { | |
| 90 | - List<ProductSpuDO> list = productSpuService.getSpuList(); | |
| 91 | - return success(ProductSpuConvert.INSTANCE.convertList02(list)); | |
| 92 | - } | |
| 93 | - | |
| 94 | - @GetMapping("/page") | |
| 95 | - @Operation(summary = "获得商品 SPU 分页") | |
| 96 | - @PreAuthorize("@ss.hasPermission('product:spu:query')") | |
| 97 | - public CommonResult<PageResult<ProductSpuRespVO>> getSpuPage(@Valid ProductSpuPageReqVO pageVO) { | |
| 98 | - return success(ProductSpuConvert.INSTANCE.convertPage(productSpuService.getSpuPage(pageVO))); | |
| 99 | - } | |
| 100 | - | |
| 101 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuBaseVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.spu.vo; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.validation.InEnum; | |
| 4 | -import cn.iocoder.yudao.module.product.enums.spu.ProductSpuSpecTypeEnum; | |
| 5 | -import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum; | |
| 6 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 7 | -import lombok.Data; | |
| 8 | - | |
| 9 | -import javax.validation.constraints.NotEmpty; | |
| 10 | -import javax.validation.constraints.NotNull; | |
| 11 | -import java.util.List; | |
| 12 | - | |
| 13 | -/** | |
| 14 | - * 商品 SPU Base VO,提供给添加、修改、详细的子 VO 使用 | |
| 15 | - * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | |
| 16 | - */ | |
| 17 | -@Data | |
| 18 | -public class ProductSpuBaseVO { | |
| 19 | - | |
| 20 | - @Schema(description = = "商品名称", required = true, example = "芋道") | |
| 21 | - @NotEmpty(message = "商品名称不能为空") | |
| 22 | - private String name; | |
| 23 | - | |
| 24 | - @Schema(description = = "商品编码", example = "yudaoyuanma") | |
| 25 | - private String code; | |
| 26 | - | |
| 27 | - @Schema(description = = "促销语", example = "好吃!") | |
| 28 | - private String sellPoint; | |
| 29 | - | |
| 30 | - @Schema(description = = "商品详情", required = true, example = "我是商品描述") | |
| 31 | - @NotNull(message = "商品详情不能为空") | |
| 32 | - private String description; | |
| 33 | - | |
| 34 | - @Schema(description = = "商品分类编号", required = true, example = "1") | |
| 35 | - @NotNull(message = "商品分类编号不能为空") | |
| 36 | - private Long categoryId; | |
| 37 | - | |
| 38 | - @Schema(description = = "商品品牌编号", example = "1") | |
| 39 | - private Long brandId; | |
| 40 | - | |
| 41 | - @Schema(description = = "商品图片的数组", required = true) | |
| 42 | - @NotNull(message = "商品图片的数组不能为空") | |
| 43 | - private List<String> picUrls; | |
| 44 | - | |
| 45 | - @Schema(description = = "商品视频", required = true) | |
| 46 | - private String videoUrl; | |
| 47 | - | |
| 48 | - @Schema(description = = "排序字段", required = true, example = "1") | |
| 49 | - private Integer sort; | |
| 50 | - | |
| 51 | - @Schema(description = = "商品状态 参见 ProductSpuStatusEnum 枚举类", required = true, example = "1") | |
| 52 | - @NotNull(message = "商品状态不能为空") | |
| 53 | - @InEnum(ProductSpuStatusEnum.class) | |
| 54 | - private Integer status; | |
| 55 | - | |
| 56 | - // ========== SKU 相关字段 ========= | |
| 57 | - | |
| 58 | - @Schema(description = = "规格类型 参见 ProductSpuSpecTypeEnum 枚举类", required = true, example = "1") | |
| 59 | - @NotNull(message = "规格类型不能为空") | |
| 60 | - @InEnum(ProductSpuSpecTypeEnum.class) | |
| 61 | - private Integer specType; | |
| 62 | - | |
| 63 | - @Schema(description = = "是否展示库存", required = true, example = "true") | |
| 64 | - @NotNull(message = "是否展示库存不能为空") | |
| 65 | - private Boolean showStock; | |
| 66 | - | |
| 67 | - @Schema(description = = "市场价", example = "1024") | |
| 68 | - private Integer marketPrice; | |
| 69 | - | |
| 70 | - // ========== 统计相关字段 ========= | |
| 71 | - | |
| 72 | - @Schema(description = = "虚拟销量", required = true, example = "1024") | |
| 73 | - @NotNull(message = "虚拟销量不能为空") | |
| 74 | - private Integer virtualSalesCount; | |
| 75 | - | |
| 76 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuCreateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.spu.vo; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuCreateOrUpdateReqVO; | |
| 4 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 5 | -import lombok.Data; | |
| 6 | -import lombok.EqualsAndHashCode; | |
| 7 | -import lombok.ToString; | |
| 8 | - | |
| 9 | -import javax.validation.Valid; | |
| 10 | -import java.util.List; | |
| 11 | - | |
| 12 | -@Schema(description = "管理后台 - 商品 SPU 创建 Request VO") | |
| 13 | -@Data | |
| 14 | -@EqualsAndHashCode(callSuper = true) | |
| 15 | -@ToString(callSuper = true) | |
| 16 | -public class ProductSpuCreateReqVO extends ProductSpuBaseVO { | |
| 17 | - | |
| 18 | - /** | |
| 19 | - * SKU 数组 | |
| 20 | - */ | |
| 21 | - @Valid | |
| 22 | - private List<ProductSkuCreateOrUpdateReqVO> skus; | |
| 23 | - | |
| 24 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuDetailRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.spu.vo; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueDetailRespVO; | |
| 4 | -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuBaseVO; | |
| 5 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 6 | -import lombok.Data; | |
| 7 | -import lombok.EqualsAndHashCode; | |
| 8 | -import lombok.ToString; | |
| 9 | - | |
| 10 | -import java.util.List; | |
| 11 | - | |
| 12 | -@Schema(description = "管理后台 - 商品 SPU 详细 Response VO 包括关联的 SKU 等信息") | |
| 13 | -@Data | |
| 14 | -@EqualsAndHashCode(callSuper = true) | |
| 15 | -@ToString(callSuper = true) | |
| 16 | -public class ProductSpuDetailRespVO extends ProductSpuRespVO { | |
| 17 | - | |
| 18 | - // ========== SKU 相关字段 ========= | |
| 19 | - | |
| 20 | - /** | |
| 21 | - * SKU 数组 | |
| 22 | - */ | |
| 23 | - private List<Sku> skus; | |
| 24 | - | |
| 25 | - @Schema(description = "管理后台 - 商品 SKU 详细 Response VO") | |
| 26 | - @Data | |
| 27 | - @EqualsAndHashCode(callSuper = true) | |
| 28 | - @ToString(callSuper = true) | |
| 29 | - public static class Sku extends ProductSkuBaseVO { | |
| 30 | - | |
| 31 | - /** | |
| 32 | - * 属性数组 | |
| 33 | - */ | |
| 34 | - private List<ProductPropertyValueDetailRespVO> properties; | |
| 35 | - | |
| 36 | - } | |
| 37 | - | |
| 38 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuPageReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.spu.vo; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageParam; | |
| 4 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 5 | -import lombok.Data; | |
| 6 | -import lombok.EqualsAndHashCode; | |
| 7 | -import lombok.ToString; | |
| 8 | - | |
| 9 | -@Schema(description = "管理后台 - 商品 SPU 分页 Request VO") | |
| 10 | -@Data | |
| 11 | -@EqualsAndHashCode(callSuper = true) | |
| 12 | -@ToString(callSuper = true) | |
| 13 | -public class ProductSpuPageReqVO extends PageParam { | |
| 14 | - | |
| 15 | - @Schema(description = "商品名称", example = "yutou") | |
| 16 | - private String name; | |
| 17 | - | |
| 18 | - @Schema(description = "商品编码", example = "yudaoyuanma") | |
| 19 | - private String code; | |
| 20 | - | |
| 21 | - @Schema(description = "分类编号", example = "1") | |
| 22 | - private Long categoryId; | |
| 23 | - | |
| 24 | - @Schema(description = "商品品牌编号", example = "1") | |
| 25 | - private Long brandId; | |
| 26 | - | |
| 27 | - @Schema(description = "上下架状态 参见 ProductSpuStatusEnum 枚举值", example = "1") | |
| 28 | - private Integer status; | |
| 29 | - | |
| 30 | - @Schema(description = "销量最小值", example = "1") | |
| 31 | - private Integer salesCountMin; | |
| 32 | - | |
| 33 | - @Schema(description = "销量最大值", example = "1024") | |
| 34 | - private Integer salesCountMax; | |
| 35 | - | |
| 36 | - @Schema(description = "市场价最小值", example = "1") | |
| 37 | - private Integer marketPriceMin; | |
| 38 | - | |
| 39 | - @Schema(description = "市场价最大值", example = "1024") | |
| 40 | - private Integer marketPriceMax; | |
| 41 | - | |
| 42 | - @Schema(description = "是否库存告警", example = "true") | |
| 43 | - private Boolean alarmStock; | |
| 44 | - | |
| 45 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.spu.vo; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | -import lombok.EqualsAndHashCode; | |
| 6 | -import lombok.ToString; | |
| 7 | - | |
| 8 | -import java.time.LocalDateTime; | |
| 9 | - | |
| 10 | -@Schema(description = "管理后台 - 商品 SPU Response VO") | |
| 11 | -@Data | |
| 12 | -@EqualsAndHashCode(callSuper = true) | |
| 13 | -@ToString(callSuper = true) | |
| 14 | -public class ProductSpuRespVO extends ProductSpuBaseVO { | |
| 15 | - | |
| 16 | - @Schema(description = "主键", required = true, example = "1") | |
| 17 | - private Long id; | |
| 18 | - | |
| 19 | - @Schema(description = "创建时间") | |
| 20 | - private LocalDateTime createTime; | |
| 21 | - | |
| 22 | - // ========== SKU 相关字段 ========= | |
| 23 | - | |
| 24 | - @ApiModelProperty(value = "库存", required = true, example = "true") | |
| 25 | - private Integer totalStock; | |
| 26 | - | |
| 27 | - @ApiModelProperty(value = " 最小价格,单位使用:分", required = true, example = "1024") | |
| 28 | - private Integer minPrice; | |
| 29 | - | |
| 30 | - @ApiModelProperty(value = "最大价格,单位使用:分", required = true, example = "1024") | |
| 31 | - private Integer maxPrice; | |
| 32 | - | |
| 33 | - @ApiModelProperty(value = "商品销量", example = "1024") | |
| 34 | - private Integer salesCount; | |
| 35 | - | |
| 36 | - // ========== 统计相关字段 ========= | |
| 37 | - | |
| 38 | - @ApiModelProperty(value = "点击量", example = "1024") | |
| 39 | - private Integer clickCount; | |
| 40 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuSimpleRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.spu.vo; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | -import lombok.EqualsAndHashCode; | |
| 6 | -import lombok.ToString; | |
| 7 | - | |
| 8 | -@Schema(description = "管理后台 - 商品 SPU 精简 Response VO") | |
| 9 | -@Data | |
| 10 | -@EqualsAndHashCode(callSuper = true) | |
| 11 | -@ToString(callSuper = true) | |
| 12 | -public class ProductSpuSimpleRespVO extends ProductSpuBaseVO { | |
| 13 | - | |
| 14 | - @Schema(description = "主键", required = true, example = "1") | |
| 15 | - private Long id; | |
| 16 | - | |
| 17 | - @Schema(description = "商品名称", required = true, example = "芋道") | |
| 18 | - private String name; | |
| 19 | - | |
| 20 | - @Schema(description = " 最小价格,单位使用:分", required = true, example = "1024") | |
| 21 | - private Integer minPrice; | |
| 22 | - | |
| 23 | - @Schema(description = "最大价格,单位使用:分", required = true, example = "1024") | |
| 24 | - private Integer maxPrice; | |
| 25 | - | |
| 26 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuUpdateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.admin.spu.vo; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuCreateOrUpdateReqVO; | |
| 4 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 5 | -import lombok.Data; | |
| 6 | -import lombok.EqualsAndHashCode; | |
| 7 | -import lombok.ToString; | |
| 8 | - | |
| 9 | -import javax.validation.Valid; | |
| 10 | -import javax.validation.constraints.NotNull; | |
| 11 | -import java.util.List; | |
| 12 | - | |
| 13 | -@Schema(description = "管理后台 - 商品 SPU 更新 Request VO") | |
| 14 | -@Data | |
| 15 | -@EqualsAndHashCode(callSuper = true) | |
| 16 | -@ToString(callSuper = true) | |
| 17 | -public class ProductSpuUpdateReqVO extends ProductSpuBaseVO { | |
| 18 | - | |
| 19 | - @Schema(description = "商品编号", required = true, example = "1") | |
| 20 | - @NotNull(message = "商品编号不能为空") | |
| 21 | - private Long id; | |
| 22 | - | |
| 23 | - /** | |
| 24 | - * SKU 数组 | |
| 25 | - */ | |
| 26 | - @Valid | |
| 27 | - private List<ProductSkuCreateOrUpdateReqVO> skus; | |
| 28 | - | |
| 29 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/category/AppCategoryController.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.app.category; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.CommonResult; | |
| 4 | -import cn.iocoder.yudao.module.product.controller.app.category.vo.AppCategoryRespVO; | |
| 5 | -import cn.iocoder.yudao.module.product.convert.category.ProductCategoryConvert; | |
| 6 | -import cn.iocoder.yudao.module.product.dal.dataobject.category.ProductCategoryDO; | |
| 7 | -import cn.iocoder.yudao.module.product.service.category.ProductCategoryService; | |
| 8 | -import io.swagger.v3.oas.annotations.tags.Tag; | |
| 9 | -import io.swagger.v3.oas.annotations.Operation; | |
| 10 | -import org.springframework.validation.annotation.Validated; | |
| 11 | -import org.springframework.web.bind.annotation.GetMapping; | |
| 12 | -import org.springframework.web.bind.annotation.RequestMapping; | |
| 13 | -import org.springframework.web.bind.annotation.RestController; | |
| 14 | - | |
| 15 | -import javax.annotation.Resource; | |
| 16 | -import java.util.Comparator; | |
| 17 | -import java.util.List; | |
| 18 | - | |
| 19 | -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | |
| 20 | - | |
| 21 | -@Tag(name = "用户 APP - 商品分类") | |
| 22 | -@RestController | |
| 23 | -@RequestMapping("/product/category") | |
| 24 | -@Validated | |
| 25 | -public class AppCategoryController { | |
| 26 | - | |
| 27 | - @Resource | |
| 28 | - private ProductCategoryService categoryService; | |
| 29 | - | |
| 30 | - @GetMapping("/list") | |
| 31 | - @Operation(summary = "获得商品分类列表") | |
| 32 | - public CommonResult<List<AppCategoryRespVO>> getProductCategoryList() { | |
| 33 | - List<ProductCategoryDO> list = categoryService.getEnableCategoryList(); | |
| 34 | - list.sort(Comparator.comparing(ProductCategoryDO::getSort)); | |
| 35 | - return success(ProductCategoryConvert.INSTANCE.convertList03(list)); | |
| 36 | - } | |
| 37 | - | |
| 38 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/category/vo/AppCategoryRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.app.category.vo; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | - | |
| 6 | -import javax.validation.constraints.NotBlank; | |
| 7 | -import javax.validation.constraints.NotNull; | |
| 8 | - | |
| 9 | -@Data | |
| 10 | -@Schema(description = "用户 APP - 商品分类 Response VO") | |
| 11 | -public class AppCategoryRespVO { | |
| 12 | - | |
| 13 | - @Schema(description = "分类编号", required = true, example = "2") | |
| 14 | - private Long id; | |
| 15 | - | |
| 16 | - @Schema(description = "父分类编号", required = true, example = "1") | |
| 17 | - @NotNull(message = "父分类编号不能为空") | |
| 18 | - private Long parentId; | |
| 19 | - | |
| 20 | - @Schema(description = "分类名称", required = true, example = "办公文具") | |
| 21 | - @NotBlank(message = "分类名称不能为空") | |
| 22 | - private String name; | |
| 23 | - | |
| 24 | - @Schema(description = "分类图片", required = true) | |
| 25 | - @NotBlank(message = "分类图片不能为空") | |
| 26 | - private String picUrl; | |
| 27 | - | |
| 28 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/property/package-info.java deleted
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/property/vo/property/package-info.java deleted
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/property/vo/value/AppProductPropertyValueDetailRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.app.property.vo.value; | |
| 2 | - | |
| 3 | -import io.swagger.annotations.ApiModel; | |
| 4 | -import io.swagger.annotations.ApiModelProperty; | |
| 5 | -import lombok.Data; | |
| 6 | - | |
| 7 | -@ApiModel("用户 App - 商品属性值的明细 Response VO") | |
| 8 | -@Data | |
| 9 | -public class AppProductPropertyValueDetailRespVO { | |
| 10 | - | |
| 11 | - @ApiModelProperty(value = "属性的编号", required = true, example = "1") | |
| 12 | - private Long propertyId; | |
| 13 | - | |
| 14 | - @ApiModelProperty(value = "属性的名称", required = true, example = "颜色") | |
| 15 | - private String propertyName; | |
| 16 | - | |
| 17 | - @ApiModelProperty(value = "属性值的编号", required = true, example = "1024") | |
| 18 | - private Long valueId; | |
| 19 | - | |
| 20 | - @ApiModelProperty(value = "属性值的名称", required = true, example = "红色") | |
| 21 | - private String valueName; | |
| 22 | - | |
| 23 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/AppProductSpuController.http deleted
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/AppProductSpuController.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.app.spu; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | |
| 4 | -import cn.iocoder.yudao.framework.common.pojo.CommonResult; | |
| 5 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 6 | -import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuPageReqVO; | |
| 7 | -import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuDetailRespVO; | |
| 8 | -import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuPageItemRespVO; | |
| 9 | -import cn.iocoder.yudao.module.product.convert.sku.ProductSkuConvert; | |
| 10 | -import cn.iocoder.yudao.module.product.convert.spu.ProductSpuConvert; | |
| 11 | -import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; | |
| 12 | -import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; | |
| 13 | -import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum; | |
| 14 | -import cn.iocoder.yudao.module.product.service.property.ProductPropertyValueService; | |
| 15 | -import cn.iocoder.yudao.module.product.service.property.bo.ProductPropertyValueDetailRespBO; | |
| 16 | -import cn.iocoder.yudao.module.product.service.sku.ProductSkuService; | |
| 17 | -import cn.iocoder.yudao.module.product.service.spu.ProductSpuService; | |
| 18 | -import io.swagger.v3.oas.annotations.tags.Tag; | |
| 19 | -import io.swagger.v3.oas.annotations.Operation; | |
| 20 | -import org.springframework.validation.annotation.Validated; | |
| 21 | -import org.springframework.web.bind.annotation.GetMapping; | |
| 22 | -import org.springframework.web.bind.annotation.RequestMapping; | |
| 23 | -import org.springframework.web.bind.annotation.RequestParam; | |
| 24 | -import org.springframework.web.bind.annotation.RestController; | |
| 25 | - | |
| 26 | -import javax.annotation.Resource; | |
| 27 | -import javax.validation.Valid; | |
| 28 | -import java.util.List; | |
| 29 | - | |
| 30 | -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | |
| 31 | -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | |
| 32 | -import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.SPU_NOT_ENABLE; | |
| 33 | -import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.SPU_NOT_EXISTS; | |
| 34 | - | |
| 35 | -@Tag(name = "用户 APP - 商品spu") | |
| 36 | -@RestController | |
| 37 | -@RequestMapping("/product/spu") | |
| 38 | -@Validated | |
| 39 | -public class AppProductSpuController { | |
| 40 | - | |
| 41 | - @Resource | |
| 42 | - private ProductSpuService productSpuService; | |
| 43 | - @Resource | |
| 44 | - private ProductSkuService productSkuService; | |
| 45 | - @Resource | |
| 46 | - private ProductPropertyValueService productPropertyValueService; | |
| 47 | - | |
| 48 | - @GetMapping("/page") | |
| 49 | - @Operation(summary = "获得商品 SPU 分页") | |
| 50 | - public CommonResult<PageResult<AppProductSpuPageItemRespVO>> getSpuPage(@Valid AppProductSpuPageReqVO pageVO) { | |
| 51 | - PageResult<ProductSpuDO> pageResult = productSpuService.getSpuPage(pageVO, ProductSpuStatusEnum.ENABLE.getStatus()); | |
| 52 | - return success(ProductSpuConvert.INSTANCE.convertPage02(pageResult)); | |
| 53 | - } | |
| 54 | - | |
| 55 | - @GetMapping("/get-detail") | |
| 56 | - @Operation(summary = "获得商品 SPU 明细") | |
| 57 | - @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class) | |
| 58 | - public CommonResult<AppProductSpuDetailRespVO> getSpuDetail(@RequestParam("id") Long id) { | |
| 59 | - // 获得商品 SPU | |
| 60 | - ProductSpuDO spu = productSpuService.getSpu(id); | |
| 61 | - if (spu == null) { | |
| 62 | - throw exception(SPU_NOT_EXISTS); | |
| 63 | - } | |
| 64 | - if (!ProductSpuStatusEnum.isEnable(spu.getStatus())) { | |
| 65 | - throw exception(SPU_NOT_ENABLE); | |
| 66 | - } | |
| 67 | - | |
| 68 | - // 查询商品 SKU | |
| 69 | - List<ProductSkuDO> skus = productSkuService.getSkuListBySpuIdAndStatus(spu.getId(), | |
| 70 | - CommonStatusEnum.ENABLE.getStatus()); | |
| 71 | - // 查询商品属性 | |
| 72 | - List<ProductPropertyValueDetailRespBO> propertyValues = productPropertyValueService | |
| 73 | - .getPropertyValueDetailList(ProductSkuConvert.INSTANCE.convertPropertyValueIds(skus)); | |
| 74 | - // 拼接 | |
| 75 | - return success(ProductSpuConvert.INSTANCE.convert(spu, skus, propertyValues)); | |
| 76 | - } | |
| 77 | - | |
| 78 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppProductSpuDetailRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.app.spu.vo; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.module.product.controller.app.property.vo.value.AppProductPropertyValueDetailRespVO; | |
| 4 | -import io.swagger.annotations.ApiModel; | |
| 5 | -import io.swagger.annotations.ApiModelProperty; | |
| 6 | -import lombok.Data; | |
| 7 | - | |
| 8 | -import java.util.List; | |
| 9 | - | |
| 10 | -@ApiModel("用户 App - 商品 SPU 明细 Response VO") | |
| 11 | -@Data | |
| 12 | -public class AppProductSpuDetailRespVO { | |
| 13 | - | |
| 14 | - @ApiModelProperty(value = "商品 SPU 编号", required = true, example = "1") | |
| 15 | - private Long id; | |
| 16 | - | |
| 17 | - // ========== 基本信息 ========= | |
| 18 | - | |
| 19 | - @ApiModelProperty(value = "商品名称", required = true, example = "芋道") | |
| 20 | - private String name; | |
| 21 | - | |
| 22 | - @ApiModelProperty(value = "促销语", example = "好吃!") | |
| 23 | - private String sellPoint; | |
| 24 | - | |
| 25 | - @ApiModelProperty(value = "商品详情", required = true, example = "我是商品描述") | |
| 26 | - private String description; | |
| 27 | - | |
| 28 | - @ApiModelProperty(value = "商品分类编号", required = true, example = "1") | |
| 29 | - private Long categoryId; | |
| 30 | - | |
| 31 | - @ApiModelProperty(value = "商品图片的数组", required = true) | |
| 32 | - private List<String> picUrls; | |
| 33 | - | |
| 34 | - @ApiModelProperty(value = "商品视频", required = true) | |
| 35 | - private String videoUrl; | |
| 36 | - | |
| 37 | - // ========== SKU 相关字段 ========= | |
| 38 | - | |
| 39 | - @ApiModelProperty(value = "规格类型", required = true, example = "1", notes = "参见 ProductSpuSpecTypeEnum 枚举类") | |
| 40 | - private Integer specType; | |
| 41 | - | |
| 42 | - @ApiModelProperty(value = "是否展示库存", required = true, example = "true") | |
| 43 | - private Boolean showStock; | |
| 44 | - | |
| 45 | - @ApiModelProperty(value = " 最小价格,单位使用:分", required = true, example = "1024") | |
| 46 | - private Integer minPrice; | |
| 47 | - | |
| 48 | - @ApiModelProperty(value = "最大价格,单位使用:分", required = true, example = "1024") | |
| 49 | - private Integer maxPrice; | |
| 50 | - | |
| 51 | - /** | |
| 52 | - * SKU 数组 | |
| 53 | - */ | |
| 54 | - private List<Sku> skus; | |
| 55 | - | |
| 56 | - // ========== 统计相关字段 ========= | |
| 57 | - | |
| 58 | - @ApiModelProperty(value = "商品销量", required = true, example = "1024") | |
| 59 | - private Integer salesCount; | |
| 60 | - | |
| 61 | - @ApiModel("用户 App - 商品 SPU 明细的 SKU 信息") | |
| 62 | - @Data | |
| 63 | - public static class Sku { | |
| 64 | - | |
| 65 | - @ApiModelProperty(value = "商品 SKU 编号", example = "1") | |
| 66 | - private Long id; | |
| 67 | - | |
| 68 | - /** | |
| 69 | - * 商品属性数组 | |
| 70 | - */ | |
| 71 | - private List<AppProductPropertyValueDetailRespVO> properties; | |
| 72 | - | |
| 73 | - @ApiModelProperty(value = "销售价格,单位:分", required = true, example = "1024", notes = "单位:分") | |
| 74 | - private Integer price; | |
| 75 | - | |
| 76 | - @ApiModelProperty(value = "市场价", example = "1024", notes = "单位:分") | |
| 77 | - private Integer marketPrice; | |
| 78 | - | |
| 79 | - @ApiModelProperty(value = "图片地址", required = true, example = "https://www.iocoder.cn/xx.png") | |
| 80 | - private String picUrl; | |
| 81 | - | |
| 82 | - @ApiModelProperty(value = "库存", required = true, example = "1") | |
| 83 | - private Integer stock; | |
| 84 | - | |
| 85 | - @ApiModelProperty(value = "商品重量", example = "1", notes = "单位:kg 千克") | |
| 86 | - private Double weight; | |
| 87 | - | |
| 88 | - @ApiModelProperty(value = "商品体积", example = "1024", notes = "单位:m^3 平米") | |
| 89 | - private Double volume; | |
| 90 | - } | |
| 91 | - | |
| 92 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppProductSpuPageItemRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.app.spu.vo; | |
| 2 | - | |
| 3 | -import io.swagger.annotations.ApiModel; | |
| 4 | -import io.swagger.annotations.ApiModelProperty; | |
| 5 | -import lombok.Data; | |
| 6 | - | |
| 7 | -import javax.validation.constraints.NotEmpty; | |
| 8 | -import javax.validation.constraints.NotNull; | |
| 9 | -import java.util.List; | |
| 10 | - | |
| 11 | -@ApiModel("用户 App - 商品 SPU 分页项 Response VO") | |
| 12 | -@Data | |
| 13 | -public class AppProductSpuPageItemRespVO { | |
| 14 | - | |
| 15 | - @ApiModelProperty(value = "商品 SPU 编号", required = true, example = "1") | |
| 16 | - private Long id; | |
| 17 | - | |
| 18 | - @ApiModelProperty(value = "商品名称", required = true, example = "芋道") | |
| 19 | - @NotEmpty(message = "商品名称不能为空") | |
| 20 | - private String name; | |
| 21 | - | |
| 22 | - @ApiModelProperty(value = "分类编号", required = true) | |
| 23 | - @NotNull(message = "分类编号不能为空") | |
| 24 | - private Long categoryId; | |
| 25 | - | |
| 26 | - @ApiModelProperty(value = "商品图片的数组", required = true) | |
| 27 | - private List<String> picUrls; | |
| 28 | - | |
| 29 | - @ApiModelProperty(value = " 最小价格,单位使用:分", required = true, example = "1024") | |
| 30 | - private Integer minPrice; | |
| 31 | - | |
| 32 | - @ApiModelProperty(value = "最大价格,单位使用:分", required = true, example = "1024") | |
| 33 | - private Integer maxPrice; | |
| 34 | - | |
| 35 | - // ========== 统计相关字段 ========= | |
| 36 | - | |
| 37 | - @ApiModelProperty(value = "商品销量", example = "1024") | |
| 38 | - private Integer salesCount; | |
| 39 | - | |
| 40 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppProductSpuPageReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.controller.app.spu.vo; | |
| 2 | - | |
| 3 | -import cn.hutool.core.util.StrUtil; | |
| 4 | -import cn.iocoder.yudao.framework.common.pojo.PageParam; | |
| 5 | -import com.fasterxml.jackson.annotation.JsonIgnore; | |
| 6 | -import io.swagger.annotations.ApiModel; | |
| 7 | -import io.swagger.annotations.ApiModelProperty; | |
| 8 | -import lombok.Data; | |
| 9 | -import lombok.EqualsAndHashCode; | |
| 10 | -import lombok.ToString; | |
| 11 | - | |
| 12 | -import javax.validation.constraints.AssertTrue; | |
| 13 | - | |
| 14 | -@ApiModel("用户 App - 商品 SPU 分页 Request VO") | |
| 15 | -@Data | |
| 16 | -@EqualsAndHashCode(callSuper = true) | |
| 17 | -@ToString(callSuper = true) | |
| 18 | -public class AppProductSpuPageReqVO extends PageParam { | |
| 19 | - | |
| 20 | - public static final String SORT_FIELD_PRICE = "price"; | |
| 21 | - public static final String SORT_FIELD_SALES_COUNT = "salesCount"; | |
| 22 | - | |
| 23 | - @ApiModelProperty(value = "分类编号", example = "1") | |
| 24 | - private Long categoryId; | |
| 25 | - | |
| 26 | - @ApiModelProperty(value = "关键字", example = "好看") | |
| 27 | - private String keyword; | |
| 28 | - | |
| 29 | - @ApiModelProperty(value = "排序字段", example = "price", notes = "参见 AppSpuPageReqVO.SORT_FIELD_XXX 常量") | |
| 30 | - private String sortField; | |
| 31 | - | |
| 32 | - @ApiModelProperty(value = "排序方式", example = "true", notes = "true - 升序;false - 降序") | |
| 33 | - private Boolean sortAsc; | |
| 34 | - | |
| 35 | - @AssertTrue(message = "排序字段不合法") | |
| 36 | - @JsonIgnore | |
| 37 | - public boolean isSortFieldValid() { | |
| 38 | - if (StrUtil.isEmpty(sortField)) { | |
| 39 | - return true; | |
| 40 | - } | |
| 41 | - return StrUtil.equalsAny(sortField, SORT_FIELD_PRICE, SORT_FIELD_SALES_COUNT); | |
| 42 | - } | |
| 43 | - | |
| 44 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppSpuPageReqVO.java deleted
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppSpuPageRespVO.java deleted
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppSpuRespVO.java deleted
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/brand/ProductBrandConvert.java deleted
| 1 | -package cn.iocoder.yudao.module.product.convert.brand; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 4 | -import cn.iocoder.yudao.module.product.controller.admin.brand.vo.ProductBrandCreateReqVO; | |
| 5 | -import cn.iocoder.yudao.module.product.controller.admin.brand.vo.ProductBrandRespVO; | |
| 6 | -import cn.iocoder.yudao.module.product.controller.admin.brand.vo.ProductBrandUpdateReqVO; | |
| 7 | -import cn.iocoder.yudao.module.product.dal.dataobject.brand.ProductBrandDO; | |
| 8 | -import org.mapstruct.Mapper; | |
| 9 | -import org.mapstruct.factory.Mappers; | |
| 10 | - | |
| 11 | -import java.util.List; | |
| 12 | - | |
| 13 | -/** | |
| 14 | - * 品牌 Convert | |
| 15 | - * | |
| 16 | - * @author 芋道源码 | |
| 17 | - */ | |
| 18 | -@Mapper | |
| 19 | -public interface ProductBrandConvert { | |
| 20 | - | |
| 21 | - ProductBrandConvert INSTANCE = Mappers.getMapper(ProductBrandConvert.class); | |
| 22 | - | |
| 23 | - ProductBrandDO convert(ProductBrandCreateReqVO bean); | |
| 24 | - | |
| 25 | - ProductBrandDO convert(ProductBrandUpdateReqVO bean); | |
| 26 | - | |
| 27 | - ProductBrandRespVO convert(ProductBrandDO bean); | |
| 28 | - | |
| 29 | - List<ProductBrandRespVO> convertList(List<ProductBrandDO> list); | |
| 30 | - | |
| 31 | - PageResult<ProductBrandRespVO> convertPage(PageResult<ProductBrandDO> page); | |
| 32 | - | |
| 33 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/category/ProductCategoryConvert.java deleted
| 1 | -package cn.iocoder.yudao.module.product.convert.category; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.module.product.controller.admin.category.vo.ProductCategoryCreateReqVO; | |
| 4 | -import cn.iocoder.yudao.module.product.controller.admin.category.vo.ProductCategoryRespVO; | |
| 5 | -import cn.iocoder.yudao.module.product.controller.admin.category.vo.ProductCategoryUpdateReqVO; | |
| 6 | -import cn.iocoder.yudao.module.product.controller.app.category.vo.AppCategoryRespVO; | |
| 7 | -import cn.iocoder.yudao.module.product.dal.dataobject.category.ProductCategoryDO; | |
| 8 | -import org.mapstruct.Mapper; | |
| 9 | -import org.mapstruct.factory.Mappers; | |
| 10 | - | |
| 11 | -import java.util.List; | |
| 12 | - | |
| 13 | -/** | |
| 14 | - * 商品分类 Convert | |
| 15 | - * | |
| 16 | - * @author 芋道源码 | |
| 17 | - */ | |
| 18 | -@Mapper | |
| 19 | -public interface ProductCategoryConvert { | |
| 20 | - | |
| 21 | - ProductCategoryConvert INSTANCE = Mappers.getMapper(ProductCategoryConvert.class); | |
| 22 | - | |
| 23 | - ProductCategoryDO convert(ProductCategoryCreateReqVO bean); | |
| 24 | - | |
| 25 | - ProductCategoryDO convert(ProductCategoryUpdateReqVO bean); | |
| 26 | - | |
| 27 | - ProductCategoryRespVO convert(ProductCategoryDO bean); | |
| 28 | - | |
| 29 | - List<ProductCategoryRespVO> convertList(List<ProductCategoryDO> list); | |
| 30 | - | |
| 31 | - List<AppCategoryRespVO> convertList03(List<ProductCategoryDO> list); | |
| 32 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/property/ProductPropertyConvert.java deleted
| 1 | -package cn.iocoder.yudao.module.product.convert.property; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 4 | -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | |
| 5 | -import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyAndValueRespVO; | |
| 6 | -import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyCreateReqVO; | |
| 7 | -import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyRespVO; | |
| 8 | -import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyUpdateReqVO; | |
| 9 | -import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO; | |
| 10 | -import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyValueDO; | |
| 11 | -import org.mapstruct.Mapper; | |
| 12 | -import org.mapstruct.factory.Mappers; | |
| 13 | - | |
| 14 | -import java.util.List; | |
| 15 | -import java.util.Map; | |
| 16 | - | |
| 17 | -/** | |
| 18 | - * 属性项 Convert | |
| 19 | - * | |
| 20 | - * @author 芋道源码 | |
| 21 | - */ | |
| 22 | -@Mapper | |
| 23 | -public interface ProductPropertyConvert { | |
| 24 | - | |
| 25 | - ProductPropertyConvert INSTANCE = Mappers.getMapper(ProductPropertyConvert.class); | |
| 26 | - | |
| 27 | - ProductPropertyDO convert(ProductPropertyCreateReqVO bean); | |
| 28 | - | |
| 29 | - ProductPropertyDO convert(ProductPropertyUpdateReqVO bean); | |
| 30 | - | |
| 31 | - ProductPropertyRespVO convert(ProductPropertyDO bean); | |
| 32 | - | |
| 33 | - List<ProductPropertyRespVO> convertList(List<ProductPropertyDO> list); | |
| 34 | - | |
| 35 | - PageResult<ProductPropertyRespVO> convertPage(PageResult<ProductPropertyDO> page); | |
| 36 | - | |
| 37 | - default List<ProductPropertyAndValueRespVO> convertList(List<ProductPropertyDO> keys, List<ProductPropertyValueDO> values) { | |
| 38 | - Map<Long, List<ProductPropertyValueDO>> valueMap = CollectionUtils.convertMultiMap(values, ProductPropertyValueDO::getPropertyId); | |
| 39 | - return CollectionUtils.convertList(keys, key -> { | |
| 40 | - ProductPropertyAndValueRespVO respVO = convert02(key); | |
| 41 | - respVO.setValues(convertList02(valueMap.get(key.getId()))); | |
| 42 | - return respVO; | |
| 43 | - }); | |
| 44 | - } | |
| 45 | - ProductPropertyAndValueRespVO convert02(ProductPropertyDO bean); | |
| 46 | - List<ProductPropertyAndValueRespVO.Value> convertList02(List<ProductPropertyValueDO> list); | |
| 47 | - | |
| 48 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/propertyvalue/ProductPropertyValueConvert.java deleted
| 1 | -package cn.iocoder.yudao.module.product.convert.propertyvalue; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 4 | -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | |
| 5 | -import cn.iocoder.yudao.framework.common.util.collection.MapUtils; | |
| 6 | -import cn.iocoder.yudao.module.product.api.property.dto.ProductPropertyValueDetailRespDTO; | |
| 7 | -import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueCreateReqVO; | |
| 8 | -import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueRespVO; | |
| 9 | -import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueUpdateReqVO; | |
| 10 | -import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO; | |
| 11 | -import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyValueDO; | |
| 12 | -import cn.iocoder.yudao.module.product.service.property.bo.ProductPropertyValueDetailRespBO; | |
| 13 | -import org.mapstruct.Mapper; | |
| 14 | -import org.mapstruct.factory.Mappers; | |
| 15 | - | |
| 16 | -import java.util.List; | |
| 17 | -import java.util.Map; | |
| 18 | - | |
| 19 | -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; | |
| 20 | - | |
| 21 | -/** | |
| 22 | - * 属性值 Convert | |
| 23 | - * | |
| 24 | - * @author 芋道源码 | |
| 25 | - */ | |
| 26 | -@Mapper | |
| 27 | -public interface ProductPropertyValueConvert { | |
| 28 | - | |
| 29 | - ProductPropertyValueConvert INSTANCE = Mappers.getMapper(ProductPropertyValueConvert.class); | |
| 30 | - | |
| 31 | - ProductPropertyValueDO convert(ProductPropertyValueCreateReqVO bean); | |
| 32 | - | |
| 33 | - ProductPropertyValueDO convert(ProductPropertyValueUpdateReqVO bean); | |
| 34 | - | |
| 35 | - ProductPropertyValueRespVO convert(ProductPropertyValueDO bean); | |
| 36 | - | |
| 37 | - List<ProductPropertyValueRespVO> convertList(List<ProductPropertyValueDO> list); | |
| 38 | - | |
| 39 | - PageResult<ProductPropertyValueRespVO> convertPage(PageResult<ProductPropertyValueDO> page); | |
| 40 | - | |
| 41 | - default List<ProductPropertyValueDetailRespBO> convertList(List<ProductPropertyValueDO> values, List<ProductPropertyDO> keys) { | |
| 42 | - Map<Long, ProductPropertyDO> keyMap = convertMap(keys, ProductPropertyDO::getId); | |
| 43 | - return CollectionUtils.convertList(values, value -> { | |
| 44 | - ProductPropertyValueDetailRespBO valueDetail = new ProductPropertyValueDetailRespBO() | |
| 45 | - .setValueId(value.getId()).setValueName(value.getName()); | |
| 46 | - // 设置属性项 | |
| 47 | - MapUtils.findAndThen(keyMap, value.getPropertyId(), | |
| 48 | - key -> valueDetail.setPropertyId(key.getId()).setPropertyName(key.getName())); | |
| 49 | - return valueDetail; | |
| 50 | - }); | |
| 51 | - } | |
| 52 | - | |
| 53 | - List<ProductPropertyValueDetailRespDTO> convertList02(List<ProductPropertyValueDetailRespBO> list); | |
| 54 | - | |
| 55 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/sku/ProductSkuConvert.java deleted
| 1 | -package cn.iocoder.yudao.module.product.convert.sku; | |
| 2 | - | |
| 3 | -import cn.hutool.core.collection.CollUtil; | |
| 4 | -import cn.hutool.core.util.StrUtil; | |
| 5 | -import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO; | |
| 6 | -import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuUpdateStockReqDTO; | |
| 7 | -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuCreateOrUpdateReqVO; | |
| 8 | -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuOptionRespVO; | |
| 9 | -import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuRespVO; | |
| 10 | -import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuDetailRespVO; | |
| 11 | -import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; | |
| 12 | -import org.mapstruct.Mapper; | |
| 13 | -import org.mapstruct.factory.Mappers; | |
| 14 | - | |
| 15 | -import java.util.*; | |
| 16 | -import java.util.stream.Collectors; | |
| 17 | - | |
| 18 | -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; | |
| 19 | - | |
| 20 | -/** | |
| 21 | - * 商品 SKU Convert | |
| 22 | - * | |
| 23 | - * @author 芋道源码 | |
| 24 | - */ | |
| 25 | -@Mapper | |
| 26 | -public interface ProductSkuConvert { | |
| 27 | - | |
| 28 | - ProductSkuConvert INSTANCE = Mappers.getMapper(ProductSkuConvert.class); | |
| 29 | - | |
| 30 | - ProductSkuDO convert(ProductSkuCreateOrUpdateReqVO bean); | |
| 31 | - | |
| 32 | - ProductSkuRespVO convert(ProductSkuDO bean); | |
| 33 | - | |
| 34 | - List<ProductSkuRespVO> convertList(List<ProductSkuDO> list); | |
| 35 | - | |
| 36 | - List<ProductSkuDO> convertList06(List<ProductSkuCreateOrUpdateReqVO> list); | |
| 37 | - | |
| 38 | - default List<ProductSkuDO> convertList06(List<ProductSkuCreateOrUpdateReqVO> list, Long spuId, String spuName) { | |
| 39 | - List<ProductSkuDO> result = convertList06(list); | |
| 40 | - result.forEach(item -> item.setSpuId(spuId).setSpuName(spuName)); | |
| 41 | - return result; | |
| 42 | - } | |
| 43 | - | |
| 44 | - ProductSkuRespDTO convert02(ProductSkuDO bean); | |
| 45 | - | |
| 46 | - List<ProductSpuDetailRespVO.Sku> convertList03(List<ProductSkuDO> list); | |
| 47 | - | |
| 48 | - List<ProductSkuRespDTO> convertList04(List<ProductSkuDO> list); | |
| 49 | - | |
| 50 | - List<ProductSkuOptionRespVO> convertList05(List<ProductSkuDO> skus); | |
| 51 | - | |
| 52 | - /** | |
| 53 | - * 获得 SPU 的库存变化 Map | |
| 54 | - * | |
| 55 | - * @param items SKU 库存变化 | |
| 56 | - * @param skus SKU 列表 | |
| 57 | - * @return SPU 的库存变化 Map | |
| 58 | - */ | |
| 59 | - default Map<Long, Integer> convertSpuStockMap(List<ProductSkuUpdateStockReqDTO.Item> items, | |
| 60 | - List<ProductSkuDO> skus) { | |
| 61 | - Map<Long, Long> skuIdAndSpuIdMap = convertMap(skus, ProductSkuDO::getId, ProductSkuDO::getSpuId); // SKU 与 SKU 编号的 Map 关系 | |
| 62 | - Map<Long, Integer> spuIdAndStockMap = new HashMap<>(); // SPU 的库存变化 Map 关系 | |
| 63 | - items.forEach(item -> { | |
| 64 | - Long spuId = skuIdAndSpuIdMap.get(item.getId()); | |
| 65 | - if (spuId == null) { | |
| 66 | - return; | |
| 67 | - } | |
| 68 | - Integer stock = spuIdAndStockMap.getOrDefault(spuId, 0) + item.getIncrCount(); | |
| 69 | - spuIdAndStockMap.put(spuId, stock); | |
| 70 | - }); | |
| 71 | - return spuIdAndStockMap; | |
| 72 | - } | |
| 73 | - | |
| 74 | - default Collection<Long> convertPropertyValueIds(List<ProductSkuDO> list) { | |
| 75 | - if (CollUtil.isEmpty(list)) { | |
| 76 | - return new HashSet<>(); | |
| 77 | - } | |
| 78 | - return list.stream().filter(item -> item.getProperties() != null) | |
| 79 | - .flatMap(p -> p.getProperties().stream()) // 遍历多个 Property 属性 | |
| 80 | - .map(ProductSkuDO.Property::getValueId) // 将每个 Property 转换成对应的 propertyId,最后形成集合 | |
| 81 | - .collect(Collectors.toSet()); | |
| 82 | - } | |
| 83 | - | |
| 84 | - default String buildPropertyKey(ProductSkuDO bean) { | |
| 85 | - if (CollUtil.isEmpty(bean.getProperties())) { | |
| 86 | - return StrUtil.EMPTY; | |
| 87 | - } | |
| 88 | - List<ProductSkuDO.Property> properties = new ArrayList<>(bean.getProperties()); | |
| 89 | - properties.sort(Comparator.comparing(ProductSkuDO.Property::getValueId)); | |
| 90 | - return properties.stream().map(m -> String.valueOf(m.getValueId())).collect(Collectors.joining()); | |
| 91 | - } | |
| 92 | - | |
| 93 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/spu/ProductSpuConvert.java deleted
| 1 | -package cn.iocoder.yudao.module.product.convert.spu; | |
| 2 | - | |
| 3 | -import cn.hutool.core.collection.CollUtil; | |
| 4 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 5 | -import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO; | |
| 6 | -import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueDetailRespVO; | |
| 7 | -import cn.iocoder.yudao.module.product.controller.admin.spu.vo.*; | |
| 8 | -import cn.iocoder.yudao.module.product.controller.app.property.vo.value.AppProductPropertyValueDetailRespVO; | |
| 9 | -import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuDetailRespVO; | |
| 10 | -import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuPageReqVO; | |
| 11 | -import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuPageItemRespVO; | |
| 12 | -import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; | |
| 13 | -import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; | |
| 14 | -import cn.iocoder.yudao.module.product.service.property.bo.ProductPropertyValueDetailRespBO; | |
| 15 | -import org.mapstruct.Mapper; | |
| 16 | -import org.mapstruct.factory.Mappers; | |
| 17 | - | |
| 18 | -import java.util.ArrayList; | |
| 19 | -import java.util.List; | |
| 20 | -import java.util.Map; | |
| 21 | - | |
| 22 | -import static cn.hutool.core.util.ObjectUtil.defaultIfNull; | |
| 23 | -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; | |
| 24 | - | |
| 25 | -/** | |
| 26 | - * 商品 SPU Convert | |
| 27 | - * | |
| 28 | - * @author 芋道源码 | |
| 29 | - */ | |
| 30 | -@Mapper | |
| 31 | -public interface ProductSpuConvert { | |
| 32 | - | |
| 33 | - ProductSpuConvert INSTANCE = Mappers.getMapper(ProductSpuConvert.class); | |
| 34 | - | |
| 35 | - ProductSpuDO convert(ProductSpuCreateReqVO bean); | |
| 36 | - | |
| 37 | - ProductSpuDO convert(ProductSpuUpdateReqVO bean); | |
| 38 | - | |
| 39 | - List<ProductSpuDO> convertList(List<ProductSpuDO> list); | |
| 40 | - | |
| 41 | - PageResult<ProductSpuRespVO> convertPage(PageResult<ProductSpuDO> page); | |
| 42 | - | |
| 43 | - ProductSpuPageReqVO convert(AppProductSpuPageReqVO bean); | |
| 44 | - | |
| 45 | - List<ProductSpuRespDTO> convertList2(List<ProductSpuDO> list); | |
| 46 | - | |
| 47 | - List<ProductSpuSimpleRespVO> convertList02(List<ProductSpuDO> list); | |
| 48 | - | |
| 49 | - default AppProductSpuDetailRespVO convert(ProductSpuDO spu, List<ProductSkuDO> skus, | |
| 50 | - List<ProductPropertyValueDetailRespBO> propertyValues) { | |
| 51 | - AppProductSpuDetailRespVO spuVO = convert02(spu) | |
| 52 | - .setSalesCount(spu.getSalesCount() + defaultIfNull(spu.getVirtualSalesCount(), 0)); | |
| 53 | - spuVO.setSkus(convertList03(skus)); | |
| 54 | - // 处理商品属性 | |
| 55 | - Map<Long, ProductPropertyValueDetailRespBO> propertyValueMap = convertMap(propertyValues, ProductPropertyValueDetailRespBO::getValueId); | |
| 56 | - for (int i = 0; i < skus.size(); i++) { | |
| 57 | - List<ProductSkuDO.Property> properties = skus.get(i).getProperties(); | |
| 58 | - if (CollUtil.isEmpty(properties)) { | |
| 59 | - continue; | |
| 60 | - } | |
| 61 | - AppProductSpuDetailRespVO.Sku sku = spuVO.getSkus().get(i); | |
| 62 | - sku.setProperties(new ArrayList<>(properties.size())); | |
| 63 | - // 遍历每个 properties,设置到 AppSpuDetailRespVO.Sku 中 | |
| 64 | - properties.forEach(property -> { | |
| 65 | - ProductPropertyValueDetailRespBO propertyValue = propertyValueMap.get(property.getValueId()); | |
| 66 | - if (propertyValue == null) { | |
| 67 | - return; | |
| 68 | - } | |
| 69 | - sku.getProperties().add(convert03(propertyValue)); | |
| 70 | - }); | |
| 71 | - } | |
| 72 | - return spuVO; | |
| 73 | - } | |
| 74 | - AppProductSpuDetailRespVO convert02(ProductSpuDO spu); | |
| 75 | - List<AppProductSpuDetailRespVO.Sku> convertList03(List<ProductSkuDO> skus); | |
| 76 | - AppProductPropertyValueDetailRespVO convert03(ProductPropertyValueDetailRespBO propertyValue); | |
| 77 | - | |
| 78 | - PageResult<AppProductSpuPageItemRespVO> convertPage02(PageResult<ProductSpuDO> page); | |
| 79 | - | |
| 80 | - default ProductSpuDetailRespVO convert03(ProductSpuDO spu, List<ProductSkuDO> skus, | |
| 81 | - List<ProductPropertyValueDetailRespBO> propertyValues) { | |
| 82 | - ProductSpuDetailRespVO spuVO = convert03(spu); | |
| 83 | - spuVO.setSkus(convertList04(skus)); | |
| 84 | - // 处理商品属性 | |
| 85 | - Map<Long, ProductPropertyValueDetailRespBO> propertyValueMap = convertMap(propertyValues, ProductPropertyValueDetailRespBO::getValueId); | |
| 86 | - for (int i = 0; i < skus.size(); i++) { | |
| 87 | - List<ProductSkuDO.Property> properties = skus.get(i).getProperties(); | |
| 88 | - if (CollUtil.isEmpty(properties)) { | |
| 89 | - continue; | |
| 90 | - } | |
| 91 | - ProductSpuDetailRespVO.Sku sku = spuVO.getSkus().get(i); | |
| 92 | - sku.setProperties(new ArrayList<>(properties.size())); | |
| 93 | - // 遍历每个 properties,设置到 AppSpuDetailRespVO.Sku 中 | |
| 94 | - properties.forEach(property -> { | |
| 95 | - ProductPropertyValueDetailRespBO propertyValue = propertyValueMap.get(property.getValueId()); | |
| 96 | - if (propertyValue == null) { | |
| 97 | - return; | |
| 98 | - } | |
| 99 | - sku.getProperties().add(convert04(propertyValue)); | |
| 100 | - }); | |
| 101 | - } | |
| 102 | - return spuVO; | |
| 103 | - } | |
| 104 | - ProductSpuDetailRespVO convert03(ProductSpuDO spu); | |
| 105 | - List<ProductSpuDetailRespVO.Sku> convertList04(List<ProductSkuDO> skus); | |
| 106 | - ProductPropertyValueDetailRespVO convert04(ProductPropertyValueDetailRespBO propertyValue); | |
| 107 | - | |
| 108 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/brand/ProductBrandDO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.dal.dataobject.brand; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | |
| 4 | -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | |
| 5 | -import com.baomidou.mybatisplus.annotation.TableId; | |
| 6 | -import com.baomidou.mybatisplus.annotation.TableName; | |
| 7 | -import lombok.*; | |
| 8 | - | |
| 9 | -/** | |
| 10 | - * 商品品牌 DO | |
| 11 | - * | |
| 12 | - * @author 芋道源码 | |
| 13 | - */ | |
| 14 | -@TableName("product_brand") | |
| 15 | -@Data | |
| 16 | -@EqualsAndHashCode(callSuper = true) | |
| 17 | -@ToString(callSuper = true) | |
| 18 | -@Builder | |
| 19 | -@NoArgsConstructor | |
| 20 | -@AllArgsConstructor | |
| 21 | -public class ProductBrandDO extends BaseDO { | |
| 22 | - | |
| 23 | - /** | |
| 24 | - * 品牌编号 | |
| 25 | - */ | |
| 26 | - @TableId | |
| 27 | - private Long id; | |
| 28 | - /** | |
| 29 | - * 品牌名称 | |
| 30 | - */ | |
| 31 | - private String name; | |
| 32 | - /** | |
| 33 | - * 品牌图片 | |
| 34 | - */ | |
| 35 | - private String picUrl; | |
| 36 | - /** | |
| 37 | - * 品牌排序 | |
| 38 | - */ | |
| 39 | - private Integer sort; | |
| 40 | - /** | |
| 41 | - * 品牌描述 | |
| 42 | - */ | |
| 43 | - private String description; | |
| 44 | - /** | |
| 45 | - * 状态 | |
| 46 | - * | |
| 47 | - * 枚举 {@link CommonStatusEnum} | |
| 48 | - */ | |
| 49 | - private Integer status; | |
| 50 | - | |
| 51 | - // TODO 芋艿:firstLetter 首字母 | |
| 52 | - | |
| 53 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/category/ProductCategoryDO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.dal.dataobject.category; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | |
| 4 | -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | |
| 5 | -import com.baomidou.mybatisplus.annotation.TableId; | |
| 6 | -import com.baomidou.mybatisplus.annotation.TableName; | |
| 7 | -import lombok.*; | |
| 8 | - | |
| 9 | -/** | |
| 10 | - * 商品分类 DO | |
| 11 | - * | |
| 12 | - * 商品分类一共两类: | |
| 13 | - * 1)一级分类:{@link #parentId} 等于 0 | |
| 14 | - * 2)二级 + 三级分类:{@link #parentId} 不等于 0 | |
| 15 | - * | |
| 16 | - * @author 芋道源码 | |
| 17 | - */ | |
| 18 | -@TableName("product_category") | |
| 19 | -@Data | |
| 20 | -@EqualsAndHashCode(callSuper = true) | |
| 21 | -@ToString(callSuper = true) | |
| 22 | -@Builder | |
| 23 | -@NoArgsConstructor | |
| 24 | -@AllArgsConstructor | |
| 25 | -public class ProductCategoryDO extends BaseDO { | |
| 26 | - | |
| 27 | - /** | |
| 28 | - * 父分类编号 - 根分类 | |
| 29 | - */ | |
| 30 | - public static final Long PARENT_ID_NULL = 0L; | |
| 31 | - | |
| 32 | - /** | |
| 33 | - * 分类编号 | |
| 34 | - */ | |
| 35 | - @TableId | |
| 36 | - private Long id; | |
| 37 | - /** | |
| 38 | - * 父分类编号 | |
| 39 | - */ | |
| 40 | - private Long parentId; | |
| 41 | - /** | |
| 42 | - * 分类名称 | |
| 43 | - */ | |
| 44 | - private String name; | |
| 45 | - /** | |
| 46 | - * 分类图片 | |
| 47 | - * | |
| 48 | - * 一级分类:推荐 200 x 100 分辨率 | |
| 49 | - * 二级 + 三级分类:推荐 100 x 100 分辨率 | |
| 50 | - */ | |
| 51 | - private String picUrl; | |
| 52 | - /** | |
| 53 | - * 分类排序 | |
| 54 | - */ | |
| 55 | - private Integer sort; | |
| 56 | - /** | |
| 57 | - * 分类描述 | |
| 58 | - */ | |
| 59 | - private String description; | |
| 60 | - /** | |
| 61 | - * 开启状态 | |
| 62 | - * | |
| 63 | - * 枚举 {@link CommonStatusEnum} | |
| 64 | - */ | |
| 65 | - private Integer status; | |
| 66 | - | |
| 67 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/comment/ProductCommentDO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.dal.dataobject.comment; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | |
| 4 | -import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; | |
| 5 | -import cn.iocoder.yudao.module.product.enums.comment.ProductCommentAuditStatusEnum; | |
| 6 | -import com.baomidou.mybatisplus.annotation.KeySequence; | |
| 7 | -import com.baomidou.mybatisplus.annotation.TableField; | |
| 8 | -import com.baomidou.mybatisplus.annotation.TableId; | |
| 9 | -import com.baomidou.mybatisplus.annotation.TableName; | |
| 10 | -import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; | |
| 11 | -import lombok.*; | |
| 12 | - | |
| 13 | -import java.time.LocalDateTime; | |
| 14 | -import java.util.List; | |
| 15 | - | |
| 16 | -/** | |
| 17 | - * 商品评论 DO | |
| 18 | - * | |
| 19 | - * @author 芋道源码 | |
| 20 | - */ | |
| 21 | -@TableName("product_comment") | |
| 22 | -@KeySequence("product_comment_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | |
| 23 | -@Data | |
| 24 | -@EqualsAndHashCode(callSuper = true) | |
| 25 | -@ToString(callSuper = true) | |
| 26 | -@Builder | |
| 27 | -@NoArgsConstructor | |
| 28 | -@AllArgsConstructor | |
| 29 | -public class ProductCommentDO extends BaseDO { | |
| 30 | - | |
| 31 | - /** | |
| 32 | - * 评论编号,主键自增 | |
| 33 | - */ | |
| 34 | - @TableId | |
| 35 | - private Long id; | |
| 36 | - /** | |
| 37 | - * 商品 SPU 编号 | |
| 38 | - * | |
| 39 | - * 关联 {@link ProductSpuDO#getId()} | |
| 40 | - */ | |
| 41 | - private Long spuId; | |
| 42 | - /** | |
| 43 | - * 交易订单编号 | |
| 44 | - * | |
| 45 | - * 关联 TradeOrderDO 的 id 编号 | |
| 46 | - */ | |
| 47 | - private Long orderId; | |
| 48 | - /** | |
| 49 | - * 交易订单项编号 | |
| 50 | - * | |
| 51 | - * 关联 TradeOrderItemDO 的 id 编号 | |
| 52 | - */ | |
| 53 | - private Long orderItemId; | |
| 54 | - /** | |
| 55 | - * 审核状态 | |
| 56 | - * | |
| 57 | - * 枚举 {@link ProductCommentAuditStatusEnum} | |
| 58 | - */ | |
| 59 | - private Integer auditStatus; | |
| 60 | - | |
| 61 | - /** | |
| 62 | - * 用户编号 | |
| 63 | - * | |
| 64 | - * 关联 MemberUserDO 的 id 编号 | |
| 65 | - */ | |
| 66 | - private Long userId; | |
| 67 | - /** | |
| 68 | - * 用户 IP | |
| 69 | - */ | |
| 70 | - private String userIp; | |
| 71 | - /** | |
| 72 | - * 是否匿名 | |
| 73 | - */ | |
| 74 | - private Boolean anonymous; | |
| 75 | - /** | |
| 76 | - * 评论内容 | |
| 77 | - */ | |
| 78 | - private String content; | |
| 79 | - /** | |
| 80 | - * 评论图片地址数组 | |
| 81 | - */ | |
| 82 | - @TableField(typeHandler = JacksonTypeHandler.class) | |
| 83 | - private List<String> picUrls; | |
| 84 | - /** | |
| 85 | - * 描述相符星级 | |
| 86 | - * | |
| 87 | - * 1-5 星 | |
| 88 | - */ | |
| 89 | - private Integer descriptionScore; | |
| 90 | - /** | |
| 91 | - * 商品评论星级 | |
| 92 | - * | |
| 93 | - * 1-5 星 | |
| 94 | - */ | |
| 95 | - private Integer productScore; | |
| 96 | - /** | |
| 97 | - * 服务评论星级 | |
| 98 | - * | |
| 99 | - * 1-5 星 | |
| 100 | - */ | |
| 101 | - private Integer serviceScore; | |
| 102 | - /** | |
| 103 | - * 物流评论星级 | |
| 104 | - * | |
| 105 | - * 1-5 星 | |
| 106 | - */ | |
| 107 | - private Integer expressComment; | |
| 108 | - | |
| 109 | - /** | |
| 110 | - * 商家是否回复 | |
| 111 | - */ | |
| 112 | - private Boolean replied; | |
| 113 | - /** | |
| 114 | - * 商家回复内容 | |
| 115 | - */ | |
| 116 | - private String replyContent; | |
| 117 | - /** | |
| 118 | - * 商家回复时间 | |
| 119 | - */ | |
| 120 | - private LocalDateTime replyTime; | |
| 121 | - | |
| 122 | - /** | |
| 123 | - * 有用的计数 | |
| 124 | - * | |
| 125 | - * 其他用户看到评论时,可点击「有用」按钮 | |
| 126 | - */ | |
| 127 | - private Integer usefulCount; | |
| 128 | - | |
| 129 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/delivery/DeliveryTemplateDO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.dal.dataobject.delivery; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | |
| 4 | -import com.baomidou.mybatisplus.annotation.KeySequence; | |
| 5 | -import com.baomidou.mybatisplus.annotation.TableId; | |
| 6 | -import com.baomidou.mybatisplus.annotation.TableName; | |
| 7 | -import lombok.*; | |
| 8 | - | |
| 9 | -/** | |
| 10 | - * 配送模板 SPU DO | |
| 11 | - * | |
| 12 | - * @author 芋道源码 | |
| 13 | - */ | |
| 14 | -@TableName("delivery_template") | |
| 15 | -@KeySequence("delivery_template_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | |
| 16 | -@Data | |
| 17 | -@EqualsAndHashCode(callSuper = true) | |
| 18 | -@ToString(callSuper = true) | |
| 19 | -@Builder | |
| 20 | -@NoArgsConstructor | |
| 21 | -@AllArgsConstructor | |
| 22 | -public class DeliveryTemplateDO extends BaseDO { | |
| 23 | - | |
| 24 | - /** | |
| 25 | - * 编号,自增 | |
| 26 | - */ | |
| 27 | - @TableId | |
| 28 | - private Long id; | |
| 29 | - | |
| 30 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/favorite/ProductFavoriteDO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.dal.dataobject.favorite; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | |
| 4 | -import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; | |
| 5 | -import com.baomidou.mybatisplus.annotation.KeySequence; | |
| 6 | -import com.baomidou.mybatisplus.annotation.TableId; | |
| 7 | -import com.baomidou.mybatisplus.annotation.TableName; | |
| 8 | -import lombok.*; | |
| 9 | - | |
| 10 | -/** | |
| 11 | - * 商品收藏 DO | |
| 12 | - * | |
| 13 | - * @author 芋道源码 | |
| 14 | - */ | |
| 15 | -@TableName("product_favorite") | |
| 16 | -@KeySequence("product_favorite_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | |
| 17 | -@Data | |
| 18 | -@EqualsAndHashCode(callSuper = true) | |
| 19 | -@ToString(callSuper = true) | |
| 20 | -@Builder | |
| 21 | -@NoArgsConstructor | |
| 22 | -@AllArgsConstructor | |
| 23 | -public class ProductFavoriteDO extends BaseDO { | |
| 24 | - | |
| 25 | - /** | |
| 26 | - * 编号,主键自增 | |
| 27 | - */ | |
| 28 | - @TableId | |
| 29 | - private Long id; | |
| 30 | - /** | |
| 31 | - * 用户编号 | |
| 32 | - * | |
| 33 | - * 关联 MemberUserDO 的 id 编号 | |
| 34 | - */ | |
| 35 | - private Long userId; | |
| 36 | - /** | |
| 37 | - * 商品 SPU 编号 | |
| 38 | - * | |
| 39 | - * 关联 {@link ProductSpuDO#getId()} | |
| 40 | - */ | |
| 41 | - private Long spuId; | |
| 42 | - | |
| 43 | - // TODO 芋艿:type 1 收藏;2 点赞 | |
| 44 | - | |
| 45 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/group/ProductGroupBindDO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.dal.dataobject.group; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | |
| 4 | -import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; | |
| 5 | -import com.baomidou.mybatisplus.annotation.KeySequence; | |
| 6 | -import com.baomidou.mybatisplus.annotation.TableId; | |
| 7 | -import com.baomidou.mybatisplus.annotation.TableName; | |
| 8 | -import lombok.*; | |
| 9 | - | |
| 10 | -/** | |
| 11 | - * 商品分组的绑定 DO | |
| 12 | - * | |
| 13 | - * @author 芋道源码 | |
| 14 | - */ | |
| 15 | -@TableName("product_group_bind") | |
| 16 | -@KeySequence("product_group_bind_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | |
| 17 | -@Data | |
| 18 | -@EqualsAndHashCode(callSuper = true) | |
| 19 | -@ToString(callSuper = true) | |
| 20 | -@Builder | |
| 21 | -@NoArgsConstructor | |
| 22 | -@AllArgsConstructor | |
| 23 | -public class ProductGroupBindDO extends BaseDO { | |
| 24 | - | |
| 25 | - /** | |
| 26 | - * 编号,自增 | |
| 27 | - */ | |
| 28 | - @TableId | |
| 29 | - private Long id; | |
| 30 | - /** | |
| 31 | - * 商品分组编号 | |
| 32 | - * | |
| 33 | - * 关联 {@link ProductGroupDO#getId()} | |
| 34 | - */ | |
| 35 | - private Long groupId; | |
| 36 | - /** | |
| 37 | - * 商品 SPU 编号 | |
| 38 | - * | |
| 39 | - * 关联 {@link ProductSpuDO#getId()} | |
| 40 | - */ | |
| 41 | - private Long spuId; | |
| 42 | - | |
| 43 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/group/ProductGroupDO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.dal.dataobject.group; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | |
| 4 | -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | |
| 5 | -import cn.iocoder.yudao.module.product.enums.group.ProductGroupStyleEnum; | |
| 6 | -import com.baomidou.mybatisplus.annotation.KeySequence; | |
| 7 | -import com.baomidou.mybatisplus.annotation.TableId; | |
| 8 | -import com.baomidou.mybatisplus.annotation.TableName; | |
| 9 | -import lombok.*; | |
| 10 | - | |
| 11 | -/** | |
| 12 | - * 商品分组 DO | |
| 13 | - * | |
| 14 | - * @author 芋道源码 | |
| 15 | - */ | |
| 16 | -@TableName("product_group") | |
| 17 | -@KeySequence("product_group_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | |
| 18 | -@Data | |
| 19 | -@EqualsAndHashCode(callSuper = true) | |
| 20 | -@ToString(callSuper = true) | |
| 21 | -@Builder | |
| 22 | -@NoArgsConstructor | |
| 23 | -@AllArgsConstructor | |
| 24 | -public class ProductGroupDO extends BaseDO { | |
| 25 | - | |
| 26 | - /** | |
| 27 | - * 商品分组编号,自增 | |
| 28 | - */ | |
| 29 | - @TableId | |
| 30 | - private Long id; | |
| 31 | - /** | |
| 32 | - * 分组名称 | |
| 33 | - */ | |
| 34 | - private String name; | |
| 35 | - /** | |
| 36 | - * 状态 | |
| 37 | - * | |
| 38 | - * 枚举 {@link CommonStatusEnum} | |
| 39 | - */ | |
| 40 | - private Integer status; | |
| 41 | - /** | |
| 42 | - * 商品数量 | |
| 43 | - */ | |
| 44 | - private Integer count; | |
| 45 | - /** | |
| 46 | - * 排序 | |
| 47 | - */ | |
| 48 | - private Integer sort; | |
| 49 | - /** | |
| 50 | - * 风格,用于 APP 首页展示商品的样式 | |
| 51 | - * | |
| 52 | - * 枚举 {@link ProductGroupStyleEnum} | |
| 53 | - */ | |
| 54 | - private Integer style; | |
| 55 | - /** | |
| 56 | - * 是否默认 | |
| 57 | - * | |
| 58 | - * true - 系统默认,不允许删除 | |
| 59 | - * false - 自定义,允许删除 | |
| 60 | - */ | |
| 61 | - private Boolean defaulted; | |
| 62 | - | |
| 63 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/ProductPropertyDO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.dal.dataobject.property; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | |
| 4 | -import com.baomidou.mybatisplus.annotation.KeySequence; | |
| 5 | -import com.baomidou.mybatisplus.annotation.TableId; | |
| 6 | -import com.baomidou.mybatisplus.annotation.TableName; | |
| 7 | -import lombok.*; | |
| 8 | - | |
| 9 | -/** | |
| 10 | - * 商品属性项 DO | |
| 11 | - * | |
| 12 | - * @author 芋道源码 | |
| 13 | - */ | |
| 14 | -@TableName("product_property") | |
| 15 | -@KeySequence("product_property_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | |
| 16 | -@Data | |
| 17 | -@EqualsAndHashCode(callSuper = true) | |
| 18 | -@ToString(callSuper = true) | |
| 19 | -@Builder | |
| 20 | -@NoArgsConstructor | |
| 21 | -@AllArgsConstructor | |
| 22 | -public class ProductPropertyDO extends BaseDO { | |
| 23 | - | |
| 24 | - /** | |
| 25 | - * 主键 | |
| 26 | - */ | |
| 27 | - @TableId | |
| 28 | - private Long id; | |
| 29 | - /** | |
| 30 | - * 名称 | |
| 31 | - */ | |
| 32 | - private String name; | |
| 33 | - /** | |
| 34 | - * 备注 | |
| 35 | - */ | |
| 36 | - private String remark; | |
| 37 | - | |
| 38 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/ProductPropertyValueDO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.dal.dataobject.property; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | |
| 4 | -import com.baomidou.mybatisplus.annotation.KeySequence; | |
| 5 | -import com.baomidou.mybatisplus.annotation.TableId; | |
| 6 | -import com.baomidou.mybatisplus.annotation.TableName; | |
| 7 | -import lombok.*; | |
| 8 | - | |
| 9 | - | |
| 10 | -/** | |
| 11 | - * 商品属性值 DO | |
| 12 | - * | |
| 13 | - * @author 芋道源码 | |
| 14 | - */ | |
| 15 | -@TableName("product_property_value") | |
| 16 | -@KeySequence("product_property_value_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | |
| 17 | -@Data | |
| 18 | -@EqualsAndHashCode(callSuper = true) | |
| 19 | -@ToString(callSuper = true) | |
| 20 | -@Builder | |
| 21 | -@NoArgsConstructor | |
| 22 | -@AllArgsConstructor | |
| 23 | -public class ProductPropertyValueDO extends BaseDO { | |
| 24 | - | |
| 25 | - /** | |
| 26 | - * 主键 | |
| 27 | - */ | |
| 28 | - @TableId | |
| 29 | - private Long id; | |
| 30 | - /** | |
| 31 | - * 属性项的编号 | |
| 32 | - * | |
| 33 | - * 关联 {@link ProductPropertyDO#getId()} | |
| 34 | - */ | |
| 35 | - private Long propertyId; | |
| 36 | - /** | |
| 37 | - * 名称 | |
| 38 | - */ | |
| 39 | - private String name; | |
| 40 | - /** | |
| 41 | - * 备注 | |
| 42 | - * | |
| 43 | - */ | |
| 44 | - private String remark; | |
| 45 | - | |
| 46 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/search/ProductHotSearchDO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.dal.dataobject.search; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | |
| 4 | -import com.baomidou.mybatisplus.annotation.KeySequence; | |
| 5 | -import com.baomidou.mybatisplus.annotation.TableId; | |
| 6 | -import com.baomidou.mybatisplus.annotation.TableName; | |
| 7 | -import lombok.*; | |
| 8 | - | |
| 9 | -/** | |
| 10 | - * 商品热搜关键字 DO | |
| 11 | - * | |
| 12 | - * @author 芋道源码 | |
| 13 | - */ | |
| 14 | -@TableName("product_hot_search") | |
| 15 | -@KeySequence("product_hot_search_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | |
| 16 | -@Data | |
| 17 | -@EqualsAndHashCode(callSuper = true) | |
| 18 | -@ToString(callSuper = true) | |
| 19 | -@Builder | |
| 20 | -@NoArgsConstructor | |
| 21 | -@AllArgsConstructor | |
| 22 | -public class ProductHotSearchDO extends BaseDO { | |
| 23 | - | |
| 24 | - /** | |
| 25 | - * 编号,主键自增 | |
| 26 | - */ | |
| 27 | - @TableId | |
| 28 | - private Long id; | |
| 29 | - /** | |
| 30 | - * 关键字 | |
| 31 | - */ | |
| 32 | - private String name; | |
| 33 | - /** | |
| 34 | - * 内容 | |
| 35 | - */ | |
| 36 | - private String content; | |
| 37 | - | |
| 38 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/shop/ShopDO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.dal.dataobject.shop; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | |
| 4 | -import com.baomidou.mybatisplus.annotation.KeySequence; | |
| 5 | -import com.baomidou.mybatisplus.annotation.TableName; | |
| 6 | -import lombok.*; | |
| 7 | - | |
| 8 | -// TODO 芋艿:待设计 | |
| 9 | -/** | |
| 10 | - * 店铺 DO | |
| 11 | - * | |
| 12 | - * @author 芋道源码 | |
| 13 | - */ | |
| 14 | -@TableName("shop") | |
| 15 | -@KeySequence("shop_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | |
| 16 | -@Data | |
| 17 | -@EqualsAndHashCode(callSuper = true) | |
| 18 | -@ToString(callSuper = true) | |
| 19 | -@Builder | |
| 20 | -@NoArgsConstructor | |
| 21 | -@AllArgsConstructor | |
| 22 | -public class ShopDO extends BaseDO { | |
| 23 | - | |
| 24 | - private Long id; | |
| 25 | - | |
| 26 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/sku/ProductSkuDO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.dal.dataobject.sku; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | |
| 4 | -import cn.iocoder.yudao.framework.common.util.json.JsonUtils; | |
| 5 | -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | |
| 6 | -import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO; | |
| 7 | -import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyValueDO; | |
| 8 | -import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; | |
| 9 | -import com.baomidou.mybatisplus.annotation.KeySequence; | |
| 10 | -import com.baomidou.mybatisplus.annotation.TableField; | |
| 11 | -import com.baomidou.mybatisplus.annotation.TableId; | |
| 12 | -import com.baomidou.mybatisplus.annotation.TableName; | |
| 13 | -import com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler; | |
| 14 | -import lombok.*; | |
| 15 | - | |
| 16 | -import java.util.List; | |
| 17 | - | |
| 18 | -/** | |
| 19 | - * 商品 SKU DO | |
| 20 | - * | |
| 21 | - * @author 芋道源码 | |
| 22 | - */ | |
| 23 | -@TableName(value = "product_sku",autoResultMap = true) | |
| 24 | -@KeySequence("product_sku_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | |
| 25 | -@Data | |
| 26 | -@EqualsAndHashCode(callSuper = true) | |
| 27 | -@ToString(callSuper = true) | |
| 28 | -@Builder | |
| 29 | -@NoArgsConstructor | |
| 30 | -@AllArgsConstructor | |
| 31 | -public class ProductSkuDO extends BaseDO { | |
| 32 | - | |
| 33 | - /** | |
| 34 | - * 商品 SKU 编号,自增 | |
| 35 | - */ | |
| 36 | - @TableId | |
| 37 | - private Long id; | |
| 38 | - /** | |
| 39 | - * SPU 编号 | |
| 40 | - * <p> | |
| 41 | - * 关联 {@link ProductSpuDO#getId()} | |
| 42 | - */ | |
| 43 | - private Long spuId; | |
| 44 | - /** | |
| 45 | - * SPU 名字 | |
| 46 | - * | |
| 47 | - * 冗余 {@link ProductSkuDO#getSpuName()} | |
| 48 | - */ | |
| 49 | - private String spuName; | |
| 50 | - /** | |
| 51 | - * 属性数组,JSON 格式 | |
| 52 | - */ | |
| 53 | - @TableField(typeHandler = PropertyTypeHandler.class) | |
| 54 | - private List<Property> properties; | |
| 55 | - /** | |
| 56 | - * 销售价格,单位:分 | |
| 57 | - */ | |
| 58 | - private Integer price; | |
| 59 | - /** | |
| 60 | - * 市场价,单位:分 | |
| 61 | - */ | |
| 62 | - private Integer marketPrice; | |
| 63 | - /** | |
| 64 | - * 成本价,单位:分 | |
| 65 | - */ | |
| 66 | - private Integer costPrice; | |
| 67 | - /** | |
| 68 | - * SKU 的条形码 | |
| 69 | - */ | |
| 70 | - private String barCode; | |
| 71 | - /** | |
| 72 | - * 图片地址 | |
| 73 | - */ | |
| 74 | - private String picUrl; | |
| 75 | - /** | |
| 76 | - * SKU 状态 | |
| 77 | - * <p> | |
| 78 | - * 枚举 {@link CommonStatusEnum} | |
| 79 | - */ | |
| 80 | - private Integer status; | |
| 81 | - /** | |
| 82 | - * 库存 | |
| 83 | - */ | |
| 84 | - private Integer stock; | |
| 85 | - /** | |
| 86 | - * 预警预存 | |
| 87 | - */ | |
| 88 | - private Integer warnStock; | |
| 89 | - /** | |
| 90 | - * 商品重量,单位:kg 千克 | |
| 91 | - */ | |
| 92 | - private Double weight; | |
| 93 | - /** | |
| 94 | - * 商品体积,单位:m^3 平米 | |
| 95 | - */ | |
| 96 | - private Double volume; | |
| 97 | - | |
| 98 | - /** | |
| 99 | - * 商品属性 | |
| 100 | - */ | |
| 101 | - @Data | |
| 102 | - @NoArgsConstructor | |
| 103 | - @AllArgsConstructor | |
| 104 | - public static class Property { | |
| 105 | - | |
| 106 | - /** | |
| 107 | - * 属性编号 | |
| 108 | - * <p> | |
| 109 | - * 关联 {@link ProductPropertyDO#getId()} | |
| 110 | - */ | |
| 111 | - private Long propertyId; | |
| 112 | - /** | |
| 113 | - * 属性值编号 | |
| 114 | - * <p> | |
| 115 | - * 关联 {@link ProductPropertyValueDO#getId()} | |
| 116 | - */ | |
| 117 | - private Long valueId; | |
| 118 | - | |
| 119 | - } | |
| 120 | - | |
| 121 | - // TODO @芋艿:可以找一些新的思路 | |
| 122 | - public static class PropertyTypeHandler extends AbstractJsonTypeHandler<Object> { | |
| 123 | - | |
| 124 | - @Override | |
| 125 | - protected Object parse(String json) { | |
| 126 | - return JsonUtils.parseArray(json, Property.class); | |
| 127 | - } | |
| 128 | - | |
| 129 | - @Override | |
| 130 | - protected String toJson(Object obj) { | |
| 131 | - return JsonUtils.toJsonString(obj); | |
| 132 | - } | |
| 133 | - | |
| 134 | - } | |
| 135 | - | |
| 136 | -} | |
| 137 | - |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/spu/ProductSpuDO.java deleted
| 1 | -package cn.iocoder.yudao.module.product.dal.dataobject.spu; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | |
| 4 | -import cn.iocoder.yudao.module.product.dal.dataobject.brand.ProductBrandDO; | |
| 5 | -import cn.iocoder.yudao.module.product.dal.dataobject.category.ProductCategoryDO; | |
| 6 | -import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; | |
| 7 | -import cn.iocoder.yudao.module.product.enums.spu.ProductSpuSpecTypeEnum; | |
| 8 | -import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum; | |
| 9 | -import com.baomidou.mybatisplus.annotation.KeySequence; | |
| 10 | -import com.baomidou.mybatisplus.annotation.TableField; | |
| 11 | -import com.baomidou.mybatisplus.annotation.TableId; | |
| 12 | -import com.baomidou.mybatisplus.annotation.TableName; | |
| 13 | -import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; | |
| 14 | -import lombok.*; | |
| 15 | - | |
| 16 | -import java.util.List; | |
| 17 | - | |
| 18 | -/** | |
| 19 | - * 商品 SPU DO | |
| 20 | - * | |
| 21 | - * @author 芋道源码 | |
| 22 | - */ | |
| 23 | -@TableName(value = "product_spu", autoResultMap = true) | |
| 24 | -@KeySequence("product_spu_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | |
| 25 | -@Data | |
| 26 | -@EqualsAndHashCode(callSuper = true) | |
| 27 | -@ToString(callSuper = true) | |
| 28 | -@Builder | |
| 29 | -@NoArgsConstructor | |
| 30 | -@AllArgsConstructor | |
| 31 | -public class ProductSpuDO extends BaseDO { | |
| 32 | - | |
| 33 | - /** | |
| 34 | - * 商品 SPU 编号,自增 | |
| 35 | - */ | |
| 36 | - @TableId | |
| 37 | - private Long id; | |
| 38 | - | |
| 39 | - // ========== 基本信息 ========= | |
| 40 | - | |
| 41 | - /** | |
| 42 | - * 商品名称 | |
| 43 | - */ | |
| 44 | - private String name; | |
| 45 | - /** | |
| 46 | - * 商品编码 | |
| 47 | - */ | |
| 48 | - private String code; | |
| 49 | - /** | |
| 50 | - * 促销语 | |
| 51 | - */ | |
| 52 | - private String sellPoint; | |
| 53 | - /** | |
| 54 | - * 商品详情 | |
| 55 | - */ | |
| 56 | - private String description; | |
| 57 | - /** | |
| 58 | - * 商品分类编号 | |
| 59 | - * | |
| 60 | - * 关联 {@link ProductCategoryDO#getId()} | |
| 61 | - */ | |
| 62 | - private Long categoryId; | |
| 63 | - /** | |
| 64 | - * 商品品牌编号 | |
| 65 | - * | |
| 66 | - * 关联 {@link ProductBrandDO#getId()} | |
| 67 | - */ | |
| 68 | - private Long brandId; | |
| 69 | - /** | |
| 70 | - * 商品图片的数组 | |
| 71 | - * | |
| 72 | - * 1. 第一张图片将作为商品主图,支持同时上传多张图; | |
| 73 | - * 2. 建议使用尺寸 800x800 像素以上、大小不超过 1M 的正方形图片; | |
| 74 | - * 3. 至少 1 张,最多上传 10 张 | |
| 75 | - */ | |
| 76 | - @TableField(typeHandler = JacksonTypeHandler.class) | |
| 77 | - private List<String> picUrls; | |
| 78 | - /** | |
| 79 | - * 商品视频 | |
| 80 | - */ | |
| 81 | - private String videoUrl; | |
| 82 | - | |
| 83 | - /** | |
| 84 | - * 排序字段 | |
| 85 | - */ | |
| 86 | - private Integer sort; | |
| 87 | - /** | |
| 88 | - * 商品状态 | |
| 89 | - * | |
| 90 | - * 枚举 {@link ProductSpuStatusEnum} | |
| 91 | - */ | |
| 92 | - private Integer status; | |
| 93 | - | |
| 94 | - // ========== SKU 相关字段 ========= | |
| 95 | - | |
| 96 | - /** | |
| 97 | - * 规格类型 | |
| 98 | - * | |
| 99 | - * 枚举 {@link ProductSpuSpecTypeEnum} | |
| 100 | - */ | |
| 101 | - private Integer specType; | |
| 102 | - /** | |
| 103 | - * 最小价格,单位使用:分 | |
| 104 | - * | |
| 105 | - * 基于其对应的 {@link ProductSkuDO#getPrice()} 最小值 | |
| 106 | - */ | |
| 107 | - private Integer minPrice; | |
| 108 | - /** | |
| 109 | - * 最大价格,单位使用:分 | |
| 110 | - * | |
| 111 | - * 基于其对应的 {@link ProductSkuDO#getPrice()} 最大值 | |
| 112 | - */ | |
| 113 | - private Integer maxPrice; | |
| 114 | - /** | |
| 115 | - * 市场价,单位使用:分 | |
| 116 | - * | |
| 117 | - * 基于其对应的 {@link ProductSkuDO#getMarketPrice()} 最大值 | |
| 118 | - */ | |
| 119 | - private Integer marketPrice; | |
| 120 | - /** | |
| 121 | - * 总库存 | |
| 122 | - * | |
| 123 | - * 基于其对应的 {@link ProductSkuDO#getStock()} 求和 | |
| 124 | - */ | |
| 125 | - private Integer totalStock; | |
| 126 | - /** | |
| 127 | - * 是否展示库存 | |
| 128 | - */ | |
| 129 | - private Boolean showStock; | |
| 130 | - | |
| 131 | - // ========== 统计相关字段 ========= | |
| 132 | - | |
| 133 | - /** | |
| 134 | - * 商品销量 | |
| 135 | - */ | |
| 136 | - private Integer salesCount; | |
| 137 | - /** | |
| 138 | - * 虚拟销量 | |
| 139 | - */ | |
| 140 | - private Integer virtualSalesCount; | |
| 141 | - /** | |
| 142 | - * 商品点击量 | |
| 143 | - */ | |
| 144 | - private Integer clickCount; | |
| 145 | - | |
| 146 | - // ========== 物流相关字段 ========= | |
| 147 | - | |
| 148 | - // TODO 芋艿:稍后完善物流的字段 | |
| 149 | -// /** | |
| 150 | -// * 配送方式 | |
| 151 | -// * | |
| 152 | -// * 枚举 {@link DeliveryModeEnum} | |
| 153 | -// */ | |
| 154 | -// private Integer deliveryMode; | |
| 155 | -// /** | |
| 156 | -// * 配置模板编号 | |
| 157 | -// * | |
| 158 | -// * 关联 {@link DeliveryTemplateDO#getId()} | |
| 159 | -// */ | |
| 160 | -// private Long deliveryTemplateId; | |
| 161 | - | |
| 162 | - // TODO ========== 待定字段:yv ========= | |
| 163 | - // TODO vip_price 会员价格 | |
| 164 | - // TODO postage 邮费 | |
| 165 | - // TODO is_postage 是否包邮 | |
| 166 | - // TODO unit_name 单位 | |
| 167 | - // TODO is_new 商户是否代理 | |
| 168 | - // TODO give_integral 获得积分 | |
| 169 | - // TODO is_integral 是开启积分兑换 | |
| 170 | - // TODO integral 所需积分 | |
| 171 | - // TODO is_seckill 秒杀状态 | |
| 172 | - // TODO is_bargain 砍价状态 | |
| 173 | - // TODO code_path 产品二维码地址 | |
| 174 | - // TODO is_sub 是否分佣 | |
| 175 | - | |
| 176 | - // TODO ↓↓ 芋艿 ↓↓ 看起来走分组更合适? | |
| 177 | - // TODO is_hot 是否热卖 | |
| 178 | - // TODO is_benefit 是否优惠 | |
| 179 | - // TODO is_best 是否精品 | |
| 180 | - // TODO is_new 是否新品 | |
| 181 | - // TODO is_good 是否优品推荐 | |
| 182 | - | |
| 183 | - // TODO ========== 待定字段:cf ========= | |
| 184 | - // TODO source_link 淘宝京东1688类型 | |
| 185 | - // TODO activity 活动显示排序 0=默认 1=秒 2=砍价 3=拼团 | |
| 186 | - | |
| 187 | - // TODO ========== 待定字段:lf ========= | |
| 188 | - | |
| 189 | - // TODO free_shipping_type:运费类型:1-包邮;2-统一运费;3-运费模板 | |
| 190 | - // TODO free_shipping:统一运费金额 | |
| 191 | - // TODO free_shipping_template_id:运费模板 | |
| 192 | - // TODO is_commission:分销佣金:1-开启;0-不开启;first_ratio second_ratio three_ratio | |
| 193 | - // TODO is_share_bouns:区域股东分红:1-开启;0-不开启;region_ratio;shareholder_ratio | |
| 194 | - | |
| 195 | - // TODO is_new:新品推荐:1-是;0-否 | |
| 196 | - // TODO is_best:好物优选:1-是;0-否 | |
| 197 | - // TODO is_like:猜你喜欢:1-是;0-否 | |
| 198 | - | |
| 199 | - // TODO is_team:是否开启拼团[0=否, 1=是] | |
| 200 | - // TODO is_integral:积分抵扣:1-开启;0-不开启 | |
| 201 | - // TODO is_member:会员价:1-开启;0-不开启 | |
| 202 | - // TODO give_integral_type:赠送积分类型:0-不赠送;1-赠送固定积分;2-按比例赠送积分 | |
| 203 | - // TODO give_integral:赠送积分; | |
| 204 | - | |
| 205 | - // TODO poster:商品自定义海报 | |
| 206 | - | |
| 207 | - // TODO ========== 待定字段:laoji ========= | |
| 208 | - // TODO productType 1 - 普通商品 2 - 预售商品;可能和 type 合并不错 | |
| 209 | - // TODO productUnit 商品单位 | |
| 210 | - // TODO extJson 扩展信息;例如说,预售商品的信息 | |
| 211 | - | |
| 212 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/brand/ProductBrandMapper.java deleted
| 1 | -package cn.iocoder.yudao.module.product.dal.mysql.brand; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 4 | -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | |
| 5 | -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | |
| 6 | -import cn.iocoder.yudao.module.product.controller.admin.brand.vo.ProductBrandListReqVO; | |
| 7 | -import cn.iocoder.yudao.module.product.controller.admin.brand.vo.ProductBrandPageReqVO; | |
| 8 | -import cn.iocoder.yudao.module.product.dal.dataobject.brand.ProductBrandDO; | |
| 9 | -import org.apache.ibatis.annotations.Mapper; | |
| 10 | - | |
| 11 | -import java.util.List; | |
| 12 | - | |
| 13 | -@Mapper | |
| 14 | -public interface ProductBrandMapper extends BaseMapperX<ProductBrandDO> { | |
| 15 | - | |
| 16 | - default PageResult<ProductBrandDO> selectPage(ProductBrandPageReqVO reqVO) { | |
| 17 | - return selectPage(reqVO, new LambdaQueryWrapperX<ProductBrandDO>() | |
| 18 | - .likeIfPresent(ProductBrandDO::getName, reqVO.getName()) | |
| 19 | - .eqIfPresent(ProductBrandDO::getStatus, reqVO.getStatus()) | |
| 20 | - .betweenIfPresent(ProductBrandDO::getCreateTime, reqVO.getCreateTime()) | |
| 21 | - .orderByDesc(ProductBrandDO::getId)); | |
| 22 | - } | |
| 23 | - | |
| 24 | - | |
| 25 | - default List<ProductBrandDO> selectList(ProductBrandListReqVO reqVO) { | |
| 26 | - return selectList(new LambdaQueryWrapperX<ProductBrandDO>() | |
| 27 | - .likeIfPresent(ProductBrandDO::getName, reqVO.getName())); | |
| 28 | - } | |
| 29 | - | |
| 30 | - default ProductBrandDO selectByName(String name) { | |
| 31 | - return selectOne(ProductBrandDO::getName, name); | |
| 32 | - } | |
| 33 | - | |
| 34 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/category/ProductCategoryMapper.java deleted
| 1 | -package cn.iocoder.yudao.module.product.dal.mysql.category; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | |
| 4 | -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | |
| 5 | -import cn.iocoder.yudao.module.product.controller.admin.category.vo.ProductCategoryListReqVO; | |
| 6 | -import cn.iocoder.yudao.module.product.dal.dataobject.category.ProductCategoryDO; | |
| 7 | -import org.apache.ibatis.annotations.Mapper; | |
| 8 | - | |
| 9 | -import java.util.List; | |
| 10 | - | |
| 11 | -/** | |
| 12 | - * 商品分类 Mapper | |
| 13 | - * | |
| 14 | - * @author 芋道源码 | |
| 15 | - */ | |
| 16 | -@Mapper | |
| 17 | -public interface ProductCategoryMapper extends BaseMapperX<ProductCategoryDO> { | |
| 18 | - | |
| 19 | - default List<ProductCategoryDO> selectList(ProductCategoryListReqVO listReqVO) { | |
| 20 | - return selectList(new LambdaQueryWrapperX<ProductCategoryDO>() | |
| 21 | - .likeIfPresent(ProductCategoryDO::getName, listReqVO.getName()) | |
| 22 | - .orderByDesc(ProductCategoryDO::getId)); | |
| 23 | - } | |
| 24 | - | |
| 25 | - default Long selectCountByParentId(Long parentId) { | |
| 26 | - return selectCount(ProductCategoryDO::getParentId, parentId); | |
| 27 | - } | |
| 28 | - | |
| 29 | - default List<ProductCategoryDO> selectListByStatus(Integer status) { | |
| 30 | - return selectList(ProductCategoryDO::getStatus, status); | |
| 31 | - } | |
| 32 | - | |
| 33 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/property/ProductPropertyMapper.java deleted
| 1 | -package cn.iocoder.yudao.module.product.dal.mysql.property; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 4 | -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | |
| 5 | -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | |
| 6 | -import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyListReqVO; | |
| 7 | -import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyPageReqVO; | |
| 8 | -import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO; | |
| 9 | -import org.apache.ibatis.annotations.Mapper; | |
| 10 | - | |
| 11 | -import java.util.List; | |
| 12 | - | |
| 13 | -@Mapper | |
| 14 | -public interface ProductPropertyMapper extends BaseMapperX<ProductPropertyDO> { | |
| 15 | - | |
| 16 | - default PageResult<ProductPropertyDO> selectPage(ProductPropertyPageReqVO reqVO) { | |
| 17 | - return selectPage(reqVO, new LambdaQueryWrapperX<ProductPropertyDO>() | |
| 18 | - .likeIfPresent(ProductPropertyDO::getName, reqVO.getName()) | |
| 19 | - .betweenIfPresent(ProductPropertyDO::getCreateTime, reqVO.getCreateTime()) | |
| 20 | - .orderByDesc(ProductPropertyDO::getId)); | |
| 21 | - } | |
| 22 | - | |
| 23 | - default ProductPropertyDO selectByName(String name) { | |
| 24 | - return selectOne(ProductPropertyDO::getName, name); | |
| 25 | - } | |
| 26 | - | |
| 27 | - default List<ProductPropertyDO> selectList(ProductPropertyListReqVO listReqVO) { | |
| 28 | - return selectList(new LambdaQueryWrapperX<ProductPropertyDO>() | |
| 29 | - .eqIfPresent(ProductPropertyDO::getName, listReqVO.getName())); | |
| 30 | - } | |
| 31 | - | |
| 32 | -} |
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/property/ProductPropertyValueMapper.java deleted
| 1 | -package cn.iocoder.yudao.module.product.dal.mysql.property; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 4 | -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | |
| 5 | -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | |
| 6 | -import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValuePageReqVO; | |
| 7 | -import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyValueDO; | |
| 8 | -import org.apache.ibatis.annotations.Mapper; | |
| 9 | - | |
| 10 | -import java.util.Collection; | |
| 11 | -import java.util.List; | |
| 12 | - | |
| 13 | -@Mapper | |
| 14 | -public interface ProductPropertyValueMapper extends BaseMapperX<ProductPropertyValueDO> { | |
| 15 | - | |
| 16 | - default List<ProductPropertyValueDO> selectListByPropertyId(Collection<Long> propertyIds) { | |
| 17 | - return selectList(new LambdaQueryWrapperX<ProductPropertyValueDO>() | |
| 18 | - .inIfPresent(ProductPropertyValueDO::getPropertyId, propertyIds)); | |
| 19 | - } | |
| 20 | - | |
| 21 | - default ProductPropertyValueDO selectByName(Long propertyId, String name) { | |
| 22 | - return selectOne(new LambdaQueryWrapperX<ProductPropertyValueDO>() | |
| 23 | - .eq(ProductPropertyValueDO::getPropertyId, propertyId) | |
| 24 | - .eq(ProductPropertyValueDO::getName, name)); | |
| 25 | - } | |
| 26 | - | |
| 27 | - default void deleteByPropertyId(Long propertyId) { | |
| 28 | - delete(new LambdaQueryWrapperX<ProductPropertyValueDO>() | |
| 29 | - .eq(ProductPropertyValueDO::getPropertyId, propertyId)); | |
| 30 | - } | |
| 31 | - | |
| 32 | - default PageResult<ProductPropertyValueDO> selectPage(ProductPropertyValuePageReqVO reqVO) { | |
| 33 | - return selectPage(reqVO, new LambdaQueryWrapperX<ProductPropertyValueDO>() | |
| 34 | - .eqIfPresent(ProductPropertyValueDO::getPropertyId, reqVO.getPropertyId()) | |
| 35 | - .likeIfPresent(ProductPropertyValueDO::getName, reqVO.getName()) | |
| 36 | - .orderByDesc(ProductPropertyValueDO::getId)); | |
| 37 | - } | |
| 38 | - | |
| 39 | - default Integer selectCountByPropertyId(Long propertyId) { | |
| 40 | - return selectCount(ProductPropertyValueDO::getPropertyId, propertyId).intValue(); | |
| 41 | - } | |
| 42 | - | |
| 43 | -} |