| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671 |
- package com.ylx.massage.domain;
- import com.alibaba.fastjson.JSONArray;
- import com.baomidou.mybatisplus.annotation.TableField;
- import com.baomidou.mybatisplus.annotation.TableId;
- import com.baomidou.mybatisplus.annotation.TableLogic;
- import com.baomidou.mybatisplus.annotation.TableName;
- import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
- import com.fasterxml.jackson.annotation.JsonFormat;
- import com.fasterxml.jackson.annotation.JsonProperty;
- import com.ylx.common.annotation.Excel;
- import io.swagger.annotations.ApiModel;
- import io.swagger.annotations.ApiModelProperty;
- import lombok.*;
- import lombok.experimental.Accessors;
- import java.io.Serializable;
- import java.math.BigDecimal;
- 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 = "订单实体类")
- public class TOrder implements Serializable {
- private static final long serialVersionUID = 1L;
- /**
- * 订单ID
- * 主键,唯一标识订单记录
- */
- @TableId("c_id")
- @ApiModelProperty("订单ID")
- private String cId;
- /**
- * 订单号
- * 系统生成的唯一订单编号,用于订单查询和标识
- */
- @Excel(name = "订单号")
- @TableField("order_no")
- @ApiModelProperty("订单号")
- private String orderNo;
- /**
- * 父订单号
- * 用于升级订单场景,记录原订单号
- */
- @TableField("parent_no")
- @ApiModelProperty("父订单号")
- private String parentNo;
- /**
- * 支付类型
- * 1-微信支付 2-余额支付 3-现金支付
- */
- @TableField("pay_type")
- @ApiModelProperty("支付类型:1微信支付 2:余额支付 3:现金支付")
- private Integer payType;
- /**
- * 订单类型
- * 0-普通订单 1-加钟订单 2-升级订单
- */
- @TableField("order_type")
- @ApiModelProperty("订单类型:0普通订单,1加钟订单,2升级订单")
- private Integer orderType;
- /**
- * 是否为虚拟技师订单
- * 0-否 1-是
- */
- @TableField("virtual_order_flag")
- @ApiModelProperty("是否为虚拟技师订单:0否,1是")
- private Integer virtualOrderFlag;
- /**
- * 虚拟技师订单分配情况(0:真实订单 1:未分配 2:已分配)
- */
- @TableField("virtual_order_allocation")
- @ApiModelProperty("虚拟技师订单分配情况(0:真实订单 1:未分配 2:已分配)")
- private Integer virtualOrderAllocation;
- /**
- * 技师ID
- */
- @TableField("c_js_id")
- @ApiModelProperty("技师ID")
- private String cJsId;
- /**
- * 老技师ID
- * 用于记录原技师信息,在换技师场景下使用
- */
- @TableField("old_js_id")
- @ApiModelProperty("老技师ID")
- private String oldJsId;
- /**
- * 超时原因
- * 订单超时的原因说明
- */
- @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;
- /**
- * 优惠金额
- * 使用优惠券或其他优惠减免的金额
- */
- @TableField("preferential")
- @ApiModelProperty("优惠金额")
- private BigDecimal preferential;
- /**
- * 差价
- * 升级订单时,需要补交的差价金额
- */
- @TableField("price_difference")
- @ApiModelProperty("差价")
- private BigDecimal priceDifference;
- /**
- * 用户OpenID
- * 微信用户的唯一标识
- */
- @TableField("c_open_id")
- @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("地址名称")
- 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;
- @TableField(exist = false)
- private String startTimeStr;
- /**
- * 结束时间
- * 技师完成服务的时间
- */
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
- @ApiModelProperty("结束时间")
- private LocalDateTime endTime;
- @TableField(exist = false)
- private String endTimeStr;
- /**
- * 拒接原因
- * 技师拒绝接单的原因说明
- */
- @ApiModelProperty("拒接原因")
- private String reasonRefusal;
- /**
- * 领取优惠券ID
- * 使用的优惠券记录ID
- */
- @TableField("coupon_receive_id")
- @ApiModelProperty("领取优惠券ID")
- private String couponReceiveId;
- /**
- * 订单明细
- * JSON格式,包含服务项目的详细信息
- */
- @TableField(value = "c_goods", typeHandler = FastjsonTypeHandler.class)
- @ApiModelProperty("订单明细")
- private JSONArray cGoods;
- /**
- * 订单金额
- * 服务项目的基础金额总和
- */
- @TableField("d_total_money")
- @ApiModelProperty("订单金额")
- private BigDecimal dTotalMoney;
- /**
- * 总价
- * 订单最终金额 = 订单金额 + 车费 - 优惠金额
- */
- @Excel(name = "订单金额")
- @TableField("total_price")
- @ApiModelProperty("总价")
- private BigDecimal totalPrice;
- /**
- * 订单状态
- * -1-待付款 0-待接单 1-已接单 2-已到达 3-服务中 4-待评价(已完成)
- * 5-已完成(已评价) 6-已出发 -2-已取消 -3-已拒绝
- * 6:退单待审核 7:退单审核通过
- */
- @TableField("n_status")
- @ApiModelProperty("订单状态: -1待付款 0待接单 1已接单 6已出发 2已到达 3服务中 4待评价 5已完成 6:退单待审核 7:退单审核通过 -2已取消 -3已拒绝")
- private Integer nStatus;
- /**
- * 备注地址
- * 地址的补充说明或地标信息
- */
- @ApiModelProperty("备注地址")
- private String atlasAdd;
- /**
- * 地址
- * 用户提供的服务地址(冗余字段)
- */
- @TableField("c_address")
- @ApiModelProperty("地址")
- private String cAddress;
- /**
- * 用户姓名
- * 下单用户的真实姓名
- */
- @Excel(name = "用户姓名")
- @TableField("c_name")
- @ApiModelProperty("用户姓名")
- private String cName;
- /**
- * 用户电话
- * 下单用户的联系电话
- */
- @Excel(name = "用户电话")
- @TableField("c_phone")
- @ApiModelProperty("用户电话")
- private String cPhone;
- /**
- * 备注
- * 用户填写的订单备注信息
- */
- @TableField("c_note")
- @ApiModelProperty("备注")
- private String cNote;
- /**
- * 支付截止时间
- * 订单需要完成支付的截止时间
- */
- @TableField("c_time")
- @ApiModelProperty("支付截止时间")
- private String cTime;
- /**
- * 推荐者ID
- * 推荐用户的OpenID,用于分销统计
- */
- @TableField("c_tj_open_id")
- @ApiModelProperty("推荐者ID")
- private String cTjOpenId;
- /**
- * 部门ID
- * 订单所属的部门/城市标识
- */
- @TableField("dept_id")
- @ApiModelProperty("部门ID")
- private String deptId;
- /**
- * 部门名称
- * 订单所属的城市名称
- */
- @TableField("dept_name")
- @ApiModelProperty("部门名称")
- private String deptName;
- /**
- * 创建时间
- * 订单创建的时间
- */
- @Excel(name = "创建时间")
- @TableField("dt_create_time")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
- @ApiModelProperty("创建时间")
- private LocalDateTime dtCreateTime;
- /**
- * 逻辑删除标记
- * 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;
- /**
- * 技师姓名
- * 非数据库字段,用于关联查询技师姓名
- */
- @Excel(name = "技师姓名")
- @TableField(exist = false)
- @ApiModelProperty("技师姓名")
- private String jsName;
- /**
- * 技师昵称
- * 非数据库字段,用于关联查询技师昵称
- */
- @TableField(exist = false)
- @ApiModelProperty("技师昵称")
- @JsonProperty("cNickName")
- private String cNickName;
- /**
- * 技师电话
- * 非数据库字段,用于关联查询技师电话
- */
- @Excel(name = "技师电话")
- @TableField(exist = false)
- @ApiModelProperty("技师电话")
- private String jsPhone;
- /**
- * 用户信息
- * 非数据库字段,用于关联查询微信用户信息
- */
- @TableField(exist = false)
- @ApiModelProperty("用户信息")
- private TWxUser wxUser;
- /**
- * 订单状态名称
- * 非数据库字段,用于展示订单状态的文本描述
- */
- @TableField(exist = false)
- @Excel(name = "订单状态")
- @ApiModelProperty("订单状态名称")
- private String statusName;
- public String getcId() {
- return cId;
- }
- public void setcId(String cId) {
- this.cId = cId;
- }
- public String getcJsId() {
- return cJsId;
- }
- public void setcJsId(String cJsId) {
- this.cJsId = cJsId;
- }
- public String getcOpenId() {
- return cOpenId;
- }
- public void setcOpenId(String cOpenId) {
- this.cOpenId = cOpenId;
- }
- public void setDepartLongitude(BigDecimal departLongitude) {
- this.departLongitude = departLongitude;
- }
- public BigDecimal getDepartLongitude() {
- return departLongitude;
- }
- public void setArrivalLongitude(BigDecimal arrivalLongitude) {
- this.arrivalLongitude = arrivalLongitude;
- }
- public BigDecimal getArrivalLongitude() {
- return arrivalLongitude;
- }
- public void setArrivalPhoto(String arrivalPhoto) {
- this.arrivalPhoto = arrivalPhoto;
- }
- public String getArrivalPhoto() {
- return arrivalPhoto;
- }
- public void setDepartTime(Date departTime) {
- this.departTime = departTime;
- }
- public Date getDepartTime() {
- return departTime;
- }
- public void setDepartLatitude(BigDecimal departLatitude) {
- this.departLatitude = departLatitude;
- }
- public BigDecimal getDepartLatitude() {
- return departLatitude;
- }
- public void setArrivalLatitude(BigDecimal arrivalLatitude) {
- this.arrivalLatitude = arrivalLatitude;
- }
- public BigDecimal getArrivalLatitude() {
- return arrivalLatitude;
- }
- public JSONArray getcGoods() {
- return cGoods;
- }
- public void setcGoods(JSONArray cGoods) {
- this.cGoods = cGoods;
- }
- public BigDecimal getdTotalMoney() {
- return dTotalMoney;
- }
- public void setdTotalMoney(BigDecimal dTotalMoney) {
- this.dTotalMoney = dTotalMoney;
- }
- public Integer getnStatus() {
- return nStatus;
- }
- public void setnStatus(Integer nStatus) {
- this.nStatus = nStatus;
- }
- public String getcAddress() {
- return cAddress;
- }
- public void setcAddress(String cAddress) {
- this.cAddress = cAddress;
- }
- public String getcName() {
- return cName;
- }
- public void setcName(String cName) {
- this.cName = cName;
- }
- public String getcPhone() {
- return cPhone;
- }
- public void setcPhone(String cPhone) {
- this.cPhone = cPhone;
- }
- public String getcNote() {
- return cNote;
- }
- public void setcNote(String cNote) {
- this.cNote = cNote;
- }
- public String getcTime() {
- return cTime;
- }
- public void setcTime(String cTime) {
- this.cTime = cTime;
- }
- public String getcTjOpenId() {
- return cTjOpenId;
- }
- public void setcTjOpenId(String cTjOpenId) {
- this.cTjOpenId = cTjOpenId;
- }
- public LocalDateTime getDtCreateTime() {
- return dtCreateTime;
- }
- public void setDtCreateTime(LocalDateTime dtCreateTime) {
- this.dtCreateTime = dtCreateTime;
- }
- public TJs getJs() {
- return js;
- }
- public void setJs(TJs js) {
- this.js = js;
- }
- public TWxUser getWxUser() {
- return wxUser;
- }
- public void setWxUser(TWxUser wxUser) {
- this.wxUser = wxUser;
- }
- }
|