mall:优化商品表的设计

This commit is contained in:
YunaiV 2022-08-04 23:25:44 +08:00
parent c612487198
commit 33a01e78bf
7 changed files with 179 additions and 65 deletions

View File

@ -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;

View File

@ -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;
}
}

View File

@ -48,4 +48,6 @@ public class ProductBrandDO extends BaseDO {
*/
private Integer status;
// TODO 芋艿firstLetter 首字母
}

View File

@ -70,4 +70,6 @@ public class ProductCategoryDO extends BaseDO {
*/
private Integer status;
// TODO 芋艿is_recommend 是否首页推荐1-0-
}

View File

@ -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;
/**
* 有用的计数

View File

@ -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 千克
*/

View File

@ -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") // 用于 OraclePostgreSQLKingbaseDB2H2 数据库的主键自增如果是 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_ratioshareholder_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商品自定义海报
}