mall:调整部分 Spu、Sku、Property、Group、Shop 的表设计
parent
2340f09c68
commit
9577f9b17d
|
@ -0,0 +1,37 @@
|
||||||
|
package cn.iocoder.yudao.module.product.enums.delivery;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.core.IntArrayValuable;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配送方式枚举
|
||||||
|
*
|
||||||
|
* @author 芋道源码
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@AllArgsConstructor
|
||||||
|
public enum DeliveryModeEnum implements IntArrayValuable {
|
||||||
|
|
||||||
|
SHOP_DELIVERY(1, "商家配送"),
|
||||||
|
USER_PICK_UP(2, "用户自提");
|
||||||
|
|
||||||
|
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(DeliveryModeEnum::getMode).toArray();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配送方式
|
||||||
|
*/
|
||||||
|
private final Integer mode;
|
||||||
|
/**
|
||||||
|
* 状态名
|
||||||
|
*/
|
||||||
|
private final String name;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] array() {
|
||||||
|
return ARRAYS;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
package cn.iocoder.yudao.module.product.enums.group;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.core.IntArrayValuable;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品分组的样式枚举
|
||||||
|
*
|
||||||
|
* @author 芋道源码
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@AllArgsConstructor
|
||||||
|
public enum ProductGroupStyleEnum implements IntArrayValuable {
|
||||||
|
|
||||||
|
ONE(1, "每列一个"),
|
||||||
|
TWO(2, "每列两个"),
|
||||||
|
THREE(2, "每列三个"),;
|
||||||
|
|
||||||
|
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(ProductGroupStyleEnum::getStyle).toArray();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 列表样式
|
||||||
|
*/
|
||||||
|
private final Integer style;
|
||||||
|
/**
|
||||||
|
* 状态名
|
||||||
|
*/
|
||||||
|
private final String name;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] array() {
|
||||||
|
return ARRAYS;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -6,7 +6,7 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||||
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.sku.vo.*;
|
import cn.iocoder.yudao.module.product.controller.admin.sku.vo.*;
|
||||||
import cn.iocoder.yudao.module.product.convert.sku.ProductSkuConvert;
|
import cn.iocoder.yudao.module.product.convert.sku.ProductSkuConvert;
|
||||||
import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSkuDO;
|
import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
|
||||||
import cn.iocoder.yudao.module.product.service.sku.ProductSkuService;
|
import cn.iocoder.yudao.module.product.service.sku.ProductSkuService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
|
|
@ -10,7 +10,7 @@ import org.mapstruct.Mapping;
|
||||||
import org.mapstruct.Named;
|
import org.mapstruct.Named;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.sku.vo.*;
|
import cn.iocoder.yudao.module.product.controller.admin.sku.vo.*;
|
||||||
import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSkuDO;
|
import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 商品sku Convert
|
* 商品sku Convert
|
||||||
|
|
|
@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.product.dal.dataobject.category;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
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.shop.ShopDO;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
@ -38,6 +39,12 @@ public class ProductCategoryDO extends BaseDO {
|
||||||
* 父分类编号
|
* 父分类编号
|
||||||
*/
|
*/
|
||||||
private Long parentId;
|
private Long parentId;
|
||||||
|
/**
|
||||||
|
* 店铺编号
|
||||||
|
*
|
||||||
|
* 关联 {@link ShopDO#getId()}
|
||||||
|
*/
|
||||||
|
private Long shopId;
|
||||||
/**
|
/**
|
||||||
* 分类名称
|
* 分类名称
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
package cn.iocoder.yudao.module.product.dal.dataobject.delivery;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配送模板 SPU DO
|
||||||
|
*
|
||||||
|
* @author 芋道源码
|
||||||
|
*/
|
||||||
|
@TableName("delivery_template")
|
||||||
|
@KeySequence("delivery_template_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class DeliveryTemplateDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编号,自增
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,50 @@
|
||||||
|
package cn.iocoder.yudao.module.product.dal.dataobject.group;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import cn.iocoder.yudao.module.product.dal.dataobject.shop.ShopDO;
|
||||||
|
import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO;
|
||||||
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品分组的绑定 DO
|
||||||
|
*
|
||||||
|
* @author 芋道源码
|
||||||
|
*/
|
||||||
|
@TableName("product_group_bind")
|
||||||
|
@KeySequence("product_group_bind_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ProductGroupBindDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编号,自增
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 店铺编号
|
||||||
|
*
|
||||||
|
* 关联 {@link ShopDO#getId()}
|
||||||
|
*/
|
||||||
|
private Long shopId;
|
||||||
|
/**
|
||||||
|
* 商品分组编号
|
||||||
|
*
|
||||||
|
* 关联 {@link ProductGroupDO#getId()}
|
||||||
|
*/
|
||||||
|
private Long groupId;
|
||||||
|
/**
|
||||||
|
* 商品 SPU 编号
|
||||||
|
*
|
||||||
|
* 关联 {@link ProductSpuDO#getId()}
|
||||||
|
*/
|
||||||
|
private Long spuId;
|
||||||
|
|
||||||
|
}
|
|
@ -1,6 +1,9 @@
|
||||||
package cn.iocoder.yudao.module.product.dal.dataobject.group;
|
package cn.iocoder.yudao.module.product.dal.dataobject.group;
|
||||||
|
|
||||||
|
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.shop.ShopDO;
|
||||||
|
import cn.iocoder.yudao.module.product.enums.group.ProductGroupStyleEnum;
|
||||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
@ -26,7 +29,42 @@ public class ProductGroupDO extends BaseDO {
|
||||||
*/
|
*/
|
||||||
@TableId
|
@TableId
|
||||||
private Long id;
|
private Long id;
|
||||||
|
/**
|
||||||
// TODO 芋艿:字段补全
|
* 店铺编号
|
||||||
|
*
|
||||||
|
* 关联 {@link ShopDO#getId()}
|
||||||
|
*/
|
||||||
|
private Long shopId;
|
||||||
|
/**
|
||||||
|
* 分组名称
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
/**
|
||||||
|
* 状态
|
||||||
|
*
|
||||||
|
* 枚举 {@link CommonStatusEnum}
|
||||||
|
*/
|
||||||
|
private Integer status;
|
||||||
|
/**
|
||||||
|
* 商品数量
|
||||||
|
*/
|
||||||
|
private Integer count;
|
||||||
|
/**
|
||||||
|
* 排序
|
||||||
|
*/
|
||||||
|
private Integer sort;
|
||||||
|
/**
|
||||||
|
* 风格,用于 APP 首页展示商品的样式
|
||||||
|
*
|
||||||
|
* 枚举 {@link ProductGroupStyleEnum}
|
||||||
|
*/
|
||||||
|
private Integer style;
|
||||||
|
/**
|
||||||
|
* 是否默认
|
||||||
|
*
|
||||||
|
* true - 系统默认,不允许删除
|
||||||
|
* false - 自定义,允许删除
|
||||||
|
*/
|
||||||
|
private Boolean defaulted;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.product.dal.dataobject.property;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
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.shop.ShopDO;
|
||||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
@ -27,15 +28,23 @@ public class ProductPropertyDO extends BaseDO {
|
||||||
*/
|
*/
|
||||||
@TableId
|
@TableId
|
||||||
private Long id;
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 店铺编号
|
||||||
|
*
|
||||||
|
* 关联 {@link ShopDO#getId()}
|
||||||
|
*/
|
||||||
|
private Long shopId;
|
||||||
/**
|
/**
|
||||||
* 规格名称
|
* 规格名称
|
||||||
*/
|
*/
|
||||||
private String name;
|
private String name;
|
||||||
/**
|
/**
|
||||||
* 状态: 0 开启 ,1 禁用
|
* 状态
|
||||||
*
|
*
|
||||||
* {@link CommonStatusEnum}
|
* 枚举 {@link CommonStatusEnum}
|
||||||
*/
|
*/
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
|
// TODO 芋艿:rule;规格属性 (发布商品时,和 SKU 关联);规格参数(搜索商品时,与 Category 关联搜索)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package cn.iocoder.yudao.module.product.dal.dataobject.property;
|
package cn.iocoder.yudao.module.product.dal.dataobject.property;
|
||||||
|
|
||||||
|
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 com.baomidou.mybatisplus.annotation.KeySequence;
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
@ -28,9 +29,9 @@ public class ProductPropertyValueDO extends BaseDO {
|
||||||
@TableId
|
@TableId
|
||||||
private Long id;
|
private Long id;
|
||||||
/**
|
/**
|
||||||
* 规格键 id
|
* 规格键编号
|
||||||
*
|
*
|
||||||
* TODO @franky:加个 关联 {@link ProductPropertyDO#getId()} ,这样就能更好的知道
|
* 关联 {@link ProductPropertyDO#getId()}
|
||||||
*/
|
*/
|
||||||
private Long propertyId;
|
private Long propertyId;
|
||||||
/**
|
/**
|
||||||
|
@ -38,7 +39,9 @@ public class ProductPropertyValueDO extends BaseDO {
|
||||||
*/
|
*/
|
||||||
private String name;
|
private String name;
|
||||||
/**
|
/**
|
||||||
* 状态: 1 开启 ,2 禁用
|
* 状态
|
||||||
|
*
|
||||||
|
* 枚举 {@link CommonStatusEnum}
|
||||||
*/
|
*/
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
package cn.iocoder.yudao.module.product.dal.dataobject.shop;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
// TODO 芋艿:待设计
|
||||||
|
/**
|
||||||
|
* 店铺 DO
|
||||||
|
*
|
||||||
|
* @author 芋道源码
|
||||||
|
*/
|
||||||
|
@TableName("shop")
|
||||||
|
@KeySequence("shop_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ShopDO extends BaseDO {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,112 @@
|
||||||
|
package cn.iocoder.yudao.module.product.dal.dataobject.sku;
|
||||||
|
|
||||||
|
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.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.JacksonTypeHandler;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品 SKU DO
|
||||||
|
*
|
||||||
|
* @author 芋道源码
|
||||||
|
*/
|
||||||
|
@TableName("product_sku")
|
||||||
|
@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;
|
||||||
|
/**
|
||||||
|
* 商品 SKU 名字
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
/**
|
||||||
|
* SPU 编号
|
||||||
|
*
|
||||||
|
* 关联 {@link ProductSpuDO#getId()}
|
||||||
|
*/
|
||||||
|
private Long spuId;
|
||||||
|
/**
|
||||||
|
* 规格值数组,JSON 格式
|
||||||
|
*/
|
||||||
|
@TableField(typeHandler = JacksonTypeHandler.class)
|
||||||
|
private List<Property> properties;
|
||||||
|
/**
|
||||||
|
* 销售价格,单位:分
|
||||||
|
*/
|
||||||
|
private Integer price;
|
||||||
|
/**
|
||||||
|
* 原价,单位:分
|
||||||
|
*/
|
||||||
|
private Integer originalPrice;
|
||||||
|
/**
|
||||||
|
* SKU 的条形码
|
||||||
|
*/
|
||||||
|
private String barCode;
|
||||||
|
/**
|
||||||
|
* 图片地址
|
||||||
|
*/
|
||||||
|
private String picUrl;
|
||||||
|
/**
|
||||||
|
* SKU 状态
|
||||||
|
*
|
||||||
|
* 枚举 {@link CommonStatusEnum}
|
||||||
|
*/
|
||||||
|
private Integer status;
|
||||||
|
/**
|
||||||
|
* 购买中的库存
|
||||||
|
*
|
||||||
|
* 商品 SKU 被下单时,未付款的商品 SKU 数量
|
||||||
|
*/
|
||||||
|
private Integer stocks;
|
||||||
|
/**
|
||||||
|
* 实际库存
|
||||||
|
*/
|
||||||
|
private Integer actualStocks;
|
||||||
|
/**
|
||||||
|
* 商品重量,单位:kg 千克
|
||||||
|
*/
|
||||||
|
private Double weight;
|
||||||
|
/**
|
||||||
|
* 商品体积,单位:m^3 平米
|
||||||
|
*/
|
||||||
|
private Double volume;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class Property {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 属性编号
|
||||||
|
*
|
||||||
|
* 关联 {@link ProductPropertyDO#getId()}
|
||||||
|
*/
|
||||||
|
private Long propertyId;
|
||||||
|
/**
|
||||||
|
* 属性值编号
|
||||||
|
*
|
||||||
|
* 关联 {@link ProductPropertyValueDO#getId()}
|
||||||
|
*/
|
||||||
|
private Long valueId;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -1,64 +0,0 @@
|
||||||
package cn.iocoder.yudao.module.product.dal.dataobject.spu;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
|
||||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import lombok.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 商品sku DO
|
|
||||||
*
|
|
||||||
* @author 芋道源码
|
|
||||||
*/
|
|
||||||
@TableName("product_sku")
|
|
||||||
@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 {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 主键
|
|
||||||
*/
|
|
||||||
@TableId
|
|
||||||
private Long id;
|
|
||||||
/**
|
|
||||||
* spu编号
|
|
||||||
*/
|
|
||||||
private Long spuId;
|
|
||||||
/**
|
|
||||||
* 规格值数组-json格式, [{propertId: , valueId: }, {propertId: , valueId: }]
|
|
||||||
*/
|
|
||||||
// TODO franky:可以定义一个内部的 Property 类,然后 List<Property>
|
|
||||||
private String properties;
|
|
||||||
/**
|
|
||||||
* 销售价格,单位:分
|
|
||||||
*/
|
|
||||||
private Integer price;
|
|
||||||
/**
|
|
||||||
* 原价,单位:分
|
|
||||||
*/
|
|
||||||
private Integer originalPrice;
|
|
||||||
/**
|
|
||||||
* 成本价,单位: 分
|
|
||||||
*/
|
|
||||||
private Integer costPrice;
|
|
||||||
/**
|
|
||||||
* 条形码
|
|
||||||
*/
|
|
||||||
private String barCode;
|
|
||||||
/**
|
|
||||||
* 图片地址
|
|
||||||
*/
|
|
||||||
private String picUrl;
|
|
||||||
/**
|
|
||||||
* 状态: 0-正常 1-禁用
|
|
||||||
*/
|
|
||||||
private Integer status;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -4,7 +4,10 @@ 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.group.ProductGroupDO;
|
import cn.iocoder.yudao.module.product.dal.dataobject.delivery.DeliveryTemplateDO;
|
||||||
|
import cn.iocoder.yudao.module.product.dal.dataobject.shop.ShopDO;
|
||||||
|
import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
|
||||||
|
import cn.iocoder.yudao.module.product.enums.delivery.DeliveryModeEnum;
|
||||||
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;
|
||||||
|
@ -34,6 +37,16 @@ public class ProductSpuDO extends BaseDO {
|
||||||
*/
|
*/
|
||||||
@TableId
|
@TableId
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 店铺编号
|
||||||
|
*
|
||||||
|
* 关联 {@link ShopDO#getId()}
|
||||||
|
*/
|
||||||
|
private Long shopId;
|
||||||
|
|
||||||
|
// ========== 基本信息 =========
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 商品名称
|
* 商品名称
|
||||||
*/
|
*/
|
||||||
|
@ -58,13 +71,6 @@ public class ProductSpuDO extends BaseDO {
|
||||||
* 关联 {@link ProductBrandDO#getId()}
|
* 关联 {@link ProductBrandDO#getId()}
|
||||||
*/
|
*/
|
||||||
private Long brandId;
|
private Long brandId;
|
||||||
/**
|
|
||||||
* 商品分组编号数组
|
|
||||||
*
|
|
||||||
* 关联 {@link ProductGroupDO#getId()}
|
|
||||||
*/
|
|
||||||
@TableField(typeHandler = JacksonTypeHandler.class)
|
|
||||||
private List<Long> groupIds;
|
|
||||||
/**
|
/**
|
||||||
* 商品图片地址数组
|
* 商品图片地址数组
|
||||||
*/
|
*/
|
||||||
|
@ -80,6 +86,9 @@ public class ProductSpuDO extends BaseDO {
|
||||||
* 枚举 {@link CommonStatusEnum}
|
* 枚举 {@link CommonStatusEnum}
|
||||||
*/
|
*/
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
|
// ========== SKU 相关字段 =========
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 价格,单位使用:分
|
* 价格,单位使用:分
|
||||||
*
|
*
|
||||||
|
@ -87,14 +96,29 @@ public class ProductSpuDO extends BaseDO {
|
||||||
*/
|
*/
|
||||||
private Integer price;
|
private Integer price;
|
||||||
/**
|
/**
|
||||||
* 库存数量
|
* 总库存
|
||||||
*
|
*
|
||||||
* 基于其对应的 {@link ProductSkuDO#getPrice()} 求和
|
* 基于其对应的 {@link ProductSkuDO#getActualStocks()} 求和
|
||||||
*/
|
*/
|
||||||
private Integer quantity;
|
private Integer totalStocks;
|
||||||
|
/**
|
||||||
|
* 已销售数量
|
||||||
|
*/
|
||||||
|
private Integer soldNum;
|
||||||
|
|
||||||
|
// ========== 物流相关字段 =========
|
||||||
|
|
||||||
// TODO 芋艿:配送方式:商家配送、商家自提
|
/**
|
||||||
// TODO 芋艿:运费设置;如果选择了 “商家配送” 配送方式,则选择「运费设置」编号
|
* 配送方式
|
||||||
|
*
|
||||||
|
* 枚举 {@link DeliveryModeEnum}
|
||||||
|
*/
|
||||||
|
private Integer deliveryMode;
|
||||||
|
/**
|
||||||
|
* 配置模板编号
|
||||||
|
*
|
||||||
|
* 关联 {@link DeliveryTemplateDO#getId()}
|
||||||
|
*/
|
||||||
|
private Long deliveryTemplateId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuExportReqVO;
|
import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuExportReqVO;
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuPageReqVO;
|
import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuPageReqVO;
|
||||||
import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSkuDO;
|
import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
@ -5,7 +5,7 @@ import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuCreateR
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuExportReqVO;
|
import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuExportReqVO;
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuPageReqVO;
|
import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuPageReqVO;
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuUpdateReqVO;
|
import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuUpdateReqVO;
|
||||||
import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSkuDO;
|
import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
|
@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.product.controller.admin.property.vo.ProductPrope
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo.ProductPropertyValueRespVO;
|
import cn.iocoder.yudao.module.product.controller.admin.propertyvalue.vo.ProductPropertyValueRespVO;
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.sku.vo.*;
|
import cn.iocoder.yudao.module.product.controller.admin.sku.vo.*;
|
||||||
import cn.iocoder.yudao.module.product.convert.sku.ProductSkuConvert;
|
import cn.iocoder.yudao.module.product.convert.sku.ProductSkuConvert;
|
||||||
import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSkuDO;
|
import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
|
||||||
import cn.iocoder.yudao.module.product.dal.mysql.sku.ProductSkuMapper;
|
import cn.iocoder.yudao.module.product.dal.mysql.sku.ProductSkuMapper;
|
||||||
import cn.iocoder.yudao.module.product.enums.ErrorCodeConstants;
|
import cn.iocoder.yudao.module.product.enums.ErrorCodeConstants;
|
||||||
import cn.iocoder.yudao.module.product.service.property.ProductPropertyService;
|
import cn.iocoder.yudao.module.product.service.property.ProductPropertyService;
|
||||||
|
|
|
@ -12,7 +12,7 @@ import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppSpuPageReqVO;
|
||||||
import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppSpuPageRespVO;
|
import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppSpuPageRespVO;
|
||||||
import cn.iocoder.yudao.module.product.convert.sku.ProductSkuConvert;
|
import cn.iocoder.yudao.module.product.convert.sku.ProductSkuConvert;
|
||||||
import cn.iocoder.yudao.module.product.convert.spu.ProductSpuConvert;
|
import cn.iocoder.yudao.module.product.convert.spu.ProductSpuConvert;
|
||||||
import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSkuDO;
|
import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
|
||||||
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.dal.mysql.spu.ProductSpuMapper;
|
import cn.iocoder.yudao.module.product.dal.mysql.spu.ProductSpuMapper;
|
||||||
import cn.iocoder.yudao.module.product.service.category.ProductCategoryService;
|
import cn.iocoder.yudao.module.product.service.category.ProductCategoryService;
|
||||||
|
|
|
@ -8,7 +8,7 @@ import javax.annotation.Resource;
|
||||||
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.product.controller.admin.sku.vo.*;
|
import cn.iocoder.yudao.module.product.controller.admin.sku.vo.*;
|
||||||
import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSkuDO;
|
import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
|
||||||
import cn.iocoder.yudao.module.product.dal.mysql.sku.ProductSkuMapper;
|
import cn.iocoder.yudao.module.product.dal.mysql.sku.ProductSkuMapper;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue