package com.pj.tb_order;

import java.io.Serializable;
import java.util.*;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.EqualsAndHashCode;

import lombok.Data;
import lombok.experimental.Accessors;

/**
 * Model: tb_order -- 订单表
 * @author loovi
 */
@Data
@Accessors(chain = true)
@TableName(TbOrder.TABLE_NAME)
@EqualsAndHashCode(callSuper = false)
public class TbOrder extends Model<TbOrder> implements Serializable {

	// ---------- 模块常量 ----------
	/**
	 * 序列化版本id
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * 此模块对应的表名
	 */
	public static final String TABLE_NAME = "tb_order";
	/**
	 * 此模块对应的权限码
	 */
	public static final String PERMISSION_CODE = "tb-order";
	public static final String PERMISSION_CODE_ADD = "tb-order-add";
	public static final String PERMISSION_CODE_EDIT = "tb-order-edit";
	public static final String PERMISSION_CODE_DEL = "tb-order-del";




	// ---------- 表中字段 ----------
	/**
	 * 主键
	 */
	@TableId(type = IdType.AUTO)
	@JsonSerialize(using = ToStringSerializer.class)
	private Long id;

	private Integer cooperEntrustStatus;
	private Date cooperEntrustTime;
	/**
	 *
	 */
	@JsonSerialize(using = ToStringSerializer.class)
	private Long tradeAreaId;

	/**
	 *
	 */
	private String tradeAreaName;

	/**
	 *
	 */
	private String addressIds;

	/**
	 *
	 */
	private Long saleMainId;
	/**
	 *
	 */
	private Long groupId;

	/**
	 *  过审商品id[goodstransitid]
	 */
	private Long goodsId;

	/**
	 * 订单号
	 */
	private String tradeNo;

	/**
	 * 买家ID
	 */
	private Long buyUserId;

	/**
	 * 买家
	 */
	private String buyUserName;

	/**
	 * 购买用户类型(3=边民,2=组长)
	 */
	private String buyUserType;

	/**
	 * 商家ID
	 */
	private Long enterpriseId;

	/**
	 * 商家名称
	 */
	private String enterpriseName;

	/**
	 * 总重量
	 */
	private Double totalWeight;
	/**
	 * 单证代码
	 */
	private String preNo;
	/**
	 *进出口预申报
	 * 单
	 */
	private String preIeportNo;

	/**
	 * 总金额
	 */
	private Double totalPrice;

	/**
	 * 交易时间
	 */
	private Date tradeTime;

	/**
	 * 交易状态(0=未支付,1=已支付)
	 */
	private Integer tradeStatus;

	/**
	 * 边民或组长取消订单(0=未取消,1=已取消)
	 */
	private Integer cancelPeople;

	/**
	 * 支付方式(0=金融互助,1=现金刷卡)
	 */
	private Integer payType;

	/**
	 * 结算时间
	 */
	private String settleTime;

	/**
	 * 当前结算金额
	 */
	private Double realPrice;

	/**
	 * 应结金额
	 */
	private Double shouldPrice;

	/**
	 * 对账人
	 */
	private Long settleUserId;

	/**
	 * 对账人员
	 */
	private Long recordUserId;



	/**
	 * 对账时间
	 */
	private String recordTime;

	/**
	 * 是否对账(0=否,)
	 */
	private String record;

	/**
	 * 退款原因
	 */
	private String refundReason;

	/**
	 * 退款时间
	 */
	private String refundTime;

	/**
	 *
	 */
	private String receiveName;

	/**
	 *
	 */
	private String receivePhone;

	/**
	 *
	 */
	private String receiveAddress;

	/**
	 * 出互市区时间
	 */
	private String outTime;

	/**
	 * 商品名称字符串
	 */
	private String goodsNames;

	/**
	 * 是否申报
	 */
	private Integer apply;

	/**
	 * 申报时间
	 */
	private Date applyTime;

	/**
	 * 申报结果
	 */
	private String applyResult;

	/**
	 *
	 */
	private String applyFailReason;

	/**
	 * 分配方式(0=均分,1=自选数量)
	 */
	private String distribution;

	/**
	 * 一级市场边民确认状态(0=待确认,1=是)
	 */
	private Integer peopleConfirmStatus;
	/**
	 * 一级市场边民确认类型(1=刷脸,2=指纹)
	 */
	private Integer peopleConfirmType;
	/**
	 * 一级市场边民确认时间
	 */
	private Date peopleConfirmTime;

	/**
	 * 边民进口申报确认状态(0=待确认,1=是)
	 */
	private Integer applyConfirmStatus;
	/**
	 * 边民进口申报确认时间
	 */
	private Date applyConfirmTime;

	/**
	 * 一级市场商户确认(0=待确认,1=是)[j]
	 */
	private Integer enterpriseConfirm;

	/**
	 * 是否接单
	 */
	private String pick;

	/**
	 * 接单时间
	 */
	private Date pickTime;

	/**
	 *
	 */
	private Long shopId;

	/**
	 *
	 */
	private String shopName;

	/**
	 * 是否发货
	 */
	private Integer send;

	/**
	 * 发货时间
	 */
	private String sendTime;

	/**
	 * 对应合作社的拼单订单ID
	 */
	private Long collageOrdersId;

	/**
	 * 创建时间
	 */
	private Date createTime;

	/**
	 * 创建人编号
	 */
	private Long createBy;

	/**
	 * 创建人名称
	 */
	private String createName;

	/**
	 * 更新时间
	 */
	private Date updateTime;

	/**
	 * 更新人编号
	 */
	private Long updateBy;

	/**
	 * 更新人名称
	 */
	private String updateName;

	/**
	 * 删除状态(0=禁用,1=启用)
	 */
	private Integer deleteStatus;

	/**
	 * 订单状态(0=未完成,1=已完成)
	 */
	private Integer finishStatus;

	/**
	 * 申报单号
	 */
	private Long applyNo;

	/**
	 * 是否转售(0=未转售,1=已转售)
	 */
	private Integer resaleStatus;

	/**
	 * 叫车状态[默认是0=待叫车,1=已叫车,2=完成叫车]
	 */
	private Integer callCarStatus;


	/**
	 * 商品单位
	 */
	private String goodsUnit;
	/**
	 * 结算单号
	 */
	private String settleBillNo;

}
