Commit 33a01e78bf99cd11a62236994aa1bb298ab09cea

Authored by YunaiV
1 parent c6124871

mall:优化商品表的设计

yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/comment/ProductCommentEvaluateEnum.java renamed to yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/spu/ProductSpuSpecTypeEnum.java
1 -package cn.iocoder.yudao.module.product.enums.comment; 1 +package cn.iocoder.yudao.module.product.enums.spu;
2 2
3 import cn.iocoder.yudao.framework.common.core.IntArrayValuable; 3 import cn.iocoder.yudao.framework.common.core.IntArrayValuable;
4 import lombok.AllArgsConstructor; 4 import lombok.AllArgsConstructor;
@@ -7,26 +7,25 @@ import lombok.Getter; @@ -7,26 +7,25 @@ import lombok.Getter;
7 import java.util.Arrays; 7 import java.util.Arrays;
8 8
9 /** 9 /**
10 - * 商品评论的评价枚举 10 + * 商品 SPU 规格类型
11 * 11 *
12 * @author 芋道源码 12 * @author 芋道源码
13 */ 13 */
14 @Getter 14 @Getter
15 @AllArgsConstructor 15 @AllArgsConstructor
16 -public enum ProductCommentEvaluateEnum implements IntArrayValuable { 16 +public enum ProductSpuSpecTypeEnum implements IntArrayValuable {
17 17
18 - GOOD(1, "好评"),  
19 - BAD(2, "差评"),  
20 - MIDDLE(2, "中评"),; 18 + RECYCLE(1, "统一规格"),
  19 + DISABLE(2, "多规格");
21 20
22 - public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(ProductCommentEvaluateEnum::getEvaluate).toArray(); 21 + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(ProductSpuSpecTypeEnum::getType).toArray();
23 22
24 /** 23 /**
25 - * 评价 24 + * 规格
26 */ 25 */
27 - private final Integer evaluate; 26 + private final Integer type;
28 /** 27 /**
29 - * 评价名 28 + * 规格名
30 */ 29 */
31 private final String name; 30 private final String name;
32 31
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/spu/ProductSpuStatusEnum.java 0 → 100644
  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::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-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/brand/ProductBrandDO.java
@@ -48,4 +48,6 @@ public class ProductBrandDO extends BaseDO { @@ -48,4 +48,6 @@ public class ProductBrandDO extends BaseDO {
48 */ 48 */
49 private Integer status; 49 private Integer status;
50 50
  51 + // TODO 芋艿:firstLetter 首字母
  52 +
51 } 53 }
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/category/ProductCategoryDO.java
@@ -70,4 +70,6 @@ public class ProductCategoryDO extends BaseDO { @@ -70,4 +70,6 @@ public class ProductCategoryDO extends BaseDO {
70 */ 70 */
71 private Integer status; 71 private Integer status;
72 72
  73 + // TODO 芋艿:is_recommend 是否首页推荐:1-是;0-否
  74 +
73 } 75 }
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/comment/ProductCommentDO.java
@@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.product.dal.dataobject.comment; @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.product.dal.dataobject.comment;
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; 4 import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO;
5 import cn.iocoder.yudao.module.product.enums.comment.ProductCommentAuditStatusEnum; 5 import cn.iocoder.yudao.module.product.enums.comment.ProductCommentAuditStatusEnum;
6 -import cn.iocoder.yudao.module.product.enums.comment.ProductCommentEvaluateEnum;  
7 import com.baomidou.mybatisplus.annotation.KeySequence; 6 import com.baomidou.mybatisplus.annotation.KeySequence;
8 import com.baomidou.mybatisplus.annotation.TableField; 7 import com.baomidou.mybatisplus.annotation.TableField;
9 import com.baomidou.mybatisplus.annotation.TableId; 8 import com.baomidou.mybatisplus.annotation.TableId;
@@ -41,11 +40,23 @@ public class ProductCommentDO extends BaseDO { @@ -41,11 +40,23 @@ public class ProductCommentDO extends BaseDO {
41 */ 40 */
42 private Long spuId; 41 private Long spuId;
43 /** 42 /**
  43 + * 交易订单编号
  44 + *
  45 + * 关联 TradeOrderDO 的 id 编号
  46 + */
  47 + private Long orderId;
  48 + /**
44 * 交易订单项编号 49 * 交易订单项编号
45 * 50 *
46 - * 关联 OrderItemDO 的 id 编号 51 + * 关联 TradeOrderItemDO 的 id 编号
47 */ 52 */
48 - private Long tradeOrderItemId; 53 + private Long orderItemId;
  54 + /**
  55 + * 审核状态
  56 + *
  57 + * 枚举 {@link ProductCommentAuditStatusEnum}
  58 + */
  59 + private Integer auditStatus;
49 60
50 /** 61 /**
51 * 用户编号 62 * 用户编号
@@ -71,15 +82,29 @@ public class ProductCommentDO extends BaseDO { @@ -71,15 +82,29 @@ public class ProductCommentDO extends BaseDO {
71 @TableField(typeHandler = JacksonTypeHandler.class) 82 @TableField(typeHandler = JacksonTypeHandler.class)
72 private List<String> picUrls; 83 private List<String> picUrls;
73 /** 84 /**
74 - * 得分,0-5 分 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 星
75 */ 100 */
76 - private Integer score; 101 + private Integer serviceScore;
77 /** 102 /**
78 - * 评价 103 + * 物流评论星级
79 * 104 *
80 - * 枚举 {@link ProductCommentEvaluateEnum} 105 + * 1-5 星
81 */ 106 */
82 - private Integer evaluate; 107 + private Integer expressComment;
83 108
84 /** 109 /**
85 * 商家是否回复 110 * 商家是否回复
@@ -93,12 +118,6 @@ public class ProductCommentDO extends BaseDO { @@ -93,12 +118,6 @@ public class ProductCommentDO extends BaseDO {
93 * 商家回复时间 118 * 商家回复时间
94 */ 119 */
95 private Date replyTime; 120 private Date replyTime;
96 - /**  
97 - * 审核状态  
98 - *  
99 - * 枚举 {@link ProductCommentAuditStatusEnum}  
100 - */  
101 - private Integer auditStatus;  
102 121
103 /** 122 /**
104 * 有用的计数 123 * 有用的计数
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/sku/ProductSkuDO.java
@@ -54,9 +54,9 @@ public class ProductSkuDO extends BaseDO { @@ -54,9 +54,9 @@ public class ProductSkuDO extends BaseDO {
54 */ 54 */
55 private Integer price; 55 private Integer price;
56 /** 56 /**
57 - * 原价,单位:分 57 + * 市场价,单位:分
58 */ 58 */
59 - private Integer originalPrice; 59 + private Integer marketPrice;
60 /** 60 /**
61 * 成本价,单位:分 61 * 成本价,单位:分
62 */ 62 */
@@ -76,15 +76,9 @@ public class ProductSkuDO extends BaseDO { @@ -76,15 +76,9 @@ public class ProductSkuDO extends BaseDO {
76 */ 76 */
77 private Integer status; 77 private Integer status;
78 /** 78 /**
79 - * 购买中的库存  
80 - *  
81 - * 商品 SKU 被下单时,未付款的商品 SKU 数量  
82 - */  
83 - private Integer stocks;  
84 - /**  
85 - * 实际库存 79 + * 库存
86 */ 80 */
87 - private Integer actualStocks; 81 + private Integer stock;
88 /** 82 /**
89 * 商品重量,单位:kg 千克 83 * 商品重量,单位:kg 千克
90 */ 84 */
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/spu/ProductSpuDO.java
1 package cn.iocoder.yudao.module.product.dal.dataobject.spu; 1 package cn.iocoder.yudao.module.product.dal.dataobject.spu;
2 2
3 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
5 import cn.iocoder.yudao.module.product.dal.dataobject.brand.ProductBrandDO; 4 import cn.iocoder.yudao.module.product.dal.dataobject.brand.ProductBrandDO;
6 import cn.iocoder.yudao.module.product.dal.dataobject.category.ProductCategoryDO; 5 import cn.iocoder.yudao.module.product.dal.dataobject.category.ProductCategoryDO;
7 -import cn.iocoder.yudao.module.product.dal.dataobject.delivery.DeliveryTemplateDO;  
8 import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; 6 import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
9 -import cn.iocoder.yudao.module.product.enums.delivery.DeliveryModeEnum; 7 +import cn.iocoder.yudao.module.product.enums.spu.ProductSpuSpecTypeEnum;
  8 +import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum;
10 import com.baomidou.mybatisplus.annotation.KeySequence; 9 import com.baomidou.mybatisplus.annotation.KeySequence;
11 import com.baomidou.mybatisplus.annotation.TableField; 10 import com.baomidou.mybatisplus.annotation.TableField;
12 import com.baomidou.mybatisplus.annotation.TableId; 11 import com.baomidou.mybatisplus.annotation.TableId;
@@ -21,7 +20,7 @@ import java.util.List; @@ -21,7 +20,7 @@ import java.util.List;
21 * 20 *
22 * @author 芋道源码 21 * @author 芋道源码
23 */ 22 */
24 -@TableName("product_spu") 23 +@TableName(value = "product_spu", autoResultMap = true)
25 @KeySequence("product_spu_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 24 @KeySequence("product_spu_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
26 @Data 25 @Data
27 @EqualsAndHashCode(callSuper = true) 26 @EqualsAndHashCode(callSuper = true)
@@ -51,6 +50,10 @@ public class ProductSpuDO extends BaseDO { @@ -51,6 +50,10 @@ public class ProductSpuDO extends BaseDO {
51 */ 50 */
52 private String name; 51 private String name;
53 /** 52 /**
  53 + * 商品编码
  54 + */
  55 + private String code;
  56 + /**
54 * 商品卖点 57 * 商品卖点
55 */ 58 */
56 private String sellPoint; 59 private String sellPoint;
@@ -71,64 +74,103 @@ public class ProductSpuDO extends BaseDO { @@ -71,64 +74,103 @@ public class ProductSpuDO extends BaseDO {
71 */ 74 */
72 private Long brandId; 75 private Long brandId;
73 /** 76 /**
74 - * 商品图片地址数组 77 + * 商品主图
  78 + */
  79 + private String bannerUrl;
  80 + /**
  81 + * 商品轮播图数组
75 */ 82 */
76 @TableField(typeHandler = JacksonTypeHandler.class) 83 @TableField(typeHandler = JacksonTypeHandler.class)
77 private List<String> picUrls; 84 private List<String> picUrls;
78 /** 85 /**
  86 + * 商品视频
  87 + */
  88 + private String videoUrl;
  89 +
  90 + /**
79 * 排序字段 91 * 排序字段
80 */ 92 */
81 private Integer sort; 93 private Integer sort;
82 /** 94 /**
83 * 商品状态 95 * 商品状态
84 * 96 *
85 - * 枚举 {@link CommonStatusEnum} 97 + * 枚举 {@link ProductSpuStatusEnum}
86 */ 98 */
87 private Integer status; 99 private Integer status;
88 100
89 // ========== SKU 相关字段 ========= 101 // ========== SKU 相关字段 =========
90 102
91 /** 103 /**
92 - * 价格,单位使用:分 104 + * 规格类型
  105 + *
  106 + * 枚举 {@link ProductSpuSpecTypeEnum}
  107 + */
  108 + private Integer specType;
  109 + /**
  110 + * 最小价格,单位使用:分
93 * 111 *
94 * 基于其对应的 {@link ProductSkuDO#getPrice()} 最小值 112 * 基于其对应的 {@link ProductSkuDO#getPrice()} 最小值
95 */ 113 */
96 - private Integer price; 114 + private Integer minPrice;
  115 + /**
  116 + * 最大价格,单位使用:分
  117 + *
  118 + * 基于其对应的 {@link ProductSkuDO#getPrice()} 最大值
  119 + */
  120 + private Integer maxPrice;
  121 + /**
  122 + * 市场价,单位使用:分
  123 + *
  124 + * 基于其对应的 {@link ProductSkuDO#getMarketPrice()} 最大值
  125 + */
  126 + private Integer marketPrice;
97 /** 127 /**
98 * 总库存 128 * 总库存
99 * 129 *
100 - * 基于其对应的 {@link ProductSkuDO#getActualStocks()} 求和 130 + * 基于其对应的 {@link ProductSkuDO#getStock()} 求和
101 */ 131 */
102 - private Integer totalStocks;  
103 -  
104 - // ========== 统计相关字段 =========  
105 - 132 + private Integer totalStock;
106 /** 133 /**
107 - * 已销售数量(真实) 134 + * 预警预存
108 */ 135 */
109 - private Integer soldCount; 136 + private Integer warnStock;
110 /** 137 /**
111 - * 浏览量 138 + * 是否展示库存
112 */ 139 */
113 - private Integer visitCount; 140 + private Boolean showStock;
114 141
115 - // ========== 物流相关字段 ========= 142 + // ========== 统计相关字段 =========
116 143
117 /** 144 /**
118 - * 配送方式  
119 - *  
120 - * 枚举 {@link DeliveryModeEnum} 145 + * 商品销量
121 */ 146 */
122 - private Integer deliveryMode; 147 + private Integer salesCount;
123 /** 148 /**
124 - * 配置模板编号  
125 - *  
126 - * 关联 {@link DeliveryTemplateDO#getId()} 149 + * 虚拟销量
  150 + */
  151 + private Integer virtualSalesCount;
  152 + /**
  153 + * 商品点击量
127 */ 154 */
128 - private Long deliveryTemplateId; 155 + private Integer clickCount;
  156 +
  157 + // ========== 物流相关字段 =========
  158 +
  159 + // TODO 芋艿:稍后完善物流的字段
  160 +// /**
  161 +// * 配送方式
  162 +// *
  163 +// * 枚举 {@link DeliveryModeEnum}
  164 +// */
  165 +// private Integer deliveryMode;
  166 +// /**
  167 +// * 配置模板编号
  168 +// *
  169 +// * 关联 {@link DeliveryTemplateDO#getId()}
  170 +// */
  171 +// private Long deliveryTemplateId;
129 172
130 // TODO ========== 待定字段:yv ========= 173 // TODO ========== 待定字段:yv =========
131 - // TODO bar_code 条形码  
132 // TODO vip_price 会员价格 174 // TODO vip_price 会员价格
133 // TODO postage 邮费 175 // TODO postage 邮费
134 // TODO is_postage 是否包邮 176 // TODO is_postage 是否包邮
@@ -139,7 +181,6 @@ public class ProductSpuDO extends BaseDO { @@ -139,7 +181,6 @@ public class ProductSpuDO extends BaseDO {
139 // TODO integral 所需积分 181 // TODO integral 所需积分
140 // TODO is_seckill 秒杀状态 182 // TODO is_seckill 秒杀状态
141 // TODO is_bargain 砍价状态 183 // TODO is_bargain 砍价状态
142 - // TODO ficti 虚拟销量  
143 // TODO code_path 产品二维码地址 184 // TODO code_path 产品二维码地址
144 // TODO is_sub 是否分佣 185 // TODO is_sub 是否分佣
145 186
@@ -152,7 +193,26 @@ public class ProductSpuDO extends BaseDO { @@ -152,7 +193,26 @@ public class ProductSpuDO extends BaseDO {
152 193
153 // TODO ========== 待定字段:cf ========= 194 // TODO ========== 待定字段:cf =========
154 // TODO source_link 淘宝京东1688类型 195 // TODO source_link 淘宝京东1688类型
155 - // TODO video_link 主图视频链接  
156 // TODO activity 活动显示排序 0=默认 1=秒 2=砍价 3=拼团 196 // TODO activity 活动显示排序 0=默认 1=秒 2=砍价 3=拼团
157 197
  198 + // TODO ========== 待定字段:lf =========
  199 +
  200 + // TODO free_shipping_type:运费类型:1-包邮;2-统一运费;3-运费模板
  201 + // TODO free_shipping:统一运费金额
  202 + // TODO free_shipping_template_id:运费模板
  203 + // TODO is_commission:分销佣金:1-开启;0-不开启;first_ratio second_ratio three_ratio
  204 + // TODO is_share_bouns:区域股东分红:1-开启;0-不开启;region_ratio;shareholder_ratio
  205 +
  206 + // TODO is_new:新品推荐:1-是;0-否
  207 + // TODO is_best:好物优选:1-是;0-否
  208 + // TODO is_like:猜你喜欢:1-是;0-否
  209 +
  210 + // TODO is_team:是否开启拼团[0=否, 1=是]
  211 + // TODO is_integral:积分抵扣:1-开启;0-不开启
  212 + // TODO is_member:会员价:1-开启;0-不开启
  213 + // TODO give_integral_type:赠送积分类型:0-不赠送;1-赠送固定积分;2-按比例赠送积分
  214 + // TODO give_integral:赠送积分;
  215 +
  216 + // TODO poster:商品自定义海报
  217 +
158 } 218 }