package com.ruoyi.mall.domain;

import java.math.BigDecimal;
import java.util.List;

import com.ruoyi.mall.domain.vo.MallCartGoodsVO;
import com.ruoyi.mall.domain.vo.MallOrderGoodsVO;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 订单对象 mall_order_order
 *
 * @author chang
 * @date 2021-11-25
 */
@Setter
@Getter
@ToString
public class MallOrderOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderNo;

    /** 会员手机号 */
    @Excel(name = "会员手机号")
    private String phone;

    /** 会员ID */
    private Long userId;

    /** 邮费 */
    private BigDecimal postFee;

    /** 订单原价 */
    @Excel(name = "订单原价")
    private BigDecimal orderPrice;

    /** 订单类型（0-普通订单，1-秒杀订单，2-拼团订单） */
    @Excel(name = "订单类型",readConverterExp = "0=普通订单,1=秒杀订单，2=拼团订单")
    private Integer orderType;

    /** 实付金额 */
    @Excel(name = "实付金额")
    private BigDecimal payment;

    /** 订单状态0=待支付,1=带配送,2=配送中,3=已完成,5=退款中,6=退货成功,8=取消订单,10=待拼团,12=待审核 */
    @Excel(name = "订单状态",readConverterExp = "0=待支付,1=带配送,2=配送中,4=已完成,5=退款中,6=退货成功,8=取消订单,10=待拼团,12=待审核")
    private String status;

    /** 下单时间 */
    @Excel(name = "下单时间")
    private String createAt;

    /** 支付时间 */
    @Excel(name = "支付时间")
    private String payAt;

    /** 支付类型: 0=未支付,1=微信,2=支付宝,3=凭证支付 */
    @Excel(name = "支付类型",readConverterExp = "0=未支付,1=微信,2=支付宝,3=凭证支付")
    private String payType;

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

    /** 确认收货时间 */
    private String enterAt;

    /** 退货时间 */
    private String returnAt;

    /** 完成时间 */
    private String completeAt;

    /** 快递公司代号 */
    private String shippingMark;

    /** 物流名称 */
    private String shippingName;

    /** 物流单号 */
    private String shippingCode;

    /** 买家留言 */
    @Excel(name = "买家留言")
    private String buyerMsg;

    /** 是否申请退款0=不是,1=是 */
    @Excel(name = "是否申请退款",readConverterExp = "0=否,1=是")
    private String isRefund;

    /** 收件人 */
    private String receiverName;

    /** 电话 */
    private String receiverPhone;

    /** 省份 */
    private String receiverProvince;

    /** 城市 */
    private String receiverCity;

    /** 区县 */
    private String receiverArea;

    /** 地址 */
    private String receiverAddress;

    /** 年份 */
    private String year;

    /** 月份 */
    private String month;

    /** 年月日 */
    private String day;

    private MallOrderBack orderBack;

    /** 删除标记 0 正常 1 删除 */
    private String delFlag;

    /** 业务员id */
    private Integer salesmanId;

    /** 业务员名称 */
    private String salesmanName;

    /** 业务员电话 */
    private String salesmanPhone;

    /** 会员名称 */
    private Integer memberUserId;

    /** 会员名称 */
    private String memberUserName;

    private String isChangeAddress;

    private List<MallOrderGoodsVO> goodsVOList;

    private String memberUserPhone;

    /** 优惠券优惠金额 */
    private BigDecimal discountPrice;

    /** 订单详情总数 */
    private Integer totalCount;

    /** 订单详情总价 */
    private BigDecimal totalPrice;

    /** 拼团团队ID */
    private Long teamId;

    /** 配送方式：0-快递，1-自提 */
    private Integer deliveryType;

    /** 订单ID */
    private Long orderId;

    /** 退货原因 */
    private String reason;

    /** 退货金额*/
    private BigDecimal returnPrice;

    /** 合单号 */
    private String totalOrderSn;

    /** 所属店铺 */
    private Long shopId;

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

    /** 用户优惠券主键ID */
    private Long memberCouponId;

    /** 提成金额 */
    @Excel(name = "提成金额")
    private BigDecimal commissionPrice;

    /** 订单状态：0-未付款，1-已付款，2-待接单，3-待发货，4-已装车，5-已完成，8-已取消，9-退款中，10-退款成功 */
    @Excel(name = "订单状态：0-未付款，1-已付款，2-待接单，3-待发货，4-已装车，5-已完成，8-已取消，9-退款中，10-退款成功")
    private String orderStatus;

    /** 是否支付：0-未支付，1-已支付 */
    @Excel(name = "是否支付：0-未支付，1-已支付")
    private String isPay;

    /** 是否上传凭证：0-未上传，1-已上传 */
    @Excel(name = "是否上传凭证：0-未上传，1-已上传")
    private String isProof;

    /** 支付凭证 */
    @Excel(name = "支付凭证")
    private String payProof;

    /** 是否装车：0-未装车，1-已装车 */
    @Excel(name = "是否装车：0-未装车，1-已装车")
    private String isCar;

    /** 装车视频 */
    @Excel(name = "装车视频")
    private String carVideo;

    /** 管理是否审核：0-未审核，1-已审核 */
    @Excel(name = "管理是否审核：0-未审核，1-已审核")
    private String isExamine;

    /** 审核时间 */
    @Excel(name = "审核时间")
    private String examineAt;

    /** 财务是否审核：0-未审核，1-已审核 */
    @Excel(name = "财务是否审核：0-未审核，1-已审核")
    private String isFinance;

    /** 财务审核时间 */
    @Excel(name = "财务审核时间")
    private String financeExamineAt;

    /** 接单时间 */
    @Excel(name = "接单时间")
    private String receiveAt;

    /** 装车时间 */
    @Excel(name = "装车时间")
    private String carAt;

    /** 分公司管理员ID */
    @Excel(name = "分公司管理员ID")
    private Long companyManageId;

    /** 仓库管理员ID */
    @Excel(name = "仓库管理员ID")
    private Long warehouseManageId;

    /** 财务ID */
    @Excel(name = "财务ID")
    private Long financeId;

    /** 备注 */
    @Excel(name = "备注")
    private String remarks;
    /** 积分 */
    @Excel(name = "积分")
    private BigDecimal integral;

    /**
     * 剩余可退货金额
     */
    private BigDecimal returnablePrice;

}
