package com.shanghaichengdi.ghjgitem.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;

/**
 * 用户基础信息表（从综合业务平台同步的用户信息）
 * @TableName SYS_USER
 */
@TableName(value ="SYS_USER")
@Data
public class SysUser implements Serializable {
    /**
     * 
     */
    @TableId(value = "ID")
    private Long id;

    /**
     * 
     */
    @TableField(value = "USERID")
    private String userid;

    /**
     * 
     */
    @TableField(value = "USERNAME")
    private String username;

    /**
     * 岗位
     */
    @TableField(value = "DESCRIPTION")
    private String description;

    /**
     * 
     */
    @TableField(value = "PASSWORD")
    private String password;

    /**
     * 
     */
    @TableField(value = "SALT")
    private String salt;

    /**
     * 
     */
    @TableField(value = "EMAIL")
    private String email;

    /**
     * 
     */
    @TableField(value = "MOBILE")
    private String mobile;

    /**
     * 
     */
    @TableField(value = "STATUS")
    private String status;

    /**
     * 
     */
    @TableField(value = "MAX_ONLINE")
    private Integer maxOnline;

    /**
     * 
     */
    @TableField(value = "TIMEOUT")
    private Long timeout;

    /**
     * 
     */
    @TableField(value = "VALID_TIME_BEGIN")
    private Date validTimeBegin;

    /**
     * 
     */
    @TableField(value = "VALID_TIME_END")
    private Date validTimeEnd;

    /**
     * 
     */
    @TableField(value = "CREATE_TIME")
    private Date createTime;

    /**
     * 
     */
    @TableField(value = "UPDATE_TIME")
    private Date updateTime;

    /**
     * 
     */
    @TableField(value = "DELETED")
    private Integer deleted;

    /**
     * 
     */
    @TableField(value = "AVAILABLE")
    private Integer available;

    /**
     * 
     */
    @TableField(value = "ACCESS_IP_RESTRICT")
    private Integer accessIpRestrict;

    /**
     * 
     */
    @TableField(value = "ADMIN")
    private Integer admin;

    /**
     * 
     */
    @TableField(value = "PASS_VALID_TIME")
    private Date passValidTime;

    /**
     * 
     */
    @TableField(value = "PASS_ERROR_COUNT")
    private Integer passErrorCount;

    /**
     * 
     */
    @TableField(value = "PROPERTY3")
    private String property3;

    /**
     * 
     */
    @TableField(value = "PROPERTY4")
    private String property4;

    /**
     * 
     */
    @TableField(value = "PROPERTY5")
    private String property5;

    /**
     * 身份证号
     */
    @TableField(value = "PROPERTY6")
    private String property6;

    /**
     * 
     */
    @TableField(value = "PROPERTY7")
    private String property7;

    /**
     * 
     */
    @TableField(value = "PROPERTY8")
    private String property8;

    /**
     * 社会统一信用代码
     */
    @TableField(value = "PROPERTY9")
    private String property9;

    /**
     * 级别
     */
    @TableField(value = "PROPERTY10")
    private String property10;

    /**
     * 
     */
    @TableField(value = "PROPERTY1")
    private String property1;

    /**
     * 
     */
    @TableField(value = "PROPERTY2")
    private String property2;

    /**
     * 
     */
    @TableField(value = "CA_ACCESS_KEY")
    private String caAccessKey;

    /**
     * 所属用户组编号，复数个的场合用,分隔
     */
    @TableField(value = "GROUP_IDS")
    private String groupIds;

    /**
     * 所属机构编号
     */
    @TableField(value = "ORGANIZATION_IDS")
    private String organizationIds;

    /**
     * 所属机构名称
     */
    @TableField(value = "ORGANIZATION_NAME")
    private String organizationName;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        SysUser other = (SysUser) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getUserid() == null ? other.getUserid() == null : this.getUserid().equals(other.getUserid()))
            && (this.getUsername() == null ? other.getUsername() == null : this.getUsername().equals(other.getUsername()))
            && (this.getDescription() == null ? other.getDescription() == null : this.getDescription().equals(other.getDescription()))
            && (this.getPassword() == null ? other.getPassword() == null : this.getPassword().equals(other.getPassword()))
            && (this.getSalt() == null ? other.getSalt() == null : this.getSalt().equals(other.getSalt()))
            && (this.getEmail() == null ? other.getEmail() == null : this.getEmail().equals(other.getEmail()))
            && (this.getMobile() == null ? other.getMobile() == null : this.getMobile().equals(other.getMobile()))
            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
            && (this.getMaxOnline() == null ? other.getMaxOnline() == null : this.getMaxOnline().equals(other.getMaxOnline()))
            && (this.getTimeout() == null ? other.getTimeout() == null : this.getTimeout().equals(other.getTimeout()))
            && (this.getValidTimeBegin() == null ? other.getValidTimeBegin() == null : this.getValidTimeBegin().equals(other.getValidTimeBegin()))
            && (this.getValidTimeEnd() == null ? other.getValidTimeEnd() == null : this.getValidTimeEnd().equals(other.getValidTimeEnd()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
            && (this.getDeleted() == null ? other.getDeleted() == null : this.getDeleted().equals(other.getDeleted()))
            && (this.getAvailable() == null ? other.getAvailable() == null : this.getAvailable().equals(other.getAvailable()))
            && (this.getAccessIpRestrict() == null ? other.getAccessIpRestrict() == null : this.getAccessIpRestrict().equals(other.getAccessIpRestrict()))
            && (this.getAdmin() == null ? other.getAdmin() == null : this.getAdmin().equals(other.getAdmin()))
            && (this.getPassValidTime() == null ? other.getPassValidTime() == null : this.getPassValidTime().equals(other.getPassValidTime()))
            && (this.getPassErrorCount() == null ? other.getPassErrorCount() == null : this.getPassErrorCount().equals(other.getPassErrorCount()))
            && (this.getProperty3() == null ? other.getProperty3() == null : this.getProperty3().equals(other.getProperty3()))
            && (this.getProperty4() == null ? other.getProperty4() == null : this.getProperty4().equals(other.getProperty4()))
            && (this.getProperty5() == null ? other.getProperty5() == null : this.getProperty5().equals(other.getProperty5()))
            && (this.getProperty6() == null ? other.getProperty6() == null : this.getProperty6().equals(other.getProperty6()))
            && (this.getProperty7() == null ? other.getProperty7() == null : this.getProperty7().equals(other.getProperty7()))
            && (this.getProperty8() == null ? other.getProperty8() == null : this.getProperty8().equals(other.getProperty8()))
            && (this.getProperty9() == null ? other.getProperty9() == null : this.getProperty9().equals(other.getProperty9()))
            && (this.getProperty10() == null ? other.getProperty10() == null : this.getProperty10().equals(other.getProperty10()))
            && (this.getProperty1() == null ? other.getProperty1() == null : this.getProperty1().equals(other.getProperty1()))
            && (this.getProperty2() == null ? other.getProperty2() == null : this.getProperty2().equals(other.getProperty2()))
            && (this.getCaAccessKey() == null ? other.getCaAccessKey() == null : this.getCaAccessKey().equals(other.getCaAccessKey()))
            && (this.getGroupIds() == null ? other.getGroupIds() == null : this.getGroupIds().equals(other.getGroupIds()))
            && (this.getOrganizationIds() == null ? other.getOrganizationIds() == null : this.getOrganizationIds().equals(other.getOrganizationIds()))
            && (this.getOrganizationName() == null ? other.getOrganizationName() == null : this.getOrganizationName().equals(other.getOrganizationName()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getUserid() == null) ? 0 : getUserid().hashCode());
        result = prime * result + ((getUsername() == null) ? 0 : getUsername().hashCode());
        result = prime * result + ((getDescription() == null) ? 0 : getDescription().hashCode());
        result = prime * result + ((getPassword() == null) ? 0 : getPassword().hashCode());
        result = prime * result + ((getSalt() == null) ? 0 : getSalt().hashCode());
        result = prime * result + ((getEmail() == null) ? 0 : getEmail().hashCode());
        result = prime * result + ((getMobile() == null) ? 0 : getMobile().hashCode());
        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
        result = prime * result + ((getMaxOnline() == null) ? 0 : getMaxOnline().hashCode());
        result = prime * result + ((getTimeout() == null) ? 0 : getTimeout().hashCode());
        result = prime * result + ((getValidTimeBegin() == null) ? 0 : getValidTimeBegin().hashCode());
        result = prime * result + ((getValidTimeEnd() == null) ? 0 : getValidTimeEnd().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getDeleted() == null) ? 0 : getDeleted().hashCode());
        result = prime * result + ((getAvailable() == null) ? 0 : getAvailable().hashCode());
        result = prime * result + ((getAccessIpRestrict() == null) ? 0 : getAccessIpRestrict().hashCode());
        result = prime * result + ((getAdmin() == null) ? 0 : getAdmin().hashCode());
        result = prime * result + ((getPassValidTime() == null) ? 0 : getPassValidTime().hashCode());
        result = prime * result + ((getPassErrorCount() == null) ? 0 : getPassErrorCount().hashCode());
        result = prime * result + ((getProperty3() == null) ? 0 : getProperty3().hashCode());
        result = prime * result + ((getProperty4() == null) ? 0 : getProperty4().hashCode());
        result = prime * result + ((getProperty5() == null) ? 0 : getProperty5().hashCode());
        result = prime * result + ((getProperty6() == null) ? 0 : getProperty6().hashCode());
        result = prime * result + ((getProperty7() == null) ? 0 : getProperty7().hashCode());
        result = prime * result + ((getProperty8() == null) ? 0 : getProperty8().hashCode());
        result = prime * result + ((getProperty9() == null) ? 0 : getProperty9().hashCode());
        result = prime * result + ((getProperty10() == null) ? 0 : getProperty10().hashCode());
        result = prime * result + ((getProperty1() == null) ? 0 : getProperty1().hashCode());
        result = prime * result + ((getProperty2() == null) ? 0 : getProperty2().hashCode());
        result = prime * result + ((getCaAccessKey() == null) ? 0 : getCaAccessKey().hashCode());
        result = prime * result + ((getGroupIds() == null) ? 0 : getGroupIds().hashCode());
        result = prime * result + ((getOrganizationIds() == null) ? 0 : getOrganizationIds().hashCode());
        result = prime * result + ((getOrganizationName() == null) ? 0 : getOrganizationName().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", userid=").append(userid);
        sb.append(", username=").append(username);
        sb.append(", description=").append(description);
        sb.append(", password=").append(password);
        sb.append(", salt=").append(salt);
        sb.append(", email=").append(email);
        sb.append(", mobile=").append(mobile);
        sb.append(", status=").append(status);
        sb.append(", maxOnline=").append(maxOnline);
        sb.append(", timeout=").append(timeout);
        sb.append(", validTimeBegin=").append(validTimeBegin);
        sb.append(", validTimeEnd=").append(validTimeEnd);
        sb.append(", createTime=").append(createTime);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", deleted=").append(deleted);
        sb.append(", available=").append(available);
        sb.append(", accessIpRestrict=").append(accessIpRestrict);
        sb.append(", admin=").append(admin);
        sb.append(", passValidTime=").append(passValidTime);
        sb.append(", passErrorCount=").append(passErrorCount);
        sb.append(", property3=").append(property3);
        sb.append(", property4=").append(property4);
        sb.append(", property5=").append(property5);
        sb.append(", property6=").append(property6);
        sb.append(", property7=").append(property7);
        sb.append(", property8=").append(property8);
        sb.append(", property9=").append(property9);
        sb.append(", property10=").append(property10);
        sb.append(", property1=").append(property1);
        sb.append(", property2=").append(property2);
        sb.append(", caAccessKey=").append(caAccessKey);
        sb.append(", groupIds=").append(groupIds);
        sb.append(", organizationIds=").append(organizationIds);
        sb.append(", organizationName=").append(organizationName);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}