|
|
@@ -18,43 +18,58 @@ import java.time.LocalDateTime;
|
|
|
import java.util.Date;
|
|
|
|
|
|
/**
|
|
|
+ * 订单实体类
|
|
|
* <p>
|
|
|
- * 认领表
|
|
|
+ * 对应数据库表 t_order,用于存储按摩服务订单的完整信息。
|
|
|
+ * 包含订单基本信息、服务项目信息、用户信息、技师信息、支付信息、
|
|
|
+ * 状态流转信息等多个维度的业务数据。
|
|
|
+ *
|
|
|
+ * 订单状态流转:
|
|
|
+ * -1(待付款) → 0(待接单) → 1(已接单) → 6(已出发) → 2(已到达) → 3(服务中) → 4(待评价) → 5(已完成)
|
|
|
+ * 特殊状态:-2(已取消)、-3(已拒绝)
|
|
|
* </p>
|
|
|
*
|
|
|
* @author YJR
|
|
|
+ * @version 1.0
|
|
|
* @since 2023-12-30
|
|
|
*/
|
|
|
@Getter
|
|
|
@Setter
|
|
|
@Accessors(chain = true)
|
|
|
-@TableName(value = "t_order",autoResultMap = true)
|
|
|
-@ApiModel(value = "TOrder", description = "订单认领表")
|
|
|
+@TableName(value = "t_order", autoResultMap = true)
|
|
|
+@ApiModel(value = "TOrder", description = "订单实体类")
|
|
|
public class TOrder implements Serializable {
|
|
|
|
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
|
|
/**
|
|
|
- * 订单id
|
|
|
+ * 订单ID
|
|
|
+ * 主键,唯一标识订单记录
|
|
|
*/
|
|
|
@TableId("c_id")
|
|
|
- @ApiModelProperty("cId")
|
|
|
+ @ApiModelProperty("订单ID")
|
|
|
private String cId;
|
|
|
|
|
|
/**
|
|
|
- * 技师id
|
|
|
+ * 技师ID
|
|
|
+ * 关联的技师唯一标识
|
|
|
*/
|
|
|
@TableField("c_js_id")
|
|
|
- @ApiModelProperty("技师id")
|
|
|
+ @ApiModelProperty("技师ID")
|
|
|
private String cJsId;
|
|
|
|
|
|
/**
|
|
|
- * 老技师id
|
|
|
+ * 老技师ID
|
|
|
+ * 用于记录原技师信息,在换技师场景下使用
|
|
|
*/
|
|
|
@TableField("old_js_id")
|
|
|
- @ApiModelProperty("老技师id")
|
|
|
+ @ApiModelProperty("老技师ID")
|
|
|
private String oldJsId;
|
|
|
|
|
|
+ /**
|
|
|
+ * 订单号
|
|
|
+ * 系统生成的唯一订单编号,用于订单查询和标识
|
|
|
+ */
|
|
|
@Excel(name = "订单号")
|
|
|
@TableField("order_no")
|
|
|
@ApiModelProperty("订单号")
|
|
|
@@ -62,30 +77,47 @@ public class TOrder implements Serializable {
|
|
|
|
|
|
/**
|
|
|
* 父订单号
|
|
|
+ * 用于升级订单场景,记录原订单号
|
|
|
*/
|
|
|
@TableField("parent_no")
|
|
|
@ApiModelProperty("父订单号")
|
|
|
private String parentNo;
|
|
|
|
|
|
+ /**
|
|
|
+ * 超时原因
|
|
|
+ * 订单超时的原因说明
|
|
|
+ */
|
|
|
@TableField("timeout_cause")
|
|
|
@ApiModelProperty("超时原因")
|
|
|
private String timeoutCause;
|
|
|
|
|
|
-
|
|
|
+ /**
|
|
|
+ * 音频
|
|
|
+ * 订单相关的音频文件路径
|
|
|
+ */
|
|
|
@TableField("tape")
|
|
|
@ApiModelProperty("音频")
|
|
|
private String tape;
|
|
|
|
|
|
+ /**
|
|
|
+ * 车费
|
|
|
+ * 根据距离和时段计算的车费金额
|
|
|
+ */
|
|
|
@TableField("fare")
|
|
|
@ApiModelProperty("车费")
|
|
|
private BigDecimal fare;
|
|
|
|
|
|
+ /**
|
|
|
+ * 距离
|
|
|
+ * 技师与用户之间的距离,单位:公里
|
|
|
+ */
|
|
|
@TableField("distance")
|
|
|
@ApiModelProperty("距离")
|
|
|
private BigDecimal distance;
|
|
|
|
|
|
/**
|
|
|
- * 支付类型:1微信支付 2:余额支付 3:现金支付
|
|
|
+ * 支付类型
|
|
|
+ * 1-微信支付 2-余额支付 3-现金支付
|
|
|
*/
|
|
|
@TableField("pay_type")
|
|
|
@ApiModelProperty("支付类型:1微信支付 2:余额支付 3:现金支付")
|
|
|
@@ -93,98 +125,172 @@ public class TOrder implements Serializable {
|
|
|
|
|
|
/**
|
|
|
* 优惠金额
|
|
|
+ * 使用优惠券或其他优惠减免的金额
|
|
|
*/
|
|
|
@TableField("preferential")
|
|
|
@ApiModelProperty("优惠金额")
|
|
|
private BigDecimal preferential;
|
|
|
|
|
|
+ /**
|
|
|
+ * 差价
|
|
|
+ * 升级订单时,需要补交的差价金额
|
|
|
+ */
|
|
|
@TableField("price_difference")
|
|
|
@ApiModelProperty("差价")
|
|
|
private BigDecimal priceDifference;
|
|
|
|
|
|
+ /**
|
|
|
+ * 订单类型
|
|
|
+ * 0-普通订单 1-加钟订单 2-升级订单
|
|
|
+ */
|
|
|
@TableField("order_type")
|
|
|
@ApiModelProperty("订单类型:0普通订单,1加钟订单,2升级订单")
|
|
|
private Integer orderType;
|
|
|
+
|
|
|
/**
|
|
|
- * 用户openid
|
|
|
+ * 用户OpenID
|
|
|
+ * 微信用户的唯一标识
|
|
|
*/
|
|
|
@TableField("c_open_id")
|
|
|
- @ApiModelProperty("用户openid")
|
|
|
+ @ApiModelProperty("用户OpenID")
|
|
|
private String cOpenId;
|
|
|
|
|
|
- //经度
|
|
|
+ /**
|
|
|
+ * 经度
|
|
|
+ * 用户地址的经度坐标
|
|
|
+ */
|
|
|
@ApiModelProperty("经度")
|
|
|
private Double longitude;
|
|
|
- //纬度
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 纬度
|
|
|
+ * 用户地址的纬度坐标
|
|
|
+ */
|
|
|
@ApiModelProperty("纬度")
|
|
|
private Double latitude;
|
|
|
|
|
|
- //经度
|
|
|
+ /**
|
|
|
+ * 出发经度
|
|
|
+ * 技师出发位置的经度
|
|
|
+ */
|
|
|
@ApiModelProperty("出发经度")
|
|
|
private BigDecimal departLongitude;
|
|
|
- //纬度
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 出发纬度
|
|
|
+ * 技师出发位置的纬度
|
|
|
+ */
|
|
|
@ApiModelProperty("出发纬度")
|
|
|
private BigDecimal departLatitude;
|
|
|
|
|
|
- //经度
|
|
|
+ /**
|
|
|
+ * 到达经度
|
|
|
+ * 技师到达用户位置的经度
|
|
|
+ */
|
|
|
@ApiModelProperty("到达经度")
|
|
|
private BigDecimal arrivalLongitude;
|
|
|
- //纬度
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 到达纬度
|
|
|
+ * 技师到达用户位置的纬度
|
|
|
+ */
|
|
|
@ApiModelProperty("到达纬度")
|
|
|
private BigDecimal arrivalLatitude;
|
|
|
|
|
|
+ /**
|
|
|
+ * 到达照片
|
|
|
+ * 技师到达现场后拍摄的照片URL
|
|
|
+ */
|
|
|
@ApiModelProperty("到达照片")
|
|
|
private String arrivalPhoto;
|
|
|
|
|
|
+ /**
|
|
|
+ * 出发时间
|
|
|
+ * 技师出发前往用户地址的时间
|
|
|
+ */
|
|
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
|
|
|
@ApiModelProperty("出发时间")
|
|
|
private Date departTime;
|
|
|
|
|
|
+ /**
|
|
|
+ * 支付时间
|
|
|
+ * 用户完成支付的时间
|
|
|
+ */
|
|
|
@ApiModelProperty("支付时间")
|
|
|
private Date payTime;
|
|
|
|
|
|
- //详细地址
|
|
|
+ /**
|
|
|
+ * 详细地址
|
|
|
+ * 用户提供的服务地址
|
|
|
+ */
|
|
|
@ApiModelProperty("详细地址")
|
|
|
private String address;
|
|
|
|
|
|
- @ApiModelProperty("地址name")
|
|
|
+ /**
|
|
|
+ * 地址名称
|
|
|
+ * 地址的别名或名称标识
|
|
|
+ */
|
|
|
+ @ApiModelProperty("地址名称")
|
|
|
private String name;
|
|
|
|
|
|
+ /**
|
|
|
+ * 接单时间
|
|
|
+ * 技师接单的时间
|
|
|
+ */
|
|
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
|
|
|
@ApiModelProperty("接单时间")
|
|
|
private LocalDateTime acceptanceTime;
|
|
|
|
|
|
+ /**
|
|
|
+ * 到达时间
|
|
|
+ * 技师到达用户地址的时间
|
|
|
+ */
|
|
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
|
|
|
@ApiModelProperty("到达时间")
|
|
|
private LocalDateTime reachTime;
|
|
|
|
|
|
+ /**
|
|
|
+ * 开始服务时间
|
|
|
+ * 技师开始提供服务的时间
|
|
|
+ */
|
|
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
|
|
|
@ApiModelProperty("开始服务时间")
|
|
|
private LocalDateTime startTime;
|
|
|
|
|
|
+ /**
|
|
|
+ * 结束时间
|
|
|
+ * 技师完成服务的时间
|
|
|
+ */
|
|
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
|
|
|
@ApiModelProperty("结束时间")
|
|
|
private LocalDateTime endTime;
|
|
|
|
|
|
+ /**
|
|
|
+ * 拒接原因
|
|
|
+ * 技师拒绝接单的原因说明
|
|
|
+ */
|
|
|
@ApiModelProperty("拒接原因")
|
|
|
private String reasonRefusal;
|
|
|
|
|
|
/**
|
|
|
- * 领取优惠卷id
|
|
|
+ * 领取优惠券ID
|
|
|
+ * 使用的优惠券记录ID
|
|
|
*/
|
|
|
@TableField("coupon_receive_id")
|
|
|
- @ApiModelProperty("领取优惠卷id")
|
|
|
+ @ApiModelProperty("领取优惠券ID")
|
|
|
private String couponReceiveId;
|
|
|
|
|
|
/**
|
|
|
* 订单明细
|
|
|
+ * JSON格式,包含服务项目的详细信息
|
|
|
*/
|
|
|
- @TableField(value = "c_goods",typeHandler = FastjsonTypeHandler.class)
|
|
|
+ @TableField(value = "c_goods", typeHandler = FastjsonTypeHandler.class)
|
|
|
@ApiModelProperty("订单明细")
|
|
|
private JSONArray cGoods;
|
|
|
|
|
|
/**
|
|
|
* 订单金额
|
|
|
+ * 服务项目的基础金额总和
|
|
|
*/
|
|
|
@TableField("d_total_money")
|
|
|
@ApiModelProperty("订单金额")
|
|
|
@@ -192,6 +298,7 @@ public class TOrder implements Serializable {
|
|
|
|
|
|
/**
|
|
|
* 总价
|
|
|
+ * 订单最终金额 = 订单金额 + 车费 - 优惠金额
|
|
|
*/
|
|
|
@Excel(name = "订单金额")
|
|
|
@TableField("total_price")
|
|
|
@@ -200,104 +307,139 @@ public class TOrder implements Serializable {
|
|
|
|
|
|
/**
|
|
|
* 订单状态
|
|
|
- * 待接单 0 已接单 1 已到达 2 服务中 3 待评价(已完成) 4 待付款 -1 已取消 -2 已拒绝 -3 已完成(已评价)5
|
|
|
+ * -1-待付款 0-待接单 1-已接单 2-已到达 3-服务中 4-待评价(已完成)
|
|
|
+ * 5-已完成(已评价) 6-已出发 -2-已取消 -3-已拒绝
|
|
|
*/
|
|
|
@TableField("n_status")
|
|
|
- @ApiModelProperty("订单状态 待接单0 已接单1 已到达2 服务中3 待评价(已完成4 待付款-1 已取消-2 已拒绝-3 已完成(已评价)5 已出发6")
|
|
|
+ @ApiModelProperty("订单状态: -1待付款 0待接单 1已接单 2已到达 3服务中 4待评价 5已完成 6已出发 -2已取消 -3已拒绝")
|
|
|
private Integer nStatus;
|
|
|
|
|
|
/**
|
|
|
* 地址
|
|
|
+ * 用户提供的服务地址(冗余字段)
|
|
|
*/
|
|
|
@TableField("c_address")
|
|
|
@ApiModelProperty("地址")
|
|
|
private String cAddress;
|
|
|
|
|
|
+ /**
|
|
|
+ * 备注地址
|
|
|
+ * 地址的补充说明或地标信息
|
|
|
+ */
|
|
|
@ApiModelProperty("备注地址")
|
|
|
private String atlasAdd;
|
|
|
|
|
|
/**
|
|
|
- * 姓名
|
|
|
+ * 用户姓名
|
|
|
+ * 下单用户的真实姓名
|
|
|
*/
|
|
|
@Excel(name = "用户姓名")
|
|
|
@TableField("c_name")
|
|
|
- @ApiModelProperty("姓名")
|
|
|
+ @ApiModelProperty("用户姓名")
|
|
|
private String cName;
|
|
|
|
|
|
/**
|
|
|
- * 电话
|
|
|
+ * 用户电话
|
|
|
+ * 下单用户的联系电话
|
|
|
*/
|
|
|
@Excel(name = "用户电话")
|
|
|
@TableField("c_phone")
|
|
|
- @ApiModelProperty("电话")
|
|
|
+ @ApiModelProperty("用户电话")
|
|
|
private String cPhone;
|
|
|
|
|
|
/**
|
|
|
* 备注
|
|
|
+ * 用户填写的订单备注信息
|
|
|
*/
|
|
|
@TableField("c_note")
|
|
|
@ApiModelProperty("备注")
|
|
|
private String cNote;
|
|
|
|
|
|
/**
|
|
|
- * 时间
|
|
|
+ * 支付截止时间
|
|
|
+ * 订单需要完成支付的截止时间
|
|
|
*/
|
|
|
@TableField("c_time")
|
|
|
@ApiModelProperty("支付截止时间")
|
|
|
private String cTime;
|
|
|
|
|
|
/**
|
|
|
- * 推荐者id
|
|
|
+ * 推荐者ID
|
|
|
+ * 推荐用户的OpenID,用于分销统计
|
|
|
*/
|
|
|
@TableField("c_tj_open_id")
|
|
|
- @ApiModelProperty("推荐者id")
|
|
|
+ @ApiModelProperty("推荐者ID")
|
|
|
private String cTjOpenId;
|
|
|
|
|
|
+ /**
|
|
|
+ * 部门ID
|
|
|
+ * 订单所属的部门/城市标识
|
|
|
+ */
|
|
|
@TableField("dept_id")
|
|
|
- @ApiModelProperty("部门Id")
|
|
|
+ @ApiModelProperty("部门ID")
|
|
|
private String deptId;
|
|
|
|
|
|
+ /**
|
|
|
+ * 部门名称
|
|
|
+ * 订单所属的城市名称
|
|
|
+ */
|
|
|
@TableField("dept_name")
|
|
|
@ApiModelProperty("部门名称")
|
|
|
private String deptName;
|
|
|
|
|
|
/**
|
|
|
* 创建时间
|
|
|
+ * 订单创建的时间戳
|
|
|
*/
|
|
|
- @Excel(name = "时间")
|
|
|
+ @Excel(name = "创建时间")
|
|
|
@TableField("dt_create_time")
|
|
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
|
|
|
@ApiModelProperty("创建时间")
|
|
|
private LocalDateTime dtCreateTime;
|
|
|
|
|
|
- @ApiModelProperty("是否删除0否1是")
|
|
|
+ /**
|
|
|
+ * 逻辑删除标记
|
|
|
+ * 0-未删除(有效记录) 1-已删除
|
|
|
+ */
|
|
|
+ @ApiModelProperty("是否删除:0否1是")
|
|
|
@TableLogic
|
|
|
private Integer isDelete;
|
|
|
|
|
|
+ /**
|
|
|
+ * 技师信息
|
|
|
+ * 非数据库字段,用于关联查询技师信息
|
|
|
+ */
|
|
|
@TableField(exist = false)
|
|
|
@ApiModelProperty("技师信息")
|
|
|
private TJs js;
|
|
|
|
|
|
/**
|
|
|
* 老技师信息
|
|
|
+ * 非数据库字段,用于关联查询原技师信息
|
|
|
*/
|
|
|
@TableField(exist = false)
|
|
|
@ApiModelProperty("老技师信息")
|
|
|
private TJs oldJs;
|
|
|
|
|
|
/**
|
|
|
- * 剩余支付时间(秒)
|
|
|
+ * 剩余支付时间
|
|
|
+ * 非数据库字段,用于计算订单支付的剩余时间(秒)
|
|
|
*/
|
|
|
@TableField(exist = false)
|
|
|
@ApiModelProperty("剩余支付时间(秒)")
|
|
|
private Long remainingTime;
|
|
|
|
|
|
+ /**
|
|
|
+ * 技师昵称
|
|
|
+ * 非数据库字段,用于关联查询技师昵称
|
|
|
+ */
|
|
|
@TableField(exist = false)
|
|
|
@ApiModelProperty("技师昵称")
|
|
|
private String cNickName;
|
|
|
|
|
|
/**
|
|
|
* 技师姓名
|
|
|
+ * 非数据库字段,用于关联查询技师姓名
|
|
|
*/
|
|
|
@Excel(name = "技师姓名")
|
|
|
@TableField(exist = false)
|
|
|
@@ -306,18 +448,24 @@ public class TOrder implements Serializable {
|
|
|
|
|
|
/**
|
|
|
* 技师电话
|
|
|
+ * 非数据库字段,用于关联查询技师电话
|
|
|
*/
|
|
|
@Excel(name = "技师电话")
|
|
|
@TableField(exist = false)
|
|
|
@ApiModelProperty("技师电话")
|
|
|
private String jsPhone;
|
|
|
|
|
|
+ /**
|
|
|
+ * 用户信息
|
|
|
+ * 非数据库字段,用于关联查询微信用户信息
|
|
|
+ */
|
|
|
@TableField(exist = false)
|
|
|
@ApiModelProperty("用户信息")
|
|
|
private TWxUser wxUser;
|
|
|
|
|
|
/**
|
|
|
* 订单状态名称
|
|
|
+ * 非数据库字段,用于展示订单状态的文本描述
|
|
|
*/
|
|
|
@TableField(exist = false)
|
|
|
@Excel(name = "订单状态")
|
|
|
@@ -344,70 +492,58 @@ public class TOrder implements Serializable {
|
|
|
return cOpenId;
|
|
|
}
|
|
|
|
|
|
- public void setDepartLongitude(BigDecimal departLongitude)
|
|
|
- {
|
|
|
+ public void setcOpenId(String cOpenId) {
|
|
|
+ this.cOpenId = cOpenId;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setDepartLongitude(BigDecimal departLongitude) {
|
|
|
this.departLongitude = departLongitude;
|
|
|
}
|
|
|
|
|
|
- public BigDecimal getDepartLongitude()
|
|
|
- {
|
|
|
+ public BigDecimal getDepartLongitude() {
|
|
|
return departLongitude;
|
|
|
}
|
|
|
|
|
|
- public void setArrivalLongitude(BigDecimal arrivalLongitude)
|
|
|
- {
|
|
|
+ public void setArrivalLongitude(BigDecimal arrivalLongitude) {
|
|
|
this.arrivalLongitude = arrivalLongitude;
|
|
|
}
|
|
|
|
|
|
- public BigDecimal getArrivalLongitude()
|
|
|
- {
|
|
|
+ public BigDecimal getArrivalLongitude() {
|
|
|
return arrivalLongitude;
|
|
|
}
|
|
|
|
|
|
- public void setArrivalPhoto(String arrivalPhoto)
|
|
|
- {
|
|
|
+ public void setArrivalPhoto(String arrivalPhoto) {
|
|
|
this.arrivalPhoto = arrivalPhoto;
|
|
|
}
|
|
|
|
|
|
- public String getArrivalPhoto()
|
|
|
- {
|
|
|
+ public String getArrivalPhoto() {
|
|
|
return arrivalPhoto;
|
|
|
}
|
|
|
|
|
|
- public void setDepartTime(Date departTime)
|
|
|
- {
|
|
|
+ public void setDepartTime(Date departTime) {
|
|
|
this.departTime = departTime;
|
|
|
}
|
|
|
|
|
|
- public Date getDepartTime()
|
|
|
- {
|
|
|
+ public Date getDepartTime() {
|
|
|
return departTime;
|
|
|
}
|
|
|
|
|
|
- public void setDepartLatitude(BigDecimal departLatitude)
|
|
|
- {
|
|
|
+ public void setDepartLatitude(BigDecimal departLatitude) {
|
|
|
this.departLatitude = departLatitude;
|
|
|
}
|
|
|
|
|
|
- public BigDecimal getDepartLatitude()
|
|
|
- {
|
|
|
+ public BigDecimal getDepartLatitude() {
|
|
|
return departLatitude;
|
|
|
}
|
|
|
|
|
|
- public void setArrivalLatitude(BigDecimal arrivalLatitude)
|
|
|
- {
|
|
|
+ public void setArrivalLatitude(BigDecimal arrivalLatitude) {
|
|
|
this.arrivalLatitude = arrivalLatitude;
|
|
|
}
|
|
|
|
|
|
- public BigDecimal getArrivalLatitude()
|
|
|
- {
|
|
|
+ public BigDecimal getArrivalLatitude() {
|
|
|
return arrivalLatitude;
|
|
|
}
|
|
|
|
|
|
- public void setcOpenId(String cOpenId) {
|
|
|
- this.cOpenId = cOpenId;
|
|
|
- }
|
|
|
-
|
|
|
public JSONArray getcGoods() {
|
|
|
return cGoods;
|
|
|
}
|