From cfde3dcacbbf4163f505169ed7f77777ad920d7d Mon Sep 17 00:00:00 2001 From: YunaiV Date: Fri, 5 Aug 2022 00:28:40 +0800 Subject: [PATCH] =?UTF-8?q?mall=EF=BC=9A=E4=BC=98=E5=8C=96=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E8=A1=A8=E7=9A=84=E8=AE=BE=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/common/enums/TerminalEnum.java | 38 ++++++++++ ...eryModeEnum.java => DeliveryTypeEnum.java} | 9 +-- .../dal/dataobject/sku/ProductSkuDO.java | 3 + .../order/TradeOrderItemRefundStatusEnum.java | 29 ++++++++ .../TradeOrderRefundStatusEnum.java} | 13 ++-- .../enums/order/TradeOrderStatusEnum.java | 11 ++- .../trade/enums/order/TradeOrderTypeEnum.java | 29 ++++++++ .../dataobject/order/OrderPreferentialDO.java | 49 ------------- .../dal/dataobject/order/TradeOrderDO.java | 69 +++++++++++++------ .../dataobject/order/TradeOrderItemDO.java | 49 +++++++++++++ .../dal/dataobject/refund/TradeRefundDO.java | 6 +- 11 files changed, 216 insertions(+), 89 deletions(-) create mode 100644 yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/TerminalEnum.java rename yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/delivery/{DeliveryModeEnum.java => DeliveryTypeEnum.java} (71%) create mode 100644 yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderItemRefundStatusEnum.java rename yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/{refund/TradeRefundStatusEnum.java => order/TradeOrderRefundStatusEnum.java} (51%) create mode 100644 yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderTypeEnum.java delete mode 100644 yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/OrderPreferentialDO.java diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/TerminalEnum.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/TerminalEnum.java new file mode 100644 index 000000000..7a9cd1ec6 --- /dev/null +++ b/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; + } +} diff --git a/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/delivery/DeliveryModeEnum.java b/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/delivery/DeliveryTypeEnum.java similarity index 71% rename from yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/delivery/DeliveryModeEnum.java rename to yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/delivery/DeliveryTypeEnum.java index 4d9e89275..da322ff24 100644 --- a/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/delivery/DeliveryModeEnum.java +++ b/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(); /** * 配送方式 diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/sku/ProductSkuDO.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/sku/ProductSkuDO.java index 8984c71ce..ccc3d4711 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/sku/ProductSkuDO.java +++ b/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 { diff --git a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderItemRefundStatusEnum.java b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderItemRefundStatusEnum.java new file mode 100644 index 000000000..4d81ea9eb --- /dev/null +++ b/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; + +} diff --git a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/refund/TradeRefundStatusEnum.java b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderRefundStatusEnum.java similarity index 51% rename from yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/refund/TradeRefundStatusEnum.java rename to yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderRefundStatusEnum.java index b272ac983..50fd88b12 100644 --- a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/refund/TradeRefundStatusEnum.java +++ b/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; /** * 状态名 */ diff --git a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderStatusEnum.java b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderStatusEnum.java index cd777e124..6510e26cb 100644 --- a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderStatusEnum.java +++ b/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, "失败"); /** * 状态值 diff --git a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderTypeEnum.java b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderTypeEnum.java new file mode 100644 index 000000000..c10d0065a --- /dev/null +++ b/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; + +} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/OrderPreferentialDO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/OrderPreferentialDO.java deleted file mode 100644 index a5d6cd9c5..000000000 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/OrderPreferentialDO.java +++ /dev/null @@ -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; - -} diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderDO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderDO.java index a73ddbde9..175ebdc95 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderDO.java +++ b/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格式 + } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderItemDO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderItemDO.java index 364698bb6..6bdb7c6d4 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderItemDO.java +++ b/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 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:积分抵扣的金额 } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/refund/TradeRefundDO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/refund/TradeRefundDO.java index ce53e755d..6c910df4c 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/refund/TradeRefundDO.java +++ b/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; // /**