|
|
|
@ -0,0 +1,217 @@
|
|
|
|
|
package com.yami.shop.bean.model;
|
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.annotation.TableField;
|
|
|
|
|
import com.baomidou.mybatisplus.annotation.TableId;
|
|
|
|
|
import com.baomidou.mybatisplus.annotation.TableName;
|
|
|
|
|
import lombok.Data;
|
|
|
|
|
import org.springframework.format.annotation.DateTimeFormat;
|
|
|
|
|
|
|
|
|
|
import java.io.Serializable;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @author lanhai
|
|
|
|
|
* @description Order类用于表示电商系统中的订单信息实体,它涵盖了从订单创建到完结整个过程涉及的各类关键数据,
|
|
|
|
|
* 并且通过相关注解与数据库表进行映射以及方便地生成常用方法,便于在各业务层对订单数据进行操作处理。
|
|
|
|
|
*/
|
|
|
|
|
@Data
|
|
|
|
|
// 使用@TableName注解指定该实体类对应的数据库表名为"tz_order",用于MyBatis Plus框架建立实体与表的映射关系
|
|
|
|
|
@TableName("tz_order")
|
|
|
|
|
public class Order implements Serializable {
|
|
|
|
|
private static final long serialVersionUID = 6222259729062826852L;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 订单ID,是订单在系统中的唯一标识符,使用@TableId注解表明在数据库表"tz_order"中此字段为表的主键。
|
|
|
|
|
*/
|
|
|
|
|
@TableId
|
|
|
|
|
private Long orderId;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 店铺id,用于标识该订单所属的店铺,通过此id可以关联查询店铺的其他相关信息,如店铺名称、店铺配置等。
|
|
|
|
|
*/
|
|
|
|
|
private Long shopId;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 产品名称,当订单包含多个产品时,多个产品名称将会以逗号隔开。
|
|
|
|
|
* 这种方式可以简单呈现订单内商品情况,但对于复杂产品信息处理不够灵活,如需详细产品信息可能需关联其他表。
|
|
|
|
|
*/
|
|
|
|
|
private String prodName;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 订购用户ID,唯一标识下此订单的用户,借助该字段可以关联到用户的各种信息,例如用户基本资料、历史订单等,
|
|
|
|
|
* 方便从用户角度对订单进行诸如查询、统计等操作。
|
|
|
|
|
*/
|
|
|
|
|
private String userId;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 订购流水号,一般具有唯一性,常用于在业务系统中作为订单的外部标识,
|
|
|
|
|
* 在与外部系统对接(如支付回调、物流查询等场景)或者在内部业务流程中通过流水号快速定位和查询具体订单时会用到。
|
|
|
|
|
*/
|
|
|
|
|
private String orderNumber;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 总值,代表订单中商品在未考虑优惠、运费等因素之前的总价值,是统计订单商品价值的基础数据项。
|
|
|
|
|
*/
|
|
|
|
|
private Double total;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 实际总值,是订单经过各种优惠、折扣以及加上运费等调整之后,用户实际需要支付的总金额,
|
|
|
|
|
* 反映了订单最终真实的消费金额情况,对于财务统计等业务操作十分重要。
|
|
|
|
|
*/
|
|
|
|
|
private Double actualTotal;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 支付方式,通过约定的整数值来区分不同支付渠道,例如:1 表示微信支付,2 表示支付宝支付。
|
|
|
|
|
* 方便后续根据支付方式进行支付相关的统计、对账以及不同支付方式下对应的业务逻辑处理(如退款逻辑差异等)。
|
|
|
|
|
*/
|
|
|
|
|
private Integer payType;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 订单备注,是一个文本字段,用于用户或者业务操作人员填写关于订单的一些特殊说明或者备注信息,
|
|
|
|
|
* 比如对商品的特殊要求、对配送时间的额外说明等,方便在查看订单详情时了解额外情况。
|
|
|
|
|
*/
|
|
|
|
|
private String remarks;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 订单状态,通过定义的整数值来标识订单目前所处的业务流程阶段,具体含义如下:
|
|
|
|
|
* - -1:已取消,表示订单已被取消,可能需要进行相关资源释放、数据清理等操作;
|
|
|
|
|
* - 0:待付款,对应订单创建后等待用户付款的阶段,可设置定时提醒用户付款等功能;
|
|
|
|
|
* - 1:待发货,意味着订单已付款,等待商家发货,此时可通知仓库进行发货操作;
|
|
|
|
|
* - 2:待收货,代表商品已发货,等待用户收货确认;
|
|
|
|
|
* - 3:已完成,标志着订单整个业务流程全部结束,例如用户确认收货或者系统自动确认收货等情况后所处的状态。
|
|
|
|
|
* 不同状态用于驱动不同的业务流程流转以及相应的业务逻辑处理。
|
|
|
|
|
*/
|
|
|
|
|
private Integer status;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 配送类型,用于记录订单的配送类型相关信息,不过目前代码中未明确具体约定的取值内容,
|
|
|
|
|
* 常见的可能如快递、自提等不同的配送分类方式,方便后续根据配送类型来安排具体的物流配送环节以及在前端展示给用户相应的配送信息提示。
|
|
|
|
|
*/
|
|
|
|
|
private String dvyType;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 配送方式ID,关联具体配送方式的唯一标识,可能对应数据库中存储配送方式详细信息(如快递的具体快递公司、自提的具体门店等信息)的表的主键,
|
|
|
|
|
* 通过这个字段可以进一步获取详细的配送相关细节内容。
|
|
|
|
|
*/
|
|
|
|
|
private Long dvyId;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 物流单号,当订单进入发货阶段,物流单号用于跟踪物流运输的进度,用户可以通过这个单号在对应的物流查询平台查询包裹的实时位置等信息,
|
|
|
|
|
* 同时系统内部也可以通过对接物流接口,利用物流单号来获取物流状态更新到订单信息中,方便用户查看。
|
|
|
|
|
*/
|
|
|
|
|
private String dvyFlowId;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 订单运费,记录该订单产生的运费金额,如果订单有包邮规则或者运费计算逻辑,这个字段会记录最终计算得出的需要用户支付或者商家承担的运费数值,
|
|
|
|
|
* 对于统计订单成本、用户实际支付金额等方面是一个重要的数据项。
|
|
|
|
|
*/
|
|
|
|
|
private Double freightAmount;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 用户订单地址Id,关联用户订单地址的唯一标识,通过这个字段可以从数据库中查询到订单对应的收货地址或者发货地址(如果有不同的地址需求场景)的详细信息,
|
|
|
|
|
* 比如地址、联系人、联系电话等,确保货物能准确地送达指定地点。
|
|
|
|
|
*/
|
|
|
|
|
private Long addrOrderId;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 订单商品总数,用于统计该订单中包含的商品总数量,便于快速了解订单的规模大小,
|
|
|
|
|
* 也可以在一些业务逻辑中,比如根据商品数量判断是否满足某些优惠条件、统计商品销售总量等方面起到作用。
|
|
|
|
|
*/
|
|
|
|
|
private Integer productNums;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 订购时间,使用@DateTimeFormat注解指定日期格式为"yyyy-MM-dd HH:mm:ss",用于记录订单创建的时间点,
|
|
|
|
|
* 在业务中可以根据创建时间进行订单的排序、查询某个时间段内的订单等操作,例如查询当天的新订单、统计每月新增订单数量等都依赖于这个时间字段。
|
|
|
|
|
*/
|
|
|
|
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
|
|
|
private Date createTime;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 订单更新时间,同样使用@DateTimeFormat注解指定日期格式,记录订单信息最后一次更新的时间,
|
|
|
|
|
* 比如订单状态改变、地址修改、备注添加等任何对订单数据有修改操作时,都会更新这个时间字段,方便跟踪订单数据的变更历史以及在一些业务场景中判断数据的时效性等。
|
|
|
|
|
*/
|
|
|
|
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
|
|
|
private Date updateTime;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 付款时间,使用@DateTimeFormat注解指定日期格式,当用户完成订单支付后,会记录支付操作完成的具体时间,
|
|
|
|
|
* 这个时间对于统计支付成功率、分析支付时间段的分布等支付相关的业务分析以及后续涉及到退款等业务逻辑判断支付是否已完成等方面都有重要作用。
|
|
|
|
|
*/
|
|
|
|
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
|
|
|
private Date payTime;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 发货时间,使用@DateTimeFormat注解指定日期格式,记录订单商品实际发货的时间,
|
|
|
|
|
* 通过这个时间可以计算物流运输时长、统计发货效率等,同时也可以作为判断订单状态是否准确(比如是否应该从待发货变为待收货等状态)的依据之一。
|
|
|
|
|
*/
|
|
|
|
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
|
|
|
private Date dvyTime;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 完成时间,使用@DateTimeFormat注解指定日期格式,表示订单整个业务流程全部结束(例如用户确认收货或者系统自动确认收货等情况)后记录的时间,
|
|
|
|
|
* 标志着订单的最终完结,对于统计订单完成率、分析订单平均完成时长等业务指标有帮助。
|
|
|
|
|
*/
|
|
|
|
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
|
|
|
private Date finallyTime;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 取消时间,使用@DateTimeFormat注解指定日期格式,当订单被取消时,会记录取消操作发生的时间,
|
|
|
|
|
* 对于后续分析订单取消原因、统计取消订单的时间分布等情况提供数据支持,也有助于确保业务数据的完整性和可追溯性。
|
|
|
|
|
*/
|
|
|
|
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
|
|
|
private Date cancelTime;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 是否已经支付,通过整数值来表示,1表示已经支付过,0表示没有支付过。
|
|
|
|
|
* 在很多业务逻辑中,比如判断是否可以发货、是否可以进行退款等都需要先判断这个支付状态,避免出现业务流程上的错误。
|
|
|
|
|
*/
|
|
|
|
|
private Integer isPayed;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 用户订单删除状态,通过整数值来区分不同的删除程度,具体含义如下:
|
|
|
|
|
* - 0:没有删除,表示订单正常存在于系统中,未进行删除操作;
|
|
|
|
|
* - 1:回收站,意味着订单已被标记为删除,进入回收站状态,此时可能还可以恢复;
|
|
|
|
|
* - 2:永久删除,代表订单已被彻底删除,无法再恢复了。
|
|
|
|
|
* 方便对订单数据的管理和数据存储空间的合理利用,同时也符合一般系统中数据删除的逻辑设计习惯。
|
|
|
|
|
*/
|
|
|
|
|
private Integer deleteStatus;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 退款状态,用于记录订单退款相关的状态,具体含义如下:
|
|
|
|
|
* - 0:默认,表示退款相关操作未开始或者初始状态;
|
|
|
|
|
* - 1:在处理,代表用户发起退款申请后,退款流程正在进行中,例如处于审核等阶段;
|
|
|
|
|
* - 2:处理完成,说明退款操作经过相应流程后已完成,便于跟踪退款业务的进展情况以及在不同阶段进行相应的业务处理和提醒等操作。
|
|
|
|
|
*/
|
|
|
|
|
private Integer refundSts;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 优惠总额,记录该订单享受到的各种优惠(如优惠券、满减活动、折扣等)累计的金额总数,
|
|
|
|
|
* 通过这个字段可以清晰地了解到用户在该订单上节省了多少钱,同时对于商家统计营销活动成本、分析优惠策略效果等方面也是重要的数据依据。
|
|
|
|
|
*/
|
|
|
|
|
private Double reduceAmount;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 店铺名称,使用@TableField(exist = false)注解表明此字段并不对应数据库表"tz_order"中的实际列,
|
|
|
|
|
* 它可能是在业务逻辑处理或者数据查询展示过程中,通过关联查询等方式获取到店铺名称后,临时存储在这个实体类对象中的一个属性,
|
|
|
|
|
* 方便在前端展示或者其他业务场景中直接获取店铺名称信息,而不用再次去查询数据库。
|
|
|
|
|
*/
|
|
|
|
|
@TableField(exist = false)
|
|
|
|
|
private String shopName;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 订单商品明细列表,使用@TableField(exist = false)注解说明这个字段不对应数据库表中的列,
|
|
|
|
|
* 它一般用于存储订单中包含的具体商品明细信息(每个OrderItem可以表示一个商品项的详细情况,如商品ID、商品数量、商品单价等),
|
|
|
|
|
* 通常是在查询订单详情等场景下,通过关联查询或者其他业务逻辑组装好商品明细列表后赋值给这个字段,方便一次性获取订单的完整商品信息。
|
|
|
|
|
*/
|
|
|
|
|
@TableField(exist = false)
|
|
|
|
|
private List<OrderItem> orderItems;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 用户订单地址信息对象,使用@TableField(exist = false)注解表示该字段不对应数据库表列,
|
|
|
|
|
* 它用于存储与该订单关联的用户地址详细信息对象(UserAddrOrder类应该包含地址相关的各种详细内容,如地址、联系人、联系电话等),
|
|
|
|
|
* 方便在获取订单信息时能同时获取到对应的完整地址信息,减少额外查询数据库获取地址的操作。
|
|
|
|
|
*/
|
|
|
|
|
@TableField(exist = false)
|
|
|
|
|
private UserAddrOrder userAddrOrder;
|
|
|
|
|
}
|