Commit b30fc2802154694a03da29afe41336db9f20c919

Authored by YunaiV
1 parent 38d7d75f

商城:product:完善 ProductSpuDO 表

@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <!-- <module>yudao-module-bpm</module>--> 20 <!-- <module>yudao-module-bpm</module>-->
21 <!-- <module>yudao-module-report</module>--> 21 <!-- <module>yudao-module-report</module>-->
22 <!-- <module>yudao-module-mp</module>--> 22 <!-- <module>yudao-module-mp</module>-->
23 -<!-- <module>yudao-module-mall</module>--> 23 + <module>yudao-module-mall</module>
24 <!-- 示例项目 --> 24 <!-- 示例项目 -->
25 <module>yudao-example</module> 25 <module>yudao-example</module>
26 </modules> 26 </modules>
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/spu/ProductSpuSpecTypeEnum.java
@@ -13,6 +13,7 @@ import java.util.Arrays; @@ -13,6 +13,7 @@ import java.util.Arrays;
13 */ 13 */
14 @Getter 14 @Getter
15 @AllArgsConstructor 15 @AllArgsConstructor
  16 +@Deprecated
16 public enum ProductSpuSpecTypeEnum implements IntArrayValuable { 17 public enum ProductSpuSpecTypeEnum implements IntArrayValuable {
17 18
18 RECYCLE(1, "统一规格"), 19 RECYCLE(1, "统一规格"),
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/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/spu/ProductSpuDO.java
@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.product.dal.dataobject.spu; @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.product.dal.dataobject.spu;
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.brand.ProductBrandDO; 4 import cn.iocoder.yudao.module.product.dal.dataobject.brand.ProductBrandDO;
5 import cn.iocoder.yudao.module.product.dal.dataobject.category.ProductCategoryDO; 5 import cn.iocoder.yudao.module.product.dal.dataobject.category.ProductCategoryDO;
  6 +import cn.iocoder.yudao.module.product.dal.dataobject.delivery.DeliveryTemplateDO;
6 import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; 7 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.ProductSpuSpecTypeEnum;
8 import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum; 9 import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum;
@@ -43,18 +44,23 @@ public class ProductSpuDO extends BaseDO { @@ -43,18 +44,23 @@ public class ProductSpuDO extends BaseDO {
43 */ 44 */
44 private String name; 45 private String name;
45 /** 46 /**
46 - * 商品编码 47 + * 关键字
47 */ 48 */
48 - private String code; 49 + private String keyword;
49 /** 50 /**
50 - * 促销语 51 + * 商品简介
51 */ 52 */
52 - private String sellPoint; 53 + private String introduction;
53 /** 54 /**
54 * 商品详情 55 * 商品详情
55 */ 56 */
56 private String description; 57 private String description;
57 /** 58 /**
  59 + * 商品条码(一维码)
  60 + */
  61 + private String barCode;
  62 +
  63 + /**
58 * 商品分类编号 64 * 商品分类编号
59 * 65 *
60 * 关联 {@link ProductCategoryDO#getId()} 66 * 关联 {@link ProductCategoryDO#getId()}
@@ -67,20 +73,24 @@ public class ProductSpuDO extends BaseDO { @@ -67,20 +73,24 @@ public class ProductSpuDO extends BaseDO {
67 */ 73 */
68 private Long brandId; 74 private Long brandId;
69 /** 75 /**
70 - * 商品图片的数组  
71 - *  
72 - * 1. 第一张图片将作为商品主图,支持同时上传多张图;  
73 - * 2. 建议使用尺寸 800x800 像素以上、大小不超过 1M 的正方形图片;  
74 - * 3. 至少 1 张,最多上传 10 张 76 + * 商品封面图
  77 + */
  78 + private String picUrl;
  79 + /**
  80 + * 商品轮播图
75 */ 81 */
76 @TableField(typeHandler = JacksonTypeHandler.class) 82 @TableField(typeHandler = JacksonTypeHandler.class)
77 - private List<String> picUrls; 83 + private List<String> sliderPicUrls;
78 /** 84 /**
79 * 商品视频 85 * 商品视频
80 */ 86 */
81 private String videoUrl; 87 private String videoUrl;
82 88
83 /** 89 /**
  90 + * 单位名
  91 + */
  92 + private String unitName;
  93 + /**
84 * 排序字段 94 * 排序字段
85 */ 95 */
86 private Integer sort; 96 private Integer sort;
@@ -96,37 +106,86 @@ public class ProductSpuDO extends BaseDO { @@ -96,37 +106,86 @@ public class ProductSpuDO extends BaseDO {
96 /** 106 /**
97 * 规格类型 107 * 规格类型
98 * 108 *
99 - * 枚举 {@link ProductSpuSpecTypeEnum} 109 + * false - 单规格
  110 + * true - 多规格
100 */ 111 */
101 - private Integer specType; 112 + private Boolean specType;
102 /** 113 /**
103 - * 最小价格,单位使用:分 114 + * 商品价格,单位使用:分
104 * 115 *
105 * 基于其对应的 {@link ProductSkuDO#getPrice()} 最小值 116 * 基于其对应的 {@link ProductSkuDO#getPrice()} 最小值
106 */ 117 */
107 - private Integer minPrice; 118 + private Integer price;
108 /** 119 /**
109 - * 最大价格,单位使用:分 120 + * 市场价,单位使用:分
110 * 121 *
111 - * 基于其对应的 {@link ProductSkuDO#getPrice()} 最大值 122 + * 基于其对应的 {@link ProductSkuDO#getMarketPrice()} 最大值 TODO 芋艿:待确定最大还是最小
112 */ 123 */
113 - private Integer maxPrice; 124 + private Integer marketPrice;
114 /** 125 /**
115 - * 市场价,单位使用:分 126 + * 成本价,单位使用:分
116 * 127 *
117 - * 基于其对应的 {@link ProductSkuDO#getMarketPrice()} 最大值 128 + * 基于其对应的 {@link ProductSkuDO#getCostPrice()} 最大值 TODO 芋艿:待确定最大还是最小
118 */ 129 */
119 - private Integer marketPrice; 130 + private Integer costPrice;
120 /** 131 /**
121 - * 总库存 132 + * 库存
122 * 133 *
123 * 基于其对应的 {@link ProductSkuDO#getStock()} 求和 134 * 基于其对应的 {@link ProductSkuDO#getStock()} 求和
124 */ 135 */
125 - private Integer totalStock; 136 + private Integer stock;
  137 +
  138 + // ========== 物流相关字段 =========
  139 +
  140 + /**
  141 + * 物流配置模板编号
  142 + *
  143 + * 关联 {@link DeliveryTemplateDO#getId()}
  144 + */
  145 + private Long deliveryTemplateId;
  146 +
  147 + // ========== 营销相关字段 =========
  148 + /**
  149 + * 是否热卖推荐
  150 + */
  151 + private Boolean recommendHot;
126 /** 152 /**
127 - * 是否展示库存 153 + * 是否优惠推荐
128 */ 154 */
129 - private Boolean showStock; 155 + private Boolean recommendBenefit;
  156 + /**
  157 + * 是否精品推荐
  158 + */
  159 + private Boolean recommendBest;
  160 + /**
  161 + * 是否新品推荐
  162 + */
  163 + private Boolean recommendNew;
  164 + /**
  165 + * 是否优品推荐
  166 + */
  167 + private Boolean recommendGood;
  168 +
  169 + /**
  170 + * 赠送积分
  171 + */
  172 + private Integer giveIntegral;
  173 +
  174 + /**
  175 + * 分销类型
  176 + *
  177 + * false - 默认
  178 + * true - 自行设置
  179 + */
  180 + private Boolean subCommissionType;
  181 +
  182 + /**
  183 + * 活动展示顺序
  184 + *
  185 + * 对应 PromotionTypeEnum 枚举
  186 + */
  187 + @TableField(typeHandler = JacksonTypeHandler.class)
  188 + private List<Integer> activityOrders;
130 189
131 // ========== 统计相关字段 ========= 190 // ========== 统计相关字段 =========
132 191
@@ -139,74 +198,8 @@ public class ProductSpuDO extends BaseDO { @@ -139,74 +198,8 @@ public class ProductSpuDO extends BaseDO {
139 */ 198 */
140 private Integer virtualSalesCount; 199 private Integer virtualSalesCount;
141 /** 200 /**
142 - * 商品点击量 201 + * 浏览量
143 */ 202 */
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 扩展信息;例如说,预售商品的信息 203 + private Integer browseCount;
211 204
212 } 205 }
yudao-module-mall/yudao-module-product-biz/src/test/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuServiceImplTest.java
@@ -203,7 +203,7 @@ public class ProductSpuServiceImplTest extends BaseDbUnitTest { @@ -203,7 +203,7 @@ public class ProductSpuServiceImplTest extends BaseDbUnitTest {
203 o.setClickCount(100); 203 o.setClickCount(100);
204 o.setCode(code); 204 o.setCode(code);
205 o.setDescription("测试商品"); 205 o.setDescription("测试商品");
206 - o.setPicUrls(new ArrayList<>()); 206 + o.setSliderPicUrls(new ArrayList<>());
207 o.setName("测试"); 207 o.setName("测试");
208 o.setSalesCount(100); 208 o.setSalesCount(100);
209 o.setSellPoint("超级加倍"); 209 o.setSellPoint("超级加倍");
@@ -251,7 +251,7 @@ public class ProductSpuServiceImplTest extends BaseDbUnitTest { @@ -251,7 +251,7 @@ public class ProductSpuServiceImplTest extends BaseDbUnitTest {
251 o.setClickCount(1); 251 o.setClickCount(1);
252 o.setCode(generateNo()); 252 o.setCode(generateNo());
253 o.setDescription("测试商品"); 253 o.setDescription("测试商品");
254 - o.setPicUrls(new ArrayList<>()); 254 + o.setSliderPicUrls(new ArrayList<>());
255 o.setName("测试"); 255 o.setName("测试");
256 o.setSalesCount(1); 256 o.setSalesCount(1);
257 o.setSellPoint("卖点"); 257 o.setSellPoint("卖点");
yudao-server/pom.xml
@@ -54,11 +54,11 @@ @@ -54,11 +54,11 @@
54 <!-- <version>${revision}</version>--> 54 <!-- <version>${revision}</version>-->
55 <!-- </dependency>--> 55 <!-- </dependency>-->
56 <!-- 支付服务 --> 56 <!-- 支付服务 -->
57 -<!-- <dependency>-->  
58 -<!-- <groupId>cn.iocoder.boot</groupId>-->  
59 -<!-- <artifactId>yudao-module-pay-biz</artifactId>-->  
60 -<!-- <version>${revision}</version>-->  
61 -<!-- </dependency>--> 57 + <dependency>
  58 + <groupId>cn.iocoder.boot</groupId>
  59 + <artifactId>yudao-module-pay-biz</artifactId>
  60 + <version>${revision}</version>
  61 + </dependency>
62 62
63 <!-- 微信公众号模块。默认注释,保证编译速度 --> 63 <!-- 微信公众号模块。默认注释,保证编译速度 -->
64 <!-- <dependency>--> 64 <!-- <dependency>-->
@@ -68,21 +68,21 @@ @@ -68,21 +68,21 @@
68 <!-- </dependency>--> 68 <!-- </dependency>-->
69 69
70 <!-- 商城相关模块。默认注释,保证编译速度 --> 70 <!-- 商城相关模块。默认注释,保证编译速度 -->
71 -<!-- <dependency>-->  
72 -<!-- <groupId>cn.iocoder.boot</groupId>-->  
73 -<!-- <artifactId>yudao-module-promotion-biz</artifactId>-->  
74 -<!-- <version>${revision}</version>-->  
75 -<!-- </dependency>-->  
76 -<!-- <dependency>-->  
77 -<!-- <groupId>cn.iocoder.boot</groupId>-->  
78 -<!-- <artifactId>yudao-module-product-biz</artifactId>-->  
79 -<!-- <version>${revision}</version>-->  
80 -<!-- </dependency>-->  
81 -<!-- <dependency>-->  
82 -<!-- <groupId>cn.iocoder.boot</groupId>-->  
83 -<!-- <artifactId>yudao-module-trade-biz</artifactId>-->  
84 -<!-- <version>${revision}</version>-->  
85 -<!-- </dependency>--> 71 + <dependency>
  72 + <groupId>cn.iocoder.boot</groupId>
  73 + <artifactId>yudao-module-promotion-biz</artifactId>
  74 + <version>${revision}</version>
  75 + </dependency>
  76 + <dependency>
  77 + <groupId>cn.iocoder.boot</groupId>
  78 + <artifactId>yudao-module-product-biz</artifactId>
  79 + <version>${revision}</version>
  80 + </dependency>
  81 + <dependency>
  82 + <groupId>cn.iocoder.boot</groupId>
  83 + <artifactId>yudao-module-trade-biz</artifactId>
  84 + <version>${revision}</version>
  85 + </dependency>
86 86
87 <!-- spring boot 配置所需依赖 --> 87 <!-- spring boot 配置所需依赖 -->
88 <dependency> 88 <dependency>