|
@@ -0,0 +1,212 @@
|
|
|
+package cn.iocoder.yudao.module.product.dal.dataobject.spu;
|
|
|
+
|
|
|
+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.sku.ProductSkuDO;
|
|
|
+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;
|
|
|
+import com.baomidou.mybatisplus.annotation.TableName;
|
|
|
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
|
|
+import lombok.*;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 商品 SPU DO
|
|
|
+ *
|
|
|
+ * @author 芋道源码
|
|
|
+ */
|
|
|
+@TableName(value = "product_spu", autoResultMap = true)
|
|
|
+@KeySequence("product_spu_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
|
|
+@Data
|
|
|
+@EqualsAndHashCode(callSuper = true)
|
|
|
+@ToString(callSuper = true)
|
|
|
+@Builder
|
|
|
+@NoArgsConstructor
|
|
|
+@AllArgsConstructor
|
|
|
+public class ProductSpuDO extends BaseDO {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 商品 SPU 编号,自增
|
|
|
+ */
|
|
|
+ @TableId
|
|
|
+ private Long id;
|
|
|
+
|
|
|
+ // ========== 基本信息 =========
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 商品名称
|
|
|
+ */
|
|
|
+ private String name;
|
|
|
+ /**
|
|
|
+ * 商品编码
|
|
|
+ */
|
|
|
+ private String code;
|
|
|
+ /**
|
|
|
+ * 促销语
|
|
|
+ */
|
|
|
+ private String sellPoint;
|
|
|
+ /**
|
|
|
+ * 商品详情
|
|
|
+ */
|
|
|
+ private String description;
|
|
|
+ /**
|
|
|
+ * 商品分类编号
|
|
|
+ *
|
|
|
+ * 关联 {@link ProductCategoryDO#getId()}
|
|
|
+ */
|
|
|
+ private Long categoryId;
|
|
|
+ /**
|
|
|
+ * 商品品牌编号
|
|
|
+ *
|
|
|
+ * 关联 {@link ProductBrandDO#getId()}
|
|
|
+ */
|
|
|
+ private Long brandId;
|
|
|
+ /**
|
|
|
+ * 商品图片的数组
|
|
|
+ *
|
|
|
+ * 1. 第一张图片将作为商品主图,支持同时上传多张图;
|
|
|
+ * 2. 建议使用尺寸 800x800 像素以上、大小不超过 1M 的正方形图片;
|
|
|
+ * 3. 至少 1 张,最多上传 10 张
|
|
|
+ */
|
|
|
+ @TableField(typeHandler = JacksonTypeHandler.class)
|
|
|
+ private List<String> picUrls;
|
|
|
+ /**
|
|
|
+ * 商品视频
|
|
|
+ */
|
|
|
+ private String videoUrl;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 排序字段
|
|
|
+ */
|
|
|
+ private Integer sort;
|
|
|
+ /**
|
|
|
+ * 商品状态
|
|
|
+ *
|
|
|
+ * 枚举 {@link ProductSpuStatusEnum}
|
|
|
+ */
|
|
|
+ private Integer status;
|
|
|
+
|
|
|
+ // ========== SKU 相关字段 =========
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 规格类型
|
|
|
+ *
|
|
|
+ * 枚举 {@link ProductSpuSpecTypeEnum}
|
|
|
+ */
|
|
|
+ private Integer specType;
|
|
|
+ /**
|
|
|
+ * 最小价格,单位使用:分
|
|
|
+ *
|
|
|
+ * 基于其对应的 {@link ProductSkuDO#getPrice()} 最小值
|
|
|
+ */
|
|
|
+ private Integer minPrice;
|
|
|
+ /**
|
|
|
+ * 最大价格,单位使用:分
|
|
|
+ *
|
|
|
+ * 基于其对应的 {@link ProductSkuDO#getPrice()} 最大值
|
|
|
+ */
|
|
|
+ private Integer maxPrice;
|
|
|
+ /**
|
|
|
+ * 市场价,单位使用:分
|
|
|
+ *
|
|
|
+ * 基于其对应的 {@link ProductSkuDO#getMarketPrice()} 最大值
|
|
|
+ */
|
|
|
+ private Integer marketPrice;
|
|
|
+ /**
|
|
|
+ * 总库存
|
|
|
+ *
|
|
|
+ * 基于其对应的 {@link ProductSkuDO#getStock()} 求和
|
|
|
+ */
|
|
|
+ private Integer totalStock;
|
|
|
+ /**
|
|
|
+ * 是否展示库存
|
|
|
+ */
|
|
|
+ private Boolean showStock;
|
|
|
+
|
|
|
+ // ========== 统计相关字段 =========
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 商品销量
|
|
|
+ */
|
|
|
+ private Integer salesCount;
|
|
|
+ /**
|
|
|
+ * 虚拟销量
|
|
|
+ */
|
|
|
+ private Integer virtualSalesCount;
|
|
|
+ /**
|
|
|
+ * 商品点击量
|
|
|
+ */
|
|
|
+ private Integer clickCount;
|
|
|
+
|
|
|
+ // ========== 物流相关字段 =========
|
|
|
+
|
|
|
+ // TODO 芋艿:稍后完善物流的字段
|
|
|
+// /**
|
|
|
+// * 配送方式
|
|
|
+// *
|
|
|
+// * 枚举 {@link DeliveryModeEnum}
|
|
|
+// */
|
|
|
+// private Integer deliveryMode;
|
|
|
+// /**
|
|
|
+// * 配置模板编号
|
|
|
+// *
|
|
|
+// * 关联 {@link DeliveryTemplateDO#getId()}
|
|
|
+// */
|
|
|
+// private Long deliveryTemplateId;
|
|
|
+
|
|
|
+ // TODO ========== 待定字段:yv =========
|
|
|
+ // TODO vip_price 会员价格
|
|
|
+ // TODO postage 邮费
|
|
|
+ // TODO is_postage 是否包邮
|
|
|
+ // TODO unit_name 单位
|
|
|
+ // TODO is_new 商户是否代理
|
|
|
+ // TODO give_integral 获得积分
|
|
|
+ // TODO is_integral 是开启积分兑换
|
|
|
+ // TODO integral 所需积分
|
|
|
+ // TODO is_seckill 秒杀状态
|
|
|
+ // TODO is_bargain 砍价状态
|
|
|
+ // TODO code_path 产品二维码地址
|
|
|
+ // TODO is_sub 是否分佣
|
|
|
+
|
|
|
+ // TODO ↓↓ 芋艿 ↓↓ 看起来走分组更合适?
|
|
|
+ // TODO is_hot 是否热卖
|
|
|
+ // TODO is_benefit 是否优惠
|
|
|
+ // TODO is_best 是否精品
|
|
|
+ // TODO is_new 是否新品
|
|
|
+ // TODO is_good 是否优品推荐
|
|
|
+
|
|
|
+ // TODO ========== 待定字段:cf =========
|
|
|
+ // TODO source_link 淘宝京东1688类型
|
|
|
+ // 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:商品自定义海报
|
|
|
+
|
|
|
+ // TODO ========== 待定字段:laoji =========
|
|
|
+ // TODO productType 1 - 普通商品 2 - 预售商品;可能和 type 合并不错
|
|
|
+ // TODO productUnit 商品单位
|
|
|
+ // TODO extJson 扩展信息;例如说,预售商品的信息
|
|
|
+
|
|
|
+}
|