package com.doumee.dao.business.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 运营中心订单列表项(管理端报表 - 运营中心订单查询出参元素)。
*
车型相关字段按订单状态区分取数:
*
* - 进行中(status=1):bikeType/rentDate 取该订单"骑行中"骑行记录(member_rides.type 为 0自行车/1电车),
* paramName 取骑行记录的车型(member_rides.param_id→base_param.name)
* - 已结算(status=4):bikeType/rentDate 取该订单关联骑行记录,
* paramName 取订单结算车型(goodsorder.param_id→base_param.name)
*
*
* @author rk
* @date 2026/06/26
*/
@Data
@ApiModel("运营中心订单列表项")
public class OperationOrderVO {
@ApiModelProperty(value = "订单主键 goodsorder.id")
private String id;
@ApiModelProperty(value = "订单编号 goodsorder.code")
private String code;
@ApiModelProperty(value = "订单类型 0自行车 1电车(来自骑行记录 member_rides.type)")
private Integer bikeType;
@ApiModelProperty(value = "用户手机号 member.phone")
private String phone;
@ApiModelProperty(value = "骑行开始时间(member_rides.rent_date)")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date rentDate;
@ApiModelProperty(value = "结算时间(goodsorder.close_date;进行中为 null)")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date closeDate;
@ApiModelProperty(value = "结算车型(base_param.name;进行中取骑行车型,已结算取订单结算车型)")
private String paramName;
@ApiModelProperty(value = "车辆编号(member_rides.bike_code,最近一条骑行记录;=bikes.code;进行中即当前车,已完结即最后车)")
private String bikeCode;
/** 订单状态(内部承载,仅用于取数分支判断,不返回前端) */
@JsonIgnore
@ApiModelProperty(value = "订单状态(内部承载,不返回前端;1进行中/4已完结,用于车型名取数分支判断)", hidden = true)
private Integer orderStatus;
/** 结算车型名(内部承载,分页 left join base_param 取得,不返回前端) */
@JsonIgnore
@ApiModelProperty(value = "结算车型名(内部承载,不返回前端;分页 left join base_param 取得,已结算订单回填 paramName 用)", hidden = true)
private String settleParamName;
}