package cn.iocoder.yudao.module.product.dal.dataobject.sku;
|
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO;
|
import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyValueDO;
|
import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO;
|
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.Jackson3TypeHandler;
|
import lombok.*;
|
|
import java.util.List;
|
|
/**
|
* 商品 SKU DO
|
*
|
* @author 芋道源码
|
*/
|
@TableName(value = "product_sku", autoResultMap = true)
|
@KeySequence("product_sku_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
@Data
|
@EqualsAndHashCode(callSuper = true)
|
@ToString(callSuper = true)
|
@Builder
|
@NoArgsConstructor
|
@AllArgsConstructor
|
public class ProductSkuDO extends BaseDO {
|
|
/**
|
* 商品 SKU 编号,自增
|
*/
|
@TableId
|
private Long id;
|
/**
|
* SPU 编号
|
*
|
* 关联 {@link ProductSpuDO#getId()}
|
*/
|
private Long spuId;
|
/**
|
* 属性数组,JSON 格式
|
*/
|
@TableField(typeHandler = Jackson3TypeHandler.class)
|
private List<Property> properties;
|
/**
|
* 商品价格,单位:分
|
*/
|
private Integer price;
|
/**
|
* 市场价,单位:分
|
*/
|
private Integer marketPrice;
|
/**
|
* 成本价,单位:分
|
*/
|
private Integer costPrice;
|
/**
|
* 商品条码
|
*/
|
private String barCode;
|
/**
|
* 图片地址
|
*/
|
private String picUrl;
|
/**
|
* 库存
|
*/
|
private Integer stock;
|
/**
|
* 商品重量,单位:kg 千克
|
*/
|
private Double weight;
|
/**
|
* 商品体积,单位:m^3 平米
|
*/
|
private Double volume;
|
|
/**
|
* 一级分销的佣金,单位:分
|
*/
|
private Integer firstBrokeragePrice;
|
/**
|
* 二级分销的佣金,单位:分
|
*/
|
private Integer secondBrokeragePrice;
|
|
// ========== 营销相关字段 =========
|
|
// ========== 统计相关字段 =========
|
/**
|
* 商品销量
|
*/
|
private Integer salesCount;
|
|
/**
|
* 商品属性
|
*/
|
@Data
|
@NoArgsConstructor
|
@AllArgsConstructor
|
public static class Property {
|
|
/**
|
* 属性编号
|
* 关联 {@link ProductPropertyDO#getId()}
|
*/
|
private Long propertyId;
|
/**
|
* 属性名字
|
* 冗余 {@link ProductPropertyDO#getName()}
|
*
|
* 注意:每次属性名字发生变化时,需要更新该冗余
|
*/
|
private String propertyName;
|
|
/**
|
* 属性值编号
|
* 关联 {@link ProductPropertyValueDO#getId()}
|
*/
|
private Long valueId;
|
/**
|
* 属性值名字
|
* 冗余 {@link ProductPropertyValueDO#getName()}
|
*
|
* 注意:每次属性值名字发生变化时,需要更新该冗余
|
*/
|
private String valueName;
|
|
}
|
|
}
|