|
|
|
|
@ -0,0 +1,202 @@
|
|
|
|
|
package cn.iocoder.yudao.module.trade.dal.dataobject.order;
|
|
|
|
|
|
|
|
|
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
|
|
|
|
import cn.iocoder.yudao.module.product.enums.delivery.DeliveryModeEnum;
|
|
|
|
|
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 com.baomidou.mybatisplus.annotation.KeySequence;
|
|
|
|
|
import com.baomidou.mybatisplus.annotation.TableName;
|
|
|
|
|
import lombok.*;
|
|
|
|
|
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 交易订单 DO
|
|
|
|
|
*
|
|
|
|
|
* @author 芋道源码
|
|
|
|
|
*/
|
|
|
|
|
@TableName("trade_order")
|
|
|
|
|
@KeySequence("trade_order_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
|
|
|
|
@Data
|
|
|
|
|
@EqualsAndHashCode(callSuper = true)
|
|
|
|
|
@ToString(callSuper = true)
|
|
|
|
|
@Builder
|
|
|
|
|
@NoArgsConstructor
|
|
|
|
|
@AllArgsConstructor
|
|
|
|
|
public class TradeOrderDO extends BaseDO {
|
|
|
|
|
|
|
|
|
|
// ========== 订单基本信息 ==========
|
|
|
|
|
/**
|
|
|
|
|
* 订单编号,主键自增
|
|
|
|
|
*/
|
|
|
|
|
private Integer id;
|
|
|
|
|
/**
|
|
|
|
|
* 订单流水号
|
|
|
|
|
*
|
|
|
|
|
* 例如说,1146347329394184195
|
|
|
|
|
*/
|
|
|
|
|
private String sn;
|
|
|
|
|
// TODO 芋艿:order_type 订单类型
|
|
|
|
|
// /**
|
|
|
|
|
// * 店铺编号
|
|
|
|
|
// *
|
|
|
|
|
// * 关联 {@link ShopDO#getId()} TODO 芋艿:多店铺,暂不考虑
|
|
|
|
|
// */
|
|
|
|
|
// private Long shopId;
|
|
|
|
|
/**
|
|
|
|
|
* 用户编号
|
|
|
|
|
*
|
|
|
|
|
* 关联 MemberUserDO 的 id 编号
|
|
|
|
|
*/
|
|
|
|
|
private Long userId;
|
|
|
|
|
/**
|
|
|
|
|
* 订单状态
|
|
|
|
|
*
|
|
|
|
|
* 枚举 {@link TradeOrderStatusEnum}
|
|
|
|
|
*/
|
|
|
|
|
private Integer status;
|
|
|
|
|
/**
|
|
|
|
|
* 关闭类型
|
|
|
|
|
*
|
|
|
|
|
* 枚举 {@link TradeOrderCloseTypeEnum}
|
|
|
|
|
*/
|
|
|
|
|
private Integer closeType;
|
|
|
|
|
// TODO 芋艿:要不要存储 prod_name 购买的商品名门?
|
|
|
|
|
/**
|
|
|
|
|
* 购买的商品数量
|
|
|
|
|
*/
|
|
|
|
|
private Integer productCount;
|
|
|
|
|
/**
|
|
|
|
|
* 备注
|
|
|
|
|
*/
|
|
|
|
|
private String remark;
|
|
|
|
|
/**
|
|
|
|
|
* 订单结束时间
|
|
|
|
|
*
|
|
|
|
|
* 即交易订单状态变成 {@link TradeOrderStatusEnum#COMPLETED} 或 {@link TradeOrderStatusEnum#CLOSED} 的时间
|
|
|
|
|
*/
|
|
|
|
|
private Date endTime;
|
|
|
|
|
|
|
|
|
|
// ========== 价格 + 支付基本信息 ==========
|
|
|
|
|
/**
|
|
|
|
|
* 是否已支付
|
|
|
|
|
*
|
|
|
|
|
* true - 已经支付过
|
|
|
|
|
* false - 没有支付过
|
|
|
|
|
*/
|
|
|
|
|
private Boolean payed;
|
|
|
|
|
/**
|
|
|
|
|
* 付款时间
|
|
|
|
|
*/
|
|
|
|
|
private Date payTime;
|
|
|
|
|
|
|
|
|
|
// TODO 芋艿:delete_status 用户订单删除状态;0 - 未删除;1 - 回收站;2 - 永久删除
|
|
|
|
|
|
|
|
|
|
// ========== 价格 + 支付基本信息 ==========
|
|
|
|
|
/**
|
|
|
|
|
* 购买(商品)总金额,单位:分
|
|
|
|
|
*/
|
|
|
|
|
private Integer buyPrice; // total
|
|
|
|
|
/**
|
|
|
|
|
* 优惠总金额,单位:分。
|
|
|
|
|
*/
|
|
|
|
|
private Integer discountPrice; // reduce_amount
|
|
|
|
|
/**
|
|
|
|
|
* 物流金额 (分)
|
|
|
|
|
*/
|
|
|
|
|
private Integer logisticsPrice; // freight_amount
|
|
|
|
|
/**
|
|
|
|
|
* 最终金额,单位:分
|
|
|
|
|
*
|
|
|
|
|
* buyPrice + logisticsPrice - discountPrice = presentPrice
|
|
|
|
|
*/
|
|
|
|
|
private Integer presentPrice; // actual_total
|
|
|
|
|
/**
|
|
|
|
|
* 实际已支付金额,单位:分
|
|
|
|
|
*
|
|
|
|
|
* 初始时,金额为 0 。等到支付成功后,会进行更新。
|
|
|
|
|
*/
|
|
|
|
|
private Integer payPrice;
|
|
|
|
|
/**
|
|
|
|
|
* 退款金额,单位:分
|
|
|
|
|
*
|
|
|
|
|
* 注意,退款并不会影响 {@link #payPrice} 实际支付金额
|
|
|
|
|
* 也就说,一个订单最终产生多少金额的收入 = payPrice - refundPrice
|
|
|
|
|
*/
|
|
|
|
|
@Deprecated
|
|
|
|
|
private Integer refundPrice;
|
|
|
|
|
/**
|
|
|
|
|
* 支付订单编号
|
|
|
|
|
*
|
|
|
|
|
* 对接 pay-module-biz 支付服务的支付订单编号,即 PayOrderDO 的 id 编号
|
|
|
|
|
*/
|
|
|
|
|
private Long payOrderId;
|
|
|
|
|
/**
|
|
|
|
|
* 支付成功的支付渠道
|
|
|
|
|
*/
|
|
|
|
|
private Integer payType;
|
|
|
|
|
|
|
|
|
|
// ========== 收件 + 物流基本信息 ==========
|
|
|
|
|
/**
|
|
|
|
|
* 配送方式
|
|
|
|
|
*
|
|
|
|
|
* 枚举 {@link DeliveryModeEnum}
|
|
|
|
|
*/
|
|
|
|
|
private Integer deliveryMode;
|
|
|
|
|
/**
|
|
|
|
|
* 配置模板的编号
|
|
|
|
|
*
|
|
|
|
|
* 关联 DeliveryTemplateDO 的 id 编号
|
|
|
|
|
*/
|
|
|
|
|
private Long deliveryTemplateId; // dvy_id
|
|
|
|
|
/**
|
|
|
|
|
* 物流公司单号
|
|
|
|
|
*/
|
|
|
|
|
private String expressNo; // dvy_flow_id
|
|
|
|
|
/**
|
|
|
|
|
* 发货时间
|
|
|
|
|
*/
|
|
|
|
|
private Date deliveryTime;
|
|
|
|
|
/**
|
|
|
|
|
* 收货时间
|
|
|
|
|
*/
|
|
|
|
|
private Date receiveTime;
|
|
|
|
|
/**
|
|
|
|
|
* 收件人名称
|
|
|
|
|
*/
|
|
|
|
|
private String receiverName;
|
|
|
|
|
/**
|
|
|
|
|
* 收件人手机
|
|
|
|
|
*/
|
|
|
|
|
private String receiverMobile;
|
|
|
|
|
/**
|
|
|
|
|
* 收件人地区编号
|
|
|
|
|
*/
|
|
|
|
|
private Integer receiverAreaId;
|
|
|
|
|
/**
|
|
|
|
|
* 收件人邮编
|
|
|
|
|
*/
|
|
|
|
|
private Integer receiverPostCode;
|
|
|
|
|
/**
|
|
|
|
|
* 收件人详细地址
|
|
|
|
|
*/
|
|
|
|
|
private String receiverDetailAddress;
|
|
|
|
|
|
|
|
|
|
// ========== 退款基本信息 ==========
|
|
|
|
|
/**
|
|
|
|
|
* 退款状态
|
|
|
|
|
*
|
|
|
|
|
* 枚举 {@link TradeRefundStatusEnum}
|
|
|
|
|
*/
|
|
|
|
|
private Integer refundStatus;
|
|
|
|
|
|
|
|
|
|
// ========== 营销基本信息 ==========
|
|
|
|
|
/**
|
|
|
|
|
* 优惠劵编号
|
|
|
|
|
*/
|
|
|
|
|
private Integer couponCardId;
|
|
|
|
|
|
|
|
|
|
// TODO 芋艿,这块还要结合营销和价格计算,在去优化下。
|
|
|
|
|
|
|
|
|
|
}
|