mall:优化商品表的设计
parent
c612487198
commit
33a01e78bf
|
@ -1,4 +1,4 @@
|
|||
package cn.iocoder.yudao.module.product.enums.comment;
|
||||
package cn.iocoder.yudao.module.product.enums.spu;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.core.IntArrayValuable;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
@ -7,26 +7,25 @@ import lombok.Getter;
|
|||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 商品评论的评价枚举
|
||||
* 商品 SPU 规格类型
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum ProductCommentEvaluateEnum implements IntArrayValuable {
|
||||
public enum ProductSpuSpecTypeEnum implements IntArrayValuable {
|
||||
|
||||
GOOD(1, "好评"),
|
||||
BAD(2, "差评"),
|
||||
MIDDLE(2, "中评"),;
|
||||
RECYCLE(1, "统一规格"),
|
||||
DISABLE(2, "多规格");
|
||||
|
||||
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(ProductCommentEvaluateEnum::getEvaluate).toArray();
|
||||
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(ProductSpuSpecTypeEnum::getType).toArray();
|
||||
|
||||
/**
|
||||
* 评价
|
||||
* 规格
|
||||
*/
|
||||
private final Integer evaluate;
|
||||
private final Integer type;
|
||||
/**
|
||||
* 评价名
|
||||
* 规格名
|
||||
*/
|
||||
private final String name;
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
package cn.iocoder.yudao.module.product.enums.spu;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.core.IntArrayValuable;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 商品 SPU 状态
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum ProductSpuStatusEnum implements IntArrayValuable {
|
||||
|
||||
RECYCLE(-1, "回收站"),
|
||||
DISABLE(0, "下架"),
|
||||
ENABLE(1, "上架"),;
|
||||
|
||||
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(ProductSpuStatusEnum::getStyle).toArray();
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private final Integer style;
|
||||
/**
|
||||
* 状态名
|
||||
*/
|
||||
private final String name;
|
||||
|
||||
@Override
|
||||
public int[] array() {
|
||||
return ARRAYS;
|
||||
}
|
||||
|
||||
}
|
|
@ -48,4 +48,6 @@ public class ProductBrandDO extends BaseDO {
|
|||
*/
|
||||
private Integer status;
|
||||
|
||||
// TODO 芋艿:firstLetter 首字母
|
||||
|
||||
}
|
||||
|
|
|
@ -70,4 +70,6 @@ public class ProductCategoryDO extends BaseDO {
|
|||
*/
|
||||
private Integer status;
|
||||
|
||||
// TODO 芋艿:is_recommend 是否首页推荐:1-是;0-否
|
||||
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.product.dal.dataobject.comment;
|
|||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO;
|
||||
import cn.iocoder.yudao.module.product.enums.comment.ProductCommentAuditStatusEnum;
|
||||
import cn.iocoder.yudao.module.product.enums.comment.ProductCommentEvaluateEnum;
|
||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
|
@ -40,12 +39,24 @@ public class ProductCommentDO extends BaseDO {
|
|||
* 关联 {@link ProductSpuDO#getId()}
|
||||
*/
|
||||
private Long spuId;
|
||||
/**
|
||||
* 交易订单编号
|
||||
*
|
||||
* 关联 TradeOrderDO 的 id 编号
|
||||
*/
|
||||
private Long orderId;
|
||||
/**
|
||||
* 交易订单项编号
|
||||
*
|
||||
* 关联 OrderItemDO 的 id 编号
|
||||
* 关联 TradeOrderItemDO 的 id 编号
|
||||
*/
|
||||
private Long tradeOrderItemId;
|
||||
private Long orderItemId;
|
||||
/**
|
||||
* 审核状态
|
||||
*
|
||||
* 枚举 {@link ProductCommentAuditStatusEnum}
|
||||
*/
|
||||
private Integer auditStatus;
|
||||
|
||||
/**
|
||||
* 用户编号
|
||||
|
@ -71,15 +82,29 @@ public class ProductCommentDO extends BaseDO {
|
|||
@TableField(typeHandler = JacksonTypeHandler.class)
|
||||
private List<String> picUrls;
|
||||
/**
|
||||
* 得分,0-5 分
|
||||
*/
|
||||
private Integer score;
|
||||
/**
|
||||
* 评价
|
||||
* 描述相符星级
|
||||
*
|
||||
* 枚举 {@link ProductCommentEvaluateEnum}
|
||||
* 1-5 星
|
||||
*/
|
||||
private Integer evaluate;
|
||||
private Integer descriptionScore;
|
||||
/**
|
||||
* 商品评论星级
|
||||
*
|
||||
* 1-5 星
|
||||
*/
|
||||
private Integer productScore;
|
||||
/**
|
||||
* 服务评论星级
|
||||
*
|
||||
* 1-5 星
|
||||
*/
|
||||
private Integer serviceScore;
|
||||
/**
|
||||
* 物流评论星级
|
||||
*
|
||||
* 1-5 星
|
||||
*/
|
||||
private Integer expressComment;
|
||||
|
||||
/**
|
||||
* 商家是否回复
|
||||
|
@ -93,12 +118,6 @@ public class ProductCommentDO extends BaseDO {
|
|||
* 商家回复时间
|
||||
*/
|
||||
private Date replyTime;
|
||||
/**
|
||||
* 审核状态
|
||||
*
|
||||
* 枚举 {@link ProductCommentAuditStatusEnum}
|
||||
*/
|
||||
private Integer auditStatus;
|
||||
|
||||
/**
|
||||
* 有用的计数
|
||||
|
|
|
@ -54,9 +54,9 @@ public class ProductSkuDO extends BaseDO {
|
|||
*/
|
||||
private Integer price;
|
||||
/**
|
||||
* 原价,单位:分
|
||||
* 市场价,单位:分
|
||||
*/
|
||||
private Integer originalPrice;
|
||||
private Integer marketPrice;
|
||||
/**
|
||||
* 成本价,单位:分
|
||||
*/
|
||||
|
@ -76,15 +76,9 @@ public class ProductSkuDO extends BaseDO {
|
|||
*/
|
||||
private Integer status;
|
||||
/**
|
||||
* 购买中的库存
|
||||
*
|
||||
* 商品 SKU 被下单时,未付款的商品 SKU 数量
|
||||
* 库存
|
||||
*/
|
||||
private Integer stocks;
|
||||
/**
|
||||
* 实际库存
|
||||
*/
|
||||
private Integer actualStocks;
|
||||
private Integer stock;
|
||||
/**
|
||||
* 商品重量,单位:kg 千克
|
||||
*/
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
package cn.iocoder.yudao.module.product.dal.dataobject.spu;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
import cn.iocoder.yudao.module.product.dal.dataobject.brand.ProductBrandDO;
|
||||
import cn.iocoder.yudao.module.product.dal.dataobject.category.ProductCategoryDO;
|
||||
import cn.iocoder.yudao.module.product.dal.dataobject.delivery.DeliveryTemplateDO;
|
||||
import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
|
||||
import cn.iocoder.yudao.module.product.enums.delivery.DeliveryModeEnum;
|
||||
import cn.iocoder.yudao.module.product.enums.spu.ProductSpuSpecTypeEnum;
|
||||
import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum;
|
||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
|
@ -21,7 +20,7 @@ import java.util.List;
|
|||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@TableName("product_spu")
|
||||
@TableName(value = "product_spu", autoResultMap = true)
|
||||
@KeySequence("product_spu_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
|
@ -50,6 +49,10 @@ public class ProductSpuDO extends BaseDO {
|
|||
* 商品名称
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 商品编码
|
||||
*/
|
||||
private String code;
|
||||
/**
|
||||
* 商品卖点
|
||||
*/
|
||||
|
@ -71,10 +74,19 @@ public class ProductSpuDO extends BaseDO {
|
|||
*/
|
||||
private Long brandId;
|
||||
/**
|
||||
* 商品图片地址数组
|
||||
* 商品主图
|
||||
*/
|
||||
private String bannerUrl;
|
||||
/**
|
||||
* 商品轮播图数组
|
||||
*/
|
||||
@TableField(typeHandler = JacksonTypeHandler.class)
|
||||
private List<String> picUrls;
|
||||
/**
|
||||
* 商品视频
|
||||
*/
|
||||
private String videoUrl;
|
||||
|
||||
/**
|
||||
* 排序字段
|
||||
*/
|
||||
|
@ -82,53 +94,83 @@ public class ProductSpuDO extends BaseDO {
|
|||
/**
|
||||
* 商品状态
|
||||
*
|
||||
* 枚举 {@link CommonStatusEnum}
|
||||
* 枚举 {@link ProductSpuStatusEnum}
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
// ========== SKU 相关字段 =========
|
||||
|
||||
/**
|
||||
* 价格,单位使用:分
|
||||
* 规格类型
|
||||
*
|
||||
* 枚举 {@link ProductSpuSpecTypeEnum}
|
||||
*/
|
||||
private Integer specType;
|
||||
/**
|
||||
* 最小价格,单位使用:分
|
||||
*
|
||||
* 基于其对应的 {@link ProductSkuDO#getPrice()} 最小值
|
||||
*/
|
||||
private Integer price;
|
||||
private Integer minPrice;
|
||||
/**
|
||||
* 最大价格,单位使用:分
|
||||
*
|
||||
* 基于其对应的 {@link ProductSkuDO#getPrice()} 最大值
|
||||
*/
|
||||
private Integer maxPrice;
|
||||
/**
|
||||
* 市场价,单位使用:分
|
||||
*
|
||||
* 基于其对应的 {@link ProductSkuDO#getMarketPrice()} 最大值
|
||||
*/
|
||||
private Integer marketPrice;
|
||||
/**
|
||||
* 总库存
|
||||
*
|
||||
* 基于其对应的 {@link ProductSkuDO#getActualStocks()} 求和
|
||||
* 基于其对应的 {@link ProductSkuDO#getStock()} 求和
|
||||
*/
|
||||
private Integer totalStocks;
|
||||
private Integer totalStock;
|
||||
/**
|
||||
* 预警预存
|
||||
*/
|
||||
private Integer warnStock;
|
||||
/**
|
||||
* 是否展示库存
|
||||
*/
|
||||
private Boolean showStock;
|
||||
|
||||
// ========== 统计相关字段 =========
|
||||
|
||||
/**
|
||||
* 已销售数量(真实)
|
||||
* 商品销量
|
||||
*/
|
||||
private Integer soldCount;
|
||||
private Integer salesCount;
|
||||
/**
|
||||
* 浏览量
|
||||
* 虚拟销量
|
||||
*/
|
||||
private Integer visitCount;
|
||||
private Integer virtualSalesCount;
|
||||
/**
|
||||
* 商品点击量
|
||||
*/
|
||||
private Integer clickCount;
|
||||
|
||||
// ========== 物流相关字段 =========
|
||||
|
||||
/**
|
||||
* 配送方式
|
||||
*
|
||||
* 枚举 {@link DeliveryModeEnum}
|
||||
*/
|
||||
private Integer deliveryMode;
|
||||
/**
|
||||
* 配置模板编号
|
||||
*
|
||||
* 关联 {@link DeliveryTemplateDO#getId()}
|
||||
*/
|
||||
private Long deliveryTemplateId;
|
||||
// TODO 芋艿:稍后完善物流的字段
|
||||
// /**
|
||||
// * 配送方式
|
||||
// *
|
||||
// * 枚举 {@link DeliveryModeEnum}
|
||||
// */
|
||||
// private Integer deliveryMode;
|
||||
// /**
|
||||
// * 配置模板编号
|
||||
// *
|
||||
// * 关联 {@link DeliveryTemplateDO#getId()}
|
||||
// */
|
||||
// private Long deliveryTemplateId;
|
||||
|
||||
// TODO ========== 待定字段:yv =========
|
||||
// TODO bar_code 条形码
|
||||
// TODO vip_price 会员价格
|
||||
// TODO postage 邮费
|
||||
// TODO is_postage 是否包邮
|
||||
|
@ -139,7 +181,6 @@ public class ProductSpuDO extends BaseDO {
|
|||
// TODO integral 所需积分
|
||||
// TODO is_seckill 秒杀状态
|
||||
// TODO is_bargain 砍价状态
|
||||
// TODO ficti 虚拟销量
|
||||
// TODO code_path 产品二维码地址
|
||||
// TODO is_sub 是否分佣
|
||||
|
||||
|
@ -152,7 +193,26 @@ public class ProductSpuDO extends BaseDO {
|
|||
|
||||
// TODO ========== 待定字段:cf =========
|
||||
// TODO source_link 淘宝京东1688类型
|
||||
// TODO video_link 主图视频链接
|
||||
// TODO activity 活动显示排序 0=默认 1=秒 2=砍价 3=拼团
|
||||
|
||||
// TODO ========== 待定字段:lf =========
|
||||
|
||||
// TODO free_shipping_type:运费类型:1-包邮;2-统一运费;3-运费模板
|
||||
// TODO free_shipping:统一运费金额
|
||||
// TODO free_shipping_template_id:运费模板
|
||||
// TODO is_commission:分销佣金:1-开启;0-不开启;first_ratio second_ratio three_ratio
|
||||
// TODO is_share_bouns:区域股东分红:1-开启;0-不开启;region_ratio;shareholder_ratio
|
||||
|
||||
// TODO is_new:新品推荐:1-是;0-否
|
||||
// TODO is_best:好物优选:1-是;0-否
|
||||
// TODO is_like:猜你喜欢:1-是;0-否
|
||||
|
||||
// TODO is_team:是否开启拼团[0=否, 1=是]
|
||||
// TODO is_integral:积分抵扣:1-开启;0-不开启
|
||||
// TODO is_member:会员价:1-开启;0-不开启
|
||||
// TODO give_integral_type:赠送积分类型:0-不赠送;1-赠送固定积分;2-按比例赠送积分
|
||||
// TODO give_integral:赠送积分;
|
||||
|
||||
// TODO poster:商品自定义海报
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue