package com.miaxis.wx.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.miaxis.common.annotation.Excel;
import com.miaxis.common.core.domain.BaseBusinessEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

/**
 * 订单表 film_order
 *
 * @author miaxis
 * @date 2021-05-07
 */
@Data
@TableName("wx_js_order")
@ApiModel(value = "WxJsOrder", description = "微信订单对象 wx_js_order")
public class WxJsOrder extends BaseBusinessEntity{
    private static final long serialVersionUID = 1L;

    /** id */
    @TableId(value = "id")
    @ApiModelProperty(value = "id")
    private Long id;

    /** 商品id */
    @Excel(name = "商品id")
    @TableField("goods_id")
    @ApiModelProperty(value = "商品id")
    private Long goodsId;


    /** 商品名称 */
    @Excel(name = "商品名称")
    @TableField("goods_name")
    @ApiModelProperty(value = "商品名称")
    private String goodsName;

    /** 商品类型 */
    @Excel(name = "商品类型")
    @TableField("goods_type")
    @ApiModelProperty(value = "商品类型")
    private Integer goodsType;


    /** 用户id */
    @Excel(name = "用户id")
    @TableField("user_id")
    @ApiModelProperty(value = "用户id")
    private Long userId;

    /** 用户登录名 */
    @Excel(name = "用户登录名")
    @TableField("logincode")
    @ApiModelProperty(value = "用户登录名")
    private String logincode;

    /** 用户姓名 */
    @Excel(name = "用户姓名")
    @TableField("user_name")
    @ApiModelProperty(value = "用户姓名")
    private String userName;


    /** 商户订单号 */
    @TableField("out_trade_no")
    @ApiModelProperty(value = "商户订单号")
    private String outTradeNo;

    /** 退款单号 */
    @TableField("out_refund_no")
    @ApiModelProperty(value = "退款单号")
    private String outRefundNo;

    /** 退款原因 */
    @TableField("refund_reason")
    @ApiModelProperty(value = "退款原因")
    private String refundReason;


    /** 微信支付系统生成的订单号 */
    @TableField("transaction_id")
    @ApiModelProperty(value = "微信支付系统生成的订单号")
    private String transactionId;

    /** 交易类型，枚举值 */
    @Excel(name = "交易类型，枚举值")
    @TableField("trade_type")
    @ApiModelProperty(value = "交易类型，枚举值")
    private String tradeType;

    /** 交易状态，枚举值：
        SUCCESS：支付成功
        REFUND：转入退款
        NOTPAY：未支付
        CLOSED：已关闭
        REVOKED：已撤销（付款码支付）
        USERPAYING：用户支付中（付款码支付）
        PAYERROR：支付失败(其他原因，如银行返回失败)
        ACCEPT：已接收，等待扣款 */
    @TableField("trade_state")
    @ApiModelProperty(value = "交易状态，枚举值： SUCCESS：支付成功 REFUND：转入退款 NOTPAY：" +
            "未支付 CLOSED：已关闭 REVOKED：已撤销（付款码支付） " +
            "USERPAYING：用户支付中（付款码支付） PAYERROR：支付失败(其他原因，如银行返回失败) ACCEPT：已接收，等待扣款")
    private String tradeState;
    /** 交易状态描述 */
    @Excel(name = "交易状态描述")
    @TableField("trade_state_desc")
    @ApiModelProperty(value = "交易状态描述")
    private String tradeStateDesc;

    /** 银行类型 */
    @Excel(name = "银行类型")
    @TableField("bank_type")
    @ApiModelProperty(value = "银行类型")
    private String bankType;

    /** 附加数据 */
    @Excel(name = "附加数据")
    @TableField("attach")
    @ApiModelProperty(value = "附加数据")
    private String attach;

    /** 支付完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "支付完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField("success_time")
    @ApiModelProperty(value = "支付完成时间")
    private Date successTime;


    /** 订单总金额，单位为分。 */
    @Excel(name = "订单总金额，单位为分。")
    @TableField("total")
    @ApiModelProperty(value = "订单总金额，单位为分。")
    private Integer total;

    /** 用户支付金额，单位为分。 */
    @Excel(name = "用户支付金额，单位为分。")
    @TableField("payer_total")
    @ApiModelProperty(value = "用户支付金额，单位为分。")
    private Integer payerTotal;

    /** CNY：人民币，境内商户号仅支持人民币。 */
    @Excel(name = "CNY：人民币，境内商户号仅支持人民币。")
    @TableField("currency")
    @ApiModelProperty(value = "CNY：人民币，境内商户号仅支持人民币。")
    private String currency;

    /** 用户支付币种 */
    @Excel(name = "用户支付币种")
    @TableField("payer_currency")
    @ApiModelProperty(value = "用户支付币种")
    private String payerCurrency;


    /** 订单状态 */
    @Excel(name = "订单数据详情")
    @TableField("order_status")
    @ApiModelProperty(value = "订单状态: 1 -进行中 2-购买成功 3-购买失败")
    private String orderStatus;

    /** 地区编号 */
    @Excel(name = "地区编号")
    @TableField("dqbh")
    @ApiModelProperty(value = "地区编号")
    private String dqbh;

    /** 地区名称 */
    @Excel(name = "地区名称")
    @TableField("dqmc")
    @ApiModelProperty(value = "地区名称")
    private String dqmc;


    /** 是否分成 */
    @Excel(name = "是否分成给驾校 0:不分成  1:分成")
    @TableField("is_share")
    @ApiModelProperty(value = "是否分成给驾校 0:不分成  1:分成")
    private int isShare;

    /** 驾校编号 */
    @Excel(name = "驾校编号")
    @TableField("school")
    @ApiModelProperty(value = "驾校编号")
    private String school;

    /** 驾校名称 */
    @Excel(name = "驾校名称")
    @TableField("school_name")
    @ApiModelProperty(value = "驾校名称")
    private String schoolName;

    /** 驾校提成 */
    @Excel(name = "驾校提成")
    @TableField("school_commission")
    @ApiModelProperty(value = "驾校提成")
    private Integer schoolCommission;

    /** 手机类型 1:苹果 2:安卓 */
    @Excel(name = "手机类型 1:苹果 2:安卓")
    @TableField("phone_type")
    @ApiModelProperty(value = "手机类型 1:苹果 2:安卓")
    private Integer phoneType;

    /** 该用户创建人ID */
    @Excel(name = "该用户创建人ID")
    @TableField("create_id")
    @ApiModelProperty(value = "该用户创建人ID")
    private Long createId;

}
