浏览代码

mall:调整部分 Spu、Sku、Property、Group、Shop 的表设计

YunaiV 2 年之前
父节点
当前提交
9577f9b17d
共有 19 个文件被更改,包括 401 次插入91 次删除
  1. 37 0
      yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/delivery/DeliveryModeEnum.java
  2. 38 0
      yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/group/ProductGroupStyleEnum.java
  3. 1 1
      yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/ProductSkuController.java
  4. 1 1
      yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/sku/ProductSkuConvert.java
  5. 7 0
      yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/category/ProductCategoryDO.java
  6. 30 0
      yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/delivery/DeliveryTemplateDO.java
  7. 50 0
      yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/group/ProductGroupBindDO.java
  8. 40 2
      yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/group/ProductGroupDO.java
  9. 11 2
      yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/ProductPropertyDO.java
  10. 6 3
      yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/ProductPropertyValueDO.java
  11. 26 0
      yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/shop/ShopDO.java
  12. 112 0
      yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/sku/ProductSkuDO.java
  13. 0 64
      yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/spu/ProductSkuDO.java
  14. 37 13
      yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/spu/ProductSpuDO.java
  15. 1 1
      yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/sku/ProductSkuMapper.java
  16. 1 1
      yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuService.java
  17. 1 1
      yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuServiceImpl.java
  18. 1 1
      yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuServiceImpl.java
  19. 1 1
      yudao-module-mall/yudao-module-product-biz/src/test/java/cn/iocoder/yudao/module/product/service/sku/SkuServiceImplTest.java

+ 37 - 0
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/delivery/DeliveryModeEnum.java

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

+ 38 - 0
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/group/ProductGroupStyleEnum.java

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

+ 1 - 1
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/ProductSkuController.java

@@ -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.module.product.controller.admin.sku.vo.*;
 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 io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;

+ 1 - 1
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/sku/ProductSkuConvert.java

@@ -10,7 +10,7 @@ import org.mapstruct.Mapping;
 import org.mapstruct.Named;
 import org.mapstruct.factory.Mappers;
 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

+ 7 - 0
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/category/ProductCategoryDO.java

@@ -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.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.TableName;
 import lombok.*;
@@ -38,6 +39,12 @@ public class ProductCategoryDO extends BaseDO {
      * 父分类编号
      */
     private Long parentId;
+    /**
+     * 店铺编号
+     *
+     * 关联 {@link ShopDO#getId()}
+     */
+    private Long shopId;
     /**
      * 分类名称
      */

+ 30 - 0
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/delivery/DeliveryTemplateDO.java

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

+ 50 - 0
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/group/ProductGroupBindDO.java

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

+ 40 - 2
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/group/ProductGroupDO.java

@@ -1,6 +1,9 @@
 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.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.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -26,7 +29,42 @@ public class ProductGroupDO extends BaseDO {
      */
     @TableId
     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;
 
 }

+ 11 - 2
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/ProductPropertyDO.java

@@ -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.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.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -27,15 +28,23 @@ public class ProductPropertyDO extends BaseDO {
      */
     @TableId
     private Long id;
+    /**
+     * 店铺编号
+     *
+     * 关联 {@link ShopDO#getId()}
+     */
+    private Long shopId;
     /**
      * 规格名称
      */
     private String name;
     /**
-     * 状态: 0 开启 ,1 禁用
+     * 状态
      *
-     * {@link CommonStatusEnum}
+     * 枚举 {@link CommonStatusEnum}
      */
     private Integer status;
 
+    // TODO 芋艿:rule;规格属性 (发布商品时,和 SKU 关联);规格参数(搜索商品时,与 Category 关联搜索)
+
 }

+ 6 - 3
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/ProductPropertyValueDO.java

@@ -1,5 +1,6 @@
 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 com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -28,9 +29,9 @@ public class ProductPropertyValueDO extends BaseDO {
     @TableId
     private Long id;
     /**
-     * 规格键 id
+     * 规格键编号
      *
-     * TODO @franky:加个 关联 {@link ProductPropertyDO#getId()} ,这样就能更好的知道
+     * 关联 {@link ProductPropertyDO#getId()}
      */
     private Long propertyId;
     /**
@@ -38,7 +39,9 @@ public class ProductPropertyValueDO extends BaseDO {
      */
     private String name;
     /**
-     * 状态: 1 开启 ,2 禁用
+     * 状态
+     *
+     * 枚举 {@link CommonStatusEnum}
      */
     private Integer status;
 

+ 26 - 0
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/shop/ShopDO.java

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

+ 112 - 0
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/sku/ProductSkuDO.java

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

+ 0 - 64
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/spu/ProductSkuDO.java

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

+ 37 - 13
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/spu/ProductSpuDO.java

@@ -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.module.product.dal.dataobject.brand.ProductBrandDO;
 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.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -34,6 +37,16 @@ public class ProductSpuDO extends BaseDO {
      */
     @TableId
     private Long id;
+
+    /**
+     * 店铺编号
+     *
+     * 关联 {@link ShopDO#getId()}
+     */
+    private Long shopId;
+
+    // ========== 基本信息 =========
+
     /**
      * 商品名称
      */
@@ -58,13 +71,6 @@ public class ProductSpuDO extends BaseDO {
      * 关联 {@link ProductBrandDO#getId()}
      */
     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}
      */
     private Integer status;
+
+    // ========== SKU 相关字段 =========
+
     /**
      * 价格,单位使用:分
      *
@@ -87,14 +96,29 @@ public class ProductSpuDO extends BaseDO {
      */
     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;
 
 }

+ 1 - 1
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/sku/ProductSkuMapper.java

@@ -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.module.product.controller.admin.sku.vo.ProductSkuExportReqVO;
 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 java.util.List;

+ 1 - 1
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuService.java

@@ -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.ProductSkuPageReqVO;
 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 java.util.Collection;

+ 1 - 1
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuServiceImpl.java

@@ -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.sku.vo.*;
 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.enums.ErrorCodeConstants;
 import cn.iocoder.yudao.module.product.service.property.ProductPropertyService;

+ 1 - 1
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuServiceImpl.java

@@ -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.convert.sku.ProductSkuConvert;
 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.mysql.spu.ProductSpuMapper;
 import cn.iocoder.yudao.module.product.service.category.ProductCategoryService;

+ 1 - 1
yudao-module-mall/yudao-module-product-biz/src/test/java/cn/iocoder/yudao/module/product/service/sku/SkuServiceImplTest.java

@@ -8,7 +8,7 @@ import javax.annotation.Resource;
 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.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.framework.common.pojo.PageResult;