Commit cfde3dcacbbf4163f505169ed7f77777ad920d7d

Authored by YunaiV
1 parent 33a01e78

mall:优化订单表的设计

Showing 11 changed files with 216 additions and 89 deletions
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/TerminalEnum.java 0 → 100644
  1 +package cn.iocoder.yudao.framework.common.enums;
  2 +
  3 +import cn.iocoder.yudao.framework.common.core.IntArrayValuable;
  4 +import lombok.Getter;
  5 +import lombok.RequiredArgsConstructor;
  6 +
  7 +import java.util.Arrays;
  8 +
  9 +/**
  10 + * 终端的枚举
  11 + *
  12 + * @author 芋道源码
  13 + */
  14 +@RequiredArgsConstructor
  15 +@Getter
  16 +public enum TerminalEnum implements IntArrayValuable {
  17 +
  18 + MINI_PROGRAM(1, "小程序"),
  19 + H5(2, "H5"),
  20 + IOS(3, "iOS"),
  21 + ANDROID(3, "安卓"),;
  22 +
  23 + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(TerminalEnum::getTerminal).toArray();
  24 +
  25 + /**
  26 + * 终端
  27 + */
  28 + private final Integer terminal;
  29 + /**
  30 + * 终端名
  31 + */
  32 + private final String name;
  33 +
  34 + @Override
  35 + public int[] array() {
  36 + return ARRAYS;
  37 + }
  38 +}
... ...
yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/delivery/DeliveryModeEnum.java renamed to 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;
13 13 */
14 14 @Getter
15 15 @AllArgsConstructor
16   -public enum DeliveryModeEnum implements IntArrayValuable {
  16 +public enum DeliveryTypeEnum implements IntArrayValuable {
17 17  
18   - SHOP_DELIVERY(1, "商家配送"),
19   - USER_PICK_UP(2, "用户自提");
  18 + // TODO 芋艿:英文单词,需要再想下;
  19 + EXPRESS(1, "快递发货"),
  20 + USER(2, "用户自提"),;
20 21  
21   - public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(DeliveryModeEnum::getMode).toArray();
  22 + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(DeliveryTypeEnum::getMode).toArray();
22 23  
23 24 /**
24 25 * 配送方式
... ...
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 {
88 88 */
89 89 private Double volume;
90 90  
  91 + /**
  92 + * 商品属性
  93 + */
91 94 @Data
92 95 public static class Property {
93 96  
... ...
yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderItemRefundStatusEnum.java 0 → 100644
  1 +package cn.iocoder.yudao.module.trade.enums.order;
  2 +
  3 +import lombok.Getter;
  4 +import lombok.RequiredArgsConstructor;
  5 +
  6 +/**
  7 + * 交易订单项 - 退款状态
  8 + *
  9 + * @author Sin
  10 + */
  11 +@RequiredArgsConstructor
  12 +@Getter
  13 +public enum TradeOrderItemRefundStatusEnum {
  14 +
  15 + NONE(0, "未申请退款"),
  16 + APPLY(1, "申请退款"),
  17 + WAIT(2, "等待退款"),
  18 + SUCCESS(3, "退款成功");
  19 +
  20 + /**
  21 + * 状态值
  22 + */
  23 + private final Integer status;
  24 + /**
  25 + * 状态名
  26 + */
  27 + private final String name;
  28 +
  29 +}
... ...
yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/refund/TradeRefundStatusEnum.java renamed to yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderRefundStatusEnum.java
1   -package cn.iocoder.yudao.module.trade.enums.refund;
  1 +package cn.iocoder.yudao.module.trade.enums.order;
2 2  
3 3 import lombok.Getter;
4 4 import lombok.RequiredArgsConstructor;
5 5  
6 6 /**
7   - * 交易退款 - 状态
  7 + * 交易订单 - 退款状态
8 8 *
9 9 * @author Sin
10 10 */
11 11 @RequiredArgsConstructor
12 12 @Getter
13   -public enum TradeRefundStatusEnum {
  13 +public enum TradeOrderRefundStatusEnum {
14 14  
15 15 NONE(0, "未退款"),
16   - AUDIT(10, "审核中"),
17   - APPROVE(30, "已通过"),
18   - REJECT(40, "不通过"),;
  16 + PART(1, "部分退款"),
  17 + ALL(2, "全部退款");
19 18  
20 19 /**
21 20 * 状态值
22 21 */
23   - private final Integer value;
  22 + private final Integer status;
24 23 /**
25 24 * 状态名
26 25 */
... ...
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;
12 12 @Getter
13 13 public enum TradeOrderStatusEnum {
14 14  
15   - WAITING_PAYMENT(10, "待付款"),
16   - WAIT_SHIPMENT(20, "待发货"),
17   - ALREADY_SHIPMENT(30, "待收货"),
18   - WAITING_COMMENT(40, "待评价"),
19   - COMPLETED(50, "成功"),
20   - CLOSED(60, "失败");
  15 + WAITING_PAYMENT(0, "待付款"),
  16 + WAIT_SHIPMENT(1, "待发货"),
  17 + ALREADY_SHIPMENT(2, "待收货"),
  18 + COMPLETED(3, "成功"),
  19 + CLOSED(4, "失败");
21 20  
22 21 /**
23 22 * 状态值
... ...
yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderTypeEnum.java 0 → 100644
  1 +package cn.iocoder.yudao.module.trade.enums.order;
  2 +
  3 +import lombok.Getter;
  4 +import lombok.RequiredArgsConstructor;
  5 +
  6 +/**
  7 + * 交易订单 - 类型
  8 + *
  9 + * @author Sin
  10 + */
  11 +@RequiredArgsConstructor
  12 +@Getter
  13 +public enum TradeOrderTypeEnum {
  14 +
  15 + NORMAL(0, "普通订单"),
  16 + SECKILL(1, "秒杀订单"),
  17 + TEAM(2, "拼团订单"),
  18 + BARGAIN(3, "砍价订单");
  19 +
  20 + /**
  21 + * 类型
  22 + */
  23 + private final Integer type;
  24 + /**
  25 + * 类型名
  26 + */
  27 + private final String name;
  28 +
  29 +}
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/OrderPreferentialDO.java deleted
1   -package cn.iocoder.yudao.module.trade.dal.dataobject.order;
2   -
3   -/**
4   - * 订单优惠明细
5   - *
6   - * 可参考 https://jos.jd.com/apilist?apiGroupId=55&apiId=16757&apiName=jingdong.pop.order.coupondetail
7   - */
8   -// TODO 芋艿 后续在完善
9   -@Deprecated
10   -public class OrderPreferentialDO {
11   -
12   - /**
13   - * 编号
14   - */
15   - private Integer id;
16   - /**
17   - * 类型
18   - *
19   - * 1 - 促销活动
20   - * 2 - 优惠劵
21   - */
22   - private Integer type;
23   - // TODO 芋艿 优惠劵编号 or 促销活动编号
24   - /**
25   - * 订单编号
26   - */
27   - private Integer orderId;
28   - /**
29   - * 商品 SPU 编号
30   - */
31   - private Integer spuId;
32   - /**
33   - * 商品 SKU 编号
34   - */
35   - private Integer skuId;
36   - /**
37   - * 商品数量
38   - */
39   - private Integer quantity;
40   - /**
41   - * 传入时的价格
42   - */
43   - private Integer originTotal;
44   - /**
45   - * 总优惠价格
46   - */
47   - private Integer discountTotal;
48   -
49   -}
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderDO.java
1 1 package cn.iocoder.yudao.module.trade.dal.dataobject.order;
2 2  
  3 +import cn.iocoder.yudao.framework.common.enums.TerminalEnum;
3 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4   -import cn.iocoder.yudao.module.product.enums.delivery.DeliveryModeEnum;
  5 +import cn.iocoder.yudao.module.product.enums.delivery.DeliveryTypeEnum;
5 6 import cn.iocoder.yudao.module.trade.enums.order.TradeOrderCloseTypeEnum;
6 7 import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum;
7   -import cn.iocoder.yudao.module.trade.enums.refund.TradeRefundStatusEnum;
  8 +import cn.iocoder.yudao.module.trade.enums.order.TradeOrderTypeEnum;
  9 +import cn.iocoder.yudao.module.trade.enums.order.TradeOrderRefundStatusEnum;
8 10 import com.baomidou.mybatisplus.annotation.KeySequence;
9 11 import com.baomidou.mybatisplus.annotation.TableName;
10 12 import lombok.*;
... ... @@ -38,6 +40,18 @@ public class TradeOrderDO extends BaseDO {
38 40 */
39 41 private String sn;
40 42 // TODO 芋艿:order_type 订单类型
  43 + /**
  44 + * 订单类型
  45 + *
  46 + * 枚举 {@link TradeOrderTypeEnum}
  47 + */
  48 + private Integer type;
  49 + /**
  50 + * 订单来源终端
  51 + *
  52 + * 枚举 {@link TerminalEnum}
  53 + */
  54 + private Integer terminal;
41 55 // /**
42 56 // * 店铺编号
43 57 // *
... ... @@ -72,11 +86,13 @@ public class TradeOrderDO extends BaseDO {
72 86 */
73 87 private String remark;
74 88 /**
75   - * 订单结束时间
76   - *
77   - * 即交易订单状态变成 {@link TradeOrderStatusEnum#COMPLETED} 或 {@link TradeOrderStatusEnum#CLOSED} 的时间
  89 + * 确认收获时间
78 90 */
79   - private Date endTime;
  91 + private Date confirmTakeTime;
  92 + /**
  93 + * 订单取消时间
  94 + */
  95 + private Date cancelTime;
80 96  
81 97 // ========== 价格 + 支付基本信息 ==========
82 98 /**
... ... @@ -85,7 +101,7 @@ public class TradeOrderDO extends BaseDO {
85 101 * true - 已经支付过
86 102 * false - 没有支付过
87 103 */
88   - private Boolean payed;
  104 + private Boolean payed; // TODO payStatus 0 - 待付款;1 - 已付款;2 - 已退款
89 105 /**
90 106 * 付款时间
91 107 */
... ... @@ -119,14 +135,6 @@ public class TradeOrderDO extends BaseDO {
119 135 */
120 136 private Integer payPrice;
121 137 /**
122   - * 退款金额,单位:分
123   - *
124   - * 注意,退款并不会影响 {@link #payPrice} 实际支付金额
125   - * 也就说,一个订单最终产生多少金额的收入 = payPrice - refundPrice
126   - */
127   - @Deprecated
128   - private Integer refundPrice;
129   - /**
130 138 * 支付订单编号
131 139 *
132 140 * 对接 pay-module-biz 支付服务的支付订单编号,即 PayOrderDO 的 id 编号
... ... @@ -141,9 +149,9 @@ public class TradeOrderDO extends BaseDO {
141 149 /**
142 150 * 配送方式
143 151 *
144   - * 枚举 {@link DeliveryModeEnum}
  152 + * 枚举 {@link DeliveryTypeEnum}
145 153 */
146   - private Integer deliveryMode;
  154 + private Integer deliveryType;
147 155 /**
148 156 * 配置模板的编号
149 157 *
... ... @@ -187,15 +195,22 @@ public class TradeOrderDO extends BaseDO {
187 195 /**
188 196 * 退款状态
189 197 *
190   - * 枚举 {@link TradeRefundStatusEnum}
  198 + * 枚举 {@link TradeOrderRefundStatusEnum}
191 199 */
192 200 private Integer refundStatus;
  201 + /**
  202 + * 退款金额,单位:分
  203 + *
  204 + * 注意,退款并不会影响 {@link #payPrice} 实际支付金额
  205 + * 也就说,一个订单最终产生多少金额的收入 = payPrice - refundPrice
  206 + */
  207 + private Integer refundPrice;
193 208  
194 209 // ========== 营销基本信息 ==========
195 210 /**
196 211 * 优惠劵编号
197 212 */
198   - private Integer couponCardId;
  213 + private Integer couponId;
199 214  
200 215 // TODO 芋艿,这块还要结合营销和价格计算,在去优化下。
201 216  
... ... @@ -229,6 +244,20 @@ public class TradeOrderDO extends BaseDO {
229 244 // TODO ========== 待定字段:cf =========
230 245 // TODO before_pay_price:改价前支付金额
231 246 // TODO is_alter_price:是否改价
232   - // TODO type:订单类型:0-普通订单,1-视频号订单
233 247 // TODO out_trade_no:商户系统内部的订单号 String
  248 +
  249 + // TODO ========== 待定字段:lf =========
  250 + // TODO integral_amount:积分抵扣金额
  251 + // TODO shipping_status:发货状态
  252 + // TODO shipping_time:最后新发货时间
  253 +
  254 + // TODO ========== 待定字段:lf =========
  255 + // TODO settle_id:未结算
  256 + // TODO settle_amount:结算金额
  257 + // TODO use_integral:使用的积分
  258 + // TODO team_found_id: 拼团id
  259 + // TODO team_id: 拼团活动id
  260 + // TODO delivery_id: 发货单ID
  261 + // TODO attach_values: 附带的值(赠送时机,赠送积分成长值什么的)Json格式
  262 +
234 263 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderItemDO.java
1 1 package cn.iocoder.yudao.module.trade.dal.dataobject.order;
2 2  
3 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import cn.iocoder.yudao.module.trade.enums.order.TradeOrderItemRefundStatusEnum;
  5 +import com.baomidou.mybatisplus.annotation.TableField;
4 6 import com.baomidou.mybatisplus.annotation.TableName;
  7 +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
5 8 import lombok.Data;
6 9 import lombok.EqualsAndHashCode;
7 10 import lombok.experimental.Accessors;
8 11  
  12 +import java.util.List;
  13 +
9 14 /**
10 15 * 交易订单项 DO
11 16 *
... ... @@ -55,6 +60,11 @@ public class TradeOrderItemDO extends BaseDO {
55 60 */
56 61 private Integer skuId;
57 62 /**
  63 + * 规格值数组,JSON 格式
  64 + */
  65 + @TableField(typeHandler = JacksonTypeHandler.class)
  66 + private List<Property> properties;
  67 + /**
58 68 * 商品名称
59 69 */
60 70 private String name;
... ... @@ -106,6 +116,14 @@ public class TradeOrderItemDO extends BaseDO {
106 116 * 所以,需要存储一个该字段。
107 117 */
108 118 private Integer presentTotal; // product_total_amount
  119 +
  120 + // ========== 退款基本信息 ==========
  121 + /**
  122 + * 退款状态
  123 + *
  124 + * 枚举 {@link TradeOrderItemRefundStatusEnum}
  125 + */
  126 + private Integer refundStatus;
109 127 // 如上字段,举个例子:
110 128 // 假设购买三个,即 stock = 3 。
111 129 // originPrice = 15
... ... @@ -120,6 +138,27 @@ public class TradeOrderItemDO extends BaseDO {
120 138 */
121 139 private Integer refundTotal;
122 140  
  141 + /**
  142 + * 商品属性
  143 + */
  144 + @Data
  145 + public static class Property {
  146 +
  147 + /**
  148 + * 属性编号
  149 + *
  150 + * 关联 ProductPropertyDO 的 id 编号
  151 + */
  152 + private Long propertyId;
  153 + /**
  154 + * 属性值编号
  155 + *
  156 + * 关联 ProductPropertyValueDO 的 id 编号
  157 + */
  158 + private Long valueId;
  159 +
  160 + }
  161 +
123 162 // TODO 芋艿:basket_date 加入购物车时间;
124 163 // TODO 芋艿:distribution_card_no 推广员使用的推销卡号
125 164  
... ... @@ -129,4 +168,14 @@ public class TradeOrderItemDO extends BaseDO {
129 168 // TODO is_sub:是否单独分佣,0-否,1-是
130 169 // TODO vip_price:会员价
131 170 // TODO product_type:商品类型:0-普通,1-秒杀,2-砍价,3-拼团,4-视频号
  171 +
  172 + // TODO 待确定:lf
  173 + // TODO integral_price:积分抵扣的金额
  174 + // TODO member_price:会员价格
  175 + // TODO is_member:是否为会员折扣;0-不是;1-是
  176 + // TODO member_discount:会员折扣(百分比)
  177 +
  178 + // TODO goods_info 商品信息
  179 +
  180 + // TODO integral_price:积分抵扣的金额
132 181 }
... ...
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;
3 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 4 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
5 5 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
6   -import cn.iocoder.yudao.module.trade.enums.refund.TradeRefundStatusEnum;
  6 +import cn.iocoder.yudao.module.trade.enums.order.TradeOrderRefundStatusEnum;
7 7 import cn.iocoder.yudao.module.trade.enums.refund.TradeRefundTypeEnum;
8 8 import com.baomidou.mybatisplus.annotation.TableField;
9 9 import com.baomidou.mybatisplus.annotation.TableName;
... ... @@ -18,7 +18,7 @@ import java.util.List;
18 18 /**
19 19 * 交易退款,用于处理 {@link TradeOrderDO} 交易订单的退货换流程
20 20 */
21   -// TODO 芋艿:需要调整下每个字段的命名
  21 +// TODO 芋艿:需要调整下每个字段的命名;未完全实现;
22 22 @TableName(value = "trade_refund")
23 23 @Data
24 24 @EqualsAndHashCode(callSuper = true)
... ... @@ -39,7 +39,7 @@ public class TradeRefundDO extends BaseDO {
39 39 /**
40 40 * 退款状态
41 41 *
42   - * 枚举 {@link TradeRefundStatusEnum}
  42 + * 枚举 {@link TradeOrderRefundStatusEnum}
43 43 */
44 44 private Integer status;
45 45 // /**
... ...