mall:优化商品表的设计

pull/2/head
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 cn.iocoder.yudao.framework.common.core.IntArrayValuable;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -7,26 +7,25 @@ import lombok.Getter;
import java.util.Arrays; import java.util.Arrays;
/** /**
* * SPU
* *
* @author * @author
*/ */
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor
public enum ProductCommentEvaluateEnum implements IntArrayValuable { public enum ProductSpuSpecTypeEnum implements IntArrayValuable {
GOOD(1, "好评"), RECYCLE(1, "统一规格"),
BAD(2, "差评"), DISABLE(2, "多规格");
MIDDLE(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; 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; private Integer status;
// TODO 芋艿firstLetter 首字母
} }

View File

@ -70,4 +70,6 @@ public class ProductCategoryDO extends BaseDO {
*/ */
private Integer status; 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.framework.mybatis.core.dataobject.BaseDO;
import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; 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.ProductCommentAuditStatusEnum;
import cn.iocoder.yudao.module.product.enums.comment.ProductCommentEvaluateEnum;
import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
@ -40,12 +39,24 @@ public class ProductCommentDO extends BaseDO {
* {@link ProductSpuDO#getId()} * {@link ProductSpuDO#getId()}
*/ */
private Long spuId; 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) @TableField(typeHandler = JacksonTypeHandler.class)
private List<String> picUrls; 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; private Date replyTime;
/**
*
*
* {@link ProductCommentAuditStatusEnum}
*/
private Integer auditStatus;
/** /**
* *

View File

@ -54,9 +54,9 @@ public class ProductSkuDO extends BaseDO {
*/ */
private Integer price; private Integer price;
/** /**
* *
*/ */
private Integer originalPrice; private Integer marketPrice;
/** /**
* *
*/ */
@ -76,15 +76,9 @@ public class ProductSkuDO extends BaseDO {
*/ */
private Integer status; private Integer status;
/** /**
* *
*
* SKU SKU
*/ */
private Integer stocks; private Integer stock;
/**
*
*/
private Integer actualStocks;
/** /**
* kg * kg
*/ */

View File

@ -1,12 +1,11 @@
package cn.iocoder.yudao.module.product.dal.dataobject.spu; 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.framework.mybatis.core.dataobject.BaseDO;
import cn.iocoder.yudao.module.product.dal.dataobject.brand.ProductBrandDO; 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.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.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.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
@ -21,7 +20,7 @@ import java.util.List;
* *
* @author * @author
*/ */
@TableName("product_spu") @TableName(value = "product_spu", autoResultMap = true)
@KeySequence("product_spu_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @KeySequence("product_spu_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ -50,6 +49,10 @@ public class ProductSpuDO extends BaseDO {
* *
*/ */
private String name; private String name;
/**
*
*/
private String code;
/** /**
* *
*/ */
@ -71,10 +74,19 @@ public class ProductSpuDO extends BaseDO {
*/ */
private Long brandId; private Long brandId;
/** /**
* *
*/
private String bannerUrl;
/**
*
*/ */
@TableField(typeHandler = JacksonTypeHandler.class) @TableField(typeHandler = JacksonTypeHandler.class)
private List<String> picUrls; private List<String> picUrls;
/**
*
*/
private String videoUrl;
/** /**
* *
*/ */
@ -82,53 +94,83 @@ public class ProductSpuDO extends BaseDO {
/** /**
* *
* *
* {@link CommonStatusEnum} * {@link ProductSpuStatusEnum}
*/ */
private Integer status; private Integer status;
// ========== SKU 相关字段 ========= // ========== SKU 相关字段 =========
/** /**
* 使 *
*
* {@link ProductSpuSpecTypeEnum}
*/
private Integer specType;
/**
* 使
* *
* {@link ProductSkuDO#getPrice()} * {@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;
// ========== 物流相关字段 ========= // ========== 物流相关字段 =========
/** // TODO 芋艿:稍后完善物流的字段
* // /**
* // * 配送方式
* {@link DeliveryModeEnum} // *
*/ // * 枚举 {@link DeliveryModeEnum}
private Integer deliveryMode; // */
/** // private Integer deliveryMode;
* // /**
* // * 配置模板编号
* {@link DeliveryTemplateDO#getId()} // *
*/ // * 关联 {@link DeliveryTemplateDO#getId()}
private Long deliveryTemplateId; // */
// private Long deliveryTemplateId;
// TODO ========== 待定字段yv ========= // TODO ========== 待定字段yv =========
// TODO bar_code 条形码
// TODO vip_price 会员价格 // TODO vip_price 会员价格
// TODO postage 邮费 // TODO postage 邮费
// TODO is_postage 是否包邮 // TODO is_postage 是否包邮
@ -139,7 +181,6 @@ public class ProductSpuDO extends BaseDO {
// TODO integral 所需积分 // TODO integral 所需积分
// TODO is_seckill 秒杀状态 // TODO is_seckill 秒杀状态
// TODO is_bargain 砍价状态 // TODO is_bargain 砍价状态
// TODO ficti 虚拟销量
// TODO code_path 产品二维码地址 // TODO code_path 产品二维码地址
// TODO is_sub 是否分佣 // TODO is_sub 是否分佣
@ -152,7 +193,26 @@ public class ProductSpuDO extends BaseDO {
// TODO ========== 待定字段cf ========= // TODO ========== 待定字段cf =========
// TODO source_link 淘宝京东1688类型 // TODO source_link 淘宝京东1688类型
// TODO video_link 主图视频链接
// TODO activity 活动显示排序 0=默认 1=秒 2=砍价 3=拼团 // 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商品自定义海报
} }