package cn.pluss.platform.entity;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 银盛一码多户的商户进件记录
 * </p>
 *
 * @author Djh
 * @since 2022-06-15
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_pluss_jft_merc_payment_channel")
public class JftMercPaymentChannel implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;


    /**
     * 用户id
     */
    @TableField("userId")
    private Long userId;


    /**
     * M800商编
     */
    @TableField("merchantCode")
    private String merchantCode;


    /**
     * 通道商编
     */
    @TableField("merchantId")
    private String merchantId;


    /**
     * 进件状态。0或无、待审核，1、审核中 2、审核失败 3、审核通过
     */
    @TableField("status")
    private String status;

    @TableField(exist = false)
    private String statusDesc;

    public String getStatusDesc() {
        switch (status) {
            case "0":
                statusDesc = "未提交";
                break;
            case "1":
                statusDesc = "审核中";
                break;
            case "2":
                statusDesc = "审核不通过";
                break;
            case "3":
                statusDesc = "已开通";
                break;
            default:
                break;
        }

        return statusDesc;
    }

    /**
     * 第三方进件状态，与具体code与对应通道相关
     */
    @TableField("thirdStatus")
    private String thirdStatus;


    /**
     * 驳回理由
     */
    @TableField("remark")
    private String remark;


    /**
     * 创建时间，即第一次请求开通时间
     */
    @TableField(value = "createTime", fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 创建时间，即第一次请求开通时间 开始时间
     */
    @TableField(exist = false, condition = "createTime &gt; #{%s}")
    private Date createTimeStart;

    /**
     * 创建时间，即第一次请求开通时间 截止时间
     */
    @TableField(exist = false, condition = "createTime &lt; #{%s}")
    private Date createTimeEnd;

    /**
     * 通过时间
     */
    @TableField("passTime")
    private Date passTime;

    /**
     * 通过时间 开始时间
     */
    @TableField(exist = false, condition = "passTime &gt; #{%s}")
    private Date passTimeStart;

    /**
     * 通过时间 截止时间
     */
    @TableField(exist = false, condition = "passTime &lt; #{%s}")
    private Date passTimeEnd;

    /**
     * 数据最后更新时间
     */
    @TableField(value = "updateTime", fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    /**
     * 数据最后更新时间 开始时间
     */
    @TableField(exist = false, condition = "updateTime &gt; #{%s}")
    private Date updateTimeStart;

    /**
     * 数据最后更新时间 截止时间
     */
    @TableField(exist = false, condition = "updateTime &lt; #{%s}")
    private Date updateTimeEnd;

    /**
     * 业务id
     */
    @TableField("applicationId")
    private String applicationId;


    /**
     * json参数
     */
    @TableField("extra")
    private JSONObject extra;


    /**
     * 通道商户名称
     */
    @TableField(value = "mercName", insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER)
    private String mercName;

    public boolean isPayment() {
        boolean flag = false;
        if ("3".equals(this.getStatus()) || "4".equals(this.getStatus()) || "6".equals(this.getStatus())) {
            flag = true;
        }
        return flag;
    }
}