Răsfoiți Sursa

mall:优化订单表的设计

YunaiV 2 ani în urmă
părinte
comite
cfde3dcacb
11 a modificat fișierele cu 216 adăugiri și 89 ștergeri
  1. 38 0
      yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/TerminalEnum.java
  2. 5 4
      yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/delivery/DeliveryTypeEnum.java
  3. 3 0
      yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/sku/ProductSkuDO.java
  4. 29 0
      yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderItemRefundStatusEnum.java
  5. 6 7
      yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderRefundStatusEnum.java
  6. 5 6
      yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderStatusEnum.java
  7. 29 0
      yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderTypeEnum.java
  8. 0 49
      yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/OrderPreferentialDO.java
  9. 49 20
      yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderDO.java
  10. 49 0
      yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderItemDO.java
  11. 3 3
      yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/refund/TradeRefundDO.java

+ 38 - 0
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/TerminalEnum.java

@@ -0,0 +1,38 @@
+package cn.iocoder.yudao.framework.common.enums;
+
+import cn.iocoder.yudao.framework.common.core.IntArrayValuable;
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+
+import java.util.Arrays;
+
+/**
+ * 终端的枚举
+ *
+ * @author 芋道源码
+ */
+@RequiredArgsConstructor
+@Getter
+public enum TerminalEnum implements IntArrayValuable {
+
+    MINI_PROGRAM(1, "小程序"),
+    H5(2, "H5"),
+    IOS(3, "iOS"),
+    ANDROID(3, "安卓"),;
+
+    public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(TerminalEnum::getTerminal).toArray();
+
+    /**
+     * 终端
+     */
+    private final Integer terminal;
+    /**
+     * 终端名
+     */
+    private final String name;
+
+    @Override
+    public int[] array() {
+        return ARRAYS;
+    }
+}

+ 5 - 4
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/delivery/DeliveryModeEnum.java → yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/delivery/DeliveryTypeEnum.java

@@ -13,12 +13,13 @@ import java.util.Arrays;
  */
 @Getter
 @AllArgsConstructor
-public enum DeliveryModeEnum implements IntArrayValuable {
+public enum DeliveryTypeEnum implements IntArrayValuable {
 
-    SHOP_DELIVERY(1, "商家配送"),
-    USER_PICK_UP(2, "用户自提");
+    // TODO 芋艿:英文单词,需要再想下;
+    EXPRESS(1, "快递发货"),
+    USER(2, "用户自提"),;
 
-    public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(DeliveryModeEnum::getMode).toArray();
+    public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(DeliveryTypeEnum::getMode).toArray();
 
     /**
      * 配送方式

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

@@ -88,6 +88,9 @@ public class ProductSkuDO extends BaseDO {
      */
     private Double volume;
 
+    /**
+     * 商品属性
+     */
     @Data
     public static class Property {
 

+ 29 - 0
yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderItemRefundStatusEnum.java

@@ -0,0 +1,29 @@
+package cn.iocoder.yudao.module.trade.enums.order;
+
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+
+/**
+ * 交易订单项 - 退款状态
+ *
+ * @author Sin
+ */
+@RequiredArgsConstructor
+@Getter
+public enum TradeOrderItemRefundStatusEnum {
+
+    NONE(0, "未申请退款"),
+    APPLY(1, "申请退款"),
+    WAIT(2, "等待退款"),
+    SUCCESS(3, "退款成功");
+
+    /**
+     * 状态值
+     */
+    private final Integer status;
+    /**
+     * 状态名
+     */
+    private final String name;
+
+}

+ 6 - 7
yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/refund/TradeRefundStatusEnum.java → yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderRefundStatusEnum.java

@@ -1,26 +1,25 @@
-package cn.iocoder.yudao.module.trade.enums.refund;
+package cn.iocoder.yudao.module.trade.enums.order;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 
 /**
- * 交易退款 - 状态
+ * 交易订单 - 退款状态
  *
  * @author Sin
  */
 @RequiredArgsConstructor
 @Getter
-public enum TradeRefundStatusEnum {
+public enum TradeOrderRefundStatusEnum {
 
     NONE(0, "未退款"),
-    AUDIT(10, "审核中"),
-    APPROVE(30, "已通过"),
-    REJECT(40, "不通过"),;
+    PART(1, "部分退款"),
+    ALL(2, "全部退款");
 
     /**
      * 状态值
      */
-    private final Integer value;
+    private final Integer status;
     /**
      * 状态名
      */

+ 5 - 6
yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderStatusEnum.java

@@ -12,12 +12,11 @@ import lombok.RequiredArgsConstructor;
 @Getter
 public enum TradeOrderStatusEnum {
 
-    WAITING_PAYMENT(10, "待付款"),
-    WAIT_SHIPMENT(20, "待发货"),
-    ALREADY_SHIPMENT(30, "待收货"),
-    WAITING_COMMENT(40, "待评价"),
-    COMPLETED(50, "成功"),
-    CLOSED(60, "失败");
+    WAITING_PAYMENT(0, "待付款"),
+    WAIT_SHIPMENT(1, "待发货"),
+    ALREADY_SHIPMENT(2, "待收货"),
+    COMPLETED(3, "成功"),
+    CLOSED(4, "失败");
 
     /**
      * 状态值

+ 29 - 0
yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderTypeEnum.java

@@ -0,0 +1,29 @@
+package cn.iocoder.yudao.module.trade.enums.order;
+
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+
+/**
+ * 交易订单 - 类型
+ *
+ * @author Sin
+ */
+@RequiredArgsConstructor
+@Getter
+public enum TradeOrderTypeEnum {
+
+    NORMAL(0, "普通订单"),
+    SECKILL(1, "秒杀订单"),
+    TEAM(2, "拼团订单"),
+    BARGAIN(3, "砍价订单");
+
+    /**
+     * 类型
+     */
+    private final Integer type;
+    /**
+     * 类型名
+     */
+    private final String name;
+
+}

+ 0 - 49
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/OrderPreferentialDO.java

@@ -1,49 +0,0 @@
-package cn.iocoder.yudao.module.trade.dal.dataobject.order;
-
-/**
- * 订单优惠明细
- *
- * 可参考 https://jos.jd.com/apilist?apiGroupId=55&apiId=16757&apiName=jingdong.pop.order.coupondetail
- */
-// TODO 芋艿 后续在完善
-@Deprecated
-public class OrderPreferentialDO {
-
-    /**
-     * 编号
-     */
-    private Integer id;
-    /**
-     * 类型
-     *
-     * 1 - 促销活动
-     * 2 - 优惠劵
-     */
-    private Integer type;
-    // TODO 芋艿 优惠劵编号 or 促销活动编号
-    /**
-     * 订单编号
-     */
-    private Integer orderId;
-    /**
-     * 商品 SPU 编号
-     */
-    private Integer spuId;
-    /**
-     * 商品 SKU 编号
-     */
-    private Integer skuId;
-    /**
-     * 商品数量
-     */
-    private Integer quantity;
-    /**
-     * 传入时的价格
-     */
-    private Integer originTotal;
-    /**
-     * 总优惠价格
-     */
-    private Integer discountTotal;
-
-}

+ 49 - 20
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderDO.java

@@ -1,10 +1,12 @@
 package cn.iocoder.yudao.module.trade.dal.dataobject.order;
 
+import cn.iocoder.yudao.framework.common.enums.TerminalEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
-import cn.iocoder.yudao.module.product.enums.delivery.DeliveryModeEnum;
+import cn.iocoder.yudao.module.product.enums.delivery.DeliveryTypeEnum;
 import cn.iocoder.yudao.module.trade.enums.order.TradeOrderCloseTypeEnum;
 import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum;
-import cn.iocoder.yudao.module.trade.enums.refund.TradeRefundStatusEnum;
+import cn.iocoder.yudao.module.trade.enums.order.TradeOrderTypeEnum;
+import cn.iocoder.yudao.module.trade.enums.order.TradeOrderRefundStatusEnum;
 import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
@@ -38,6 +40,18 @@ public class TradeOrderDO extends BaseDO {
      */
     private String sn;
     // TODO 芋艿:order_type 订单类型
+    /**
+     * 订单类型
+     *
+     * 枚举 {@link TradeOrderTypeEnum}
+     */
+    private Integer type;
+    /**
+     * 订单来源终端
+     *
+     * 枚举 {@link TerminalEnum}
+     */
+    private Integer terminal;
 //    /**
 //     * 店铺编号
 //     *
@@ -72,11 +86,13 @@ public class TradeOrderDO extends BaseDO {
      */
     private String remark;
     /**
-     * 订单结束时间
-     *
-     * 即交易订单状态变成 {@link TradeOrderStatusEnum#COMPLETED} 或 {@link TradeOrderStatusEnum#CLOSED} 的时间
+     * 确认收获时间
      */
-    private Date endTime;
+    private Date confirmTakeTime;
+    /**
+     * 订单取消时间
+     */
+    private Date cancelTime;
 
     // ========== 价格 + 支付基本信息 ==========
     /**
@@ -85,7 +101,7 @@ public class TradeOrderDO extends BaseDO {
      * true - 已经支付过
      * false - 没有支付过
      */
-    private Boolean payed;
+    private Boolean payed; // TODO payStatus 0 - 待付款;1 - 已付款;2 - 已退款
     /**
      * 付款时间
      */
@@ -118,14 +134,6 @@ public class TradeOrderDO extends BaseDO {
      * 初始时,金额为 0 。等到支付成功后,会进行更新。
      */
     private Integer payPrice;
-    /**
-     * 退款金额,单位:分
-     *
-     * 注意,退款并不会影响 {@link #payPrice} 实际支付金额
-     * 也就说,一个订单最终产生多少金额的收入 = payPrice - refundPrice
-     */
-    @Deprecated
-    private Integer refundPrice;
     /**
      * 支付订单编号
      *
@@ -141,9 +149,9 @@ public class TradeOrderDO extends BaseDO {
     /**
      * 配送方式
      *
-     * 枚举 {@link DeliveryModeEnum}
+     * 枚举 {@link DeliveryTypeEnum}
      */
-    private Integer deliveryMode;
+    private Integer deliveryType;
     /**
      * 配置模板的编号
      *
@@ -187,15 +195,22 @@ public class TradeOrderDO extends BaseDO {
     /**
      * 退款状态
      *
-     * 枚举 {@link TradeRefundStatusEnum}
+     * 枚举 {@link TradeOrderRefundStatusEnum}
      */
     private Integer refundStatus;
+    /**
+     * 退款金额,单位:分
+     *
+     * 注意,退款并不会影响 {@link #payPrice} 实际支付金额
+     * 也就说,一个订单最终产生多少金额的收入 = payPrice - refundPrice
+     */
+    private Integer refundPrice;
 
     // ========== 营销基本信息 ==========
     /**
      * 优惠劵编号
      */
-    private Integer couponCardId;
+    private Integer couponId;
 
     // TODO 芋艿,这块还要结合营销和价格计算,在去优化下。
 
@@ -229,6 +244,20 @@ public class TradeOrderDO extends BaseDO {
     // TODO ========== 待定字段:cf =========
     // TODO before_pay_price:改价前支付金额
     // TODO is_alter_price:是否改价
-    // TODO type:订单类型:0-普通订单,1-视频号订单
     // TODO out_trade_no:商户系统内部的订单号 String
+
+    // TODO ========== 待定字段:lf =========
+    // TODO integral_amount:积分抵扣金额
+    // TODO shipping_status:发货状态
+    // TODO shipping_time:最后新发货时间
+
+    // TODO ========== 待定字段:lf =========
+    // TODO settle_id:未结算
+    // TODO settle_amount:结算金额
+    // TODO use_integral:使用的积分
+    // TODO team_found_id: 拼团id
+    // TODO team_id: 拼团活动id
+    // TODO delivery_id: 发货单ID
+    // TODO attach_values: 附带的值(赠送时机,赠送积分成长值什么的)Json格式
+
 }

+ 49 - 0
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderItemDO.java

@@ -1,11 +1,16 @@
 package cn.iocoder.yudao.module.trade.dal.dataobject.order;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import cn.iocoder.yudao.module.trade.enums.order.TradeOrderItemRefundStatusEnum;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.util.List;
+
 /**
  * 交易订单项 DO
  *
@@ -54,6 +59,11 @@ public class TradeOrderItemDO extends BaseDO {
      * 关联 ProductSkuDO 的 id 编号
      */
     private Integer skuId;
+    /**
+     * 规格值数组,JSON 格式
+     */
+    @TableField(typeHandler = JacksonTypeHandler.class)
+    private List<Property> properties;
     /**
      * 商品名称
      */
@@ -106,6 +116,14 @@ public class TradeOrderItemDO extends BaseDO {
      * 所以,需要存储一个该字段。
      */
     private Integer presentTotal; // product_total_amount
+
+    // ========== 退款基本信息 ==========
+    /**
+     * 退款状态
+     *
+     * 枚举 {@link TradeOrderItemRefundStatusEnum}
+     */
+    private Integer refundStatus;
     // 如上字段,举个例子:
     // 假设购买三个,即 stock = 3 。
     // originPrice = 15
@@ -120,6 +138,27 @@ public class TradeOrderItemDO extends BaseDO {
      */
     private Integer refundTotal;
 
+    /**
+     * 商品属性
+     */
+    @Data
+    public static class Property {
+
+        /**
+         * 属性编号
+         *
+         * 关联 ProductPropertyDO 的 id 编号
+         */
+        private Long propertyId;
+        /**
+         * 属性值编号
+         *
+         * 关联 ProductPropertyValueDO 的 id 编号
+         */
+        private Long valueId;
+
+    }
+
     // TODO 芋艿:basket_date 加入购物车时间;
     // TODO 芋艿:distribution_card_no 推广员使用的推销卡号
 
@@ -129,4 +168,14 @@ public class TradeOrderItemDO extends BaseDO {
     // TODO is_sub:是否单独分佣,0-否,1-是
     // TODO vip_price:会员价
     // TODO product_type:商品类型:0-普通,1-秒杀,2-砍价,3-拼团,4-视频号
+
+    // TODO 待确定:lf
+    // TODO integral_price:积分抵扣的金额
+    // TODO member_price:会员价格
+    // TODO is_member:是否为会员折扣;0-不是;1-是
+    // TODO member_discount:会员折扣(百分比)
+
+    // TODO goods_info 商品信息
+
+    // TODO integral_price:积分抵扣的金额
 }

+ 3 - 3
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/refund/TradeRefundDO.java

@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.trade.dal.dataobject.refund;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
-import cn.iocoder.yudao.module.trade.enums.refund.TradeRefundStatusEnum;
+import cn.iocoder.yudao.module.trade.enums.order.TradeOrderRefundStatusEnum;
 import cn.iocoder.yudao.module.trade.enums.refund.TradeRefundTypeEnum;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -18,7 +18,7 @@ import java.util.List;
 /**
  * 交易退款,用于处理 {@link TradeOrderDO} 交易订单的退货换流程
  */
-// TODO 芋艿:需要调整下每个字段的命名
+// TODO 芋艿:需要调整下每个字段的命名;未完全实现;
 @TableName(value = "trade_refund")
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -39,7 +39,7 @@ public class TradeRefundDO extends BaseDO {
     /**
      * 退款状态
      *
-     * 枚举 {@link TradeRefundStatusEnum}
+     * 枚举 {@link TradeOrderRefundStatusEnum}
      */
     private Integer status;
 //    /**