package com.ssm.manage.entity;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;

@Table(name = "sys_user")
public class SysUser implements Serializable {
    /**
     * 主键ID
     */
    @Id
    private Long id;

    /**
     * 用户编码
     */
    @Column(name = "user_num")
    private String userNum;

    /**
     * 用户名称
     */
    @Column(name = "user_name")
    private String userName;

    /**
     * 状态 1：正常；0：停用
     */
    private Integer state;

    /**
     * 手机
     */
    @Column(name = "mobile_phone")
    private String mobilePhone;

    /**
     * 邮箱
     */
    private String mailbox;

    /**
     * QQ
     */
    private String qq;

    /**
     * 微信
     */
    @Column(name = "WeChat")
    private String wechat;

    /**
     * 建立人（用户名（用户编码））
     */
    @Column(name = "Founder")
    private String founder;

    /**
     * 建立时间
     */
    @Column(name = "Founder_datetime")
    private Date founderDatetime;

    /**
     * 最近修改人（用户名（用户编码））
     */
    @Column(name = "modify_by")
    private String modifyBy;

    /**
     * 最近修改时间
     */
    @Column(name = "modify_datetime")
    private Date modifyDatetime;

    /**
     * 用户密码（加密保存）
     */
    private String password;

    private static final long serialVersionUID = 1L;

    /**
     * 获取主键ID
     *
     * @return id - 主键ID
     */
    public Long getId() {
        return id;
    }

    /**
     * 设置主键ID
     *
     * @param id 主键ID
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取用户编码
     *
     * @return user_num - 用户编码
     */
    public String getUserNum() {
        return userNum;
    }

    /**
     * 设置用户编码
     *
     * @param userNum 用户编码
     */
    public void setUserNum(String userNum) {
        this.userNum = userNum;
    }

    /**
     * 获取用户名称
     *
     * @return user_name - 用户名称
     */
    public String getUserName() {
        return userName;
    }

    /**
     * 设置用户名称
     *
     * @param userName 用户名称
     */
    public void setUserName(String userName) {
        this.userName = userName;
    }

    /**
     * 获取状态 1：正常；0：停用
     *
     * @return state - 状态 1：正常；0：停用
     */
    public Integer getState() {
        return state;
    }

    /**
     * 设置状态 1：正常；0：停用
     *
     * @param state 状态 1：正常；0：停用
     */
    public void setState(Integer state) {
        this.state = state;
    }

    /**
     * 获取手机
     *
     * @return mobile_phone - 手机
     */
    public String getMobilePhone() {
        return mobilePhone;
    }

    /**
     * 设置手机
     *
     * @param mobilePhone 手机
     */
    public void setMobilePhone(String mobilePhone) {
        this.mobilePhone = mobilePhone;
    }

    /**
     * 获取邮箱
     *
     * @return mailbox - 邮箱
     */
    public String getMailbox() {
        return mailbox;
    }

    /**
     * 设置邮箱
     *
     * @param mailbox 邮箱
     */
    public void setMailbox(String mailbox) {
        this.mailbox = mailbox;
    }

    /**
     * 获取QQ
     *
     * @return qq - QQ
     */
    public String getQq() {
        return qq;
    }

    /**
     * 设置QQ
     *
     * @param qq QQ
     */
    public void setQq(String qq) {
        this.qq = qq;
    }

    /**
     * 获取微信
     *
     * @return WeChat - 微信
     */
    public String getWechat() {
        return wechat;
    }

    /**
     * 设置微信
     *
     * @param wechat 微信
     */
    public void setWechat(String wechat) {
        this.wechat = wechat;
    }

    /**
     * 获取建立人（用户名（用户编码））
     *
     * @return Founder - 建立人（用户名（用户编码））
     */
    public String getFounder() {
        return founder;
    }

    /**
     * 设置建立人（用户名（用户编码））
     *
     * @param founder 建立人（用户名（用户编码））
     */
    public void setFounder(String founder) {
        this.founder = founder;
    }

    /**
     * 获取建立时间
     *
     * @return Founder_datetime - 建立时间
     */
    public Date getFounderDatetime() {
        return founderDatetime;
    }

    /**
     * 设置建立时间
     *
     * @param founderDatetime 建立时间
     */
    public void setFounderDatetime(Date founderDatetime) {
        this.founderDatetime = founderDatetime;
    }

    /**
     * 获取最近修改人（用户名（用户编码））
     *
     * @return modify_by - 最近修改人（用户名（用户编码））
     */
    public String getModifyBy() {
        return modifyBy;
    }

    /**
     * 设置最近修改人（用户名（用户编码））
     *
     * @param modifyBy 最近修改人（用户名（用户编码））
     */
    public void setModifyBy(String modifyBy) {
        this.modifyBy = modifyBy;
    }

    /**
     * 获取最近修改时间
     *
     * @return modify_datetime - 最近修改时间
     */
    public Date getModifyDatetime() {
        return modifyDatetime;
    }

    /**
     * 设置最近修改时间
     *
     * @param modifyDatetime 最近修改时间
     */
    public void setModifyDatetime(Date modifyDatetime) {
        this.modifyDatetime = modifyDatetime;
    }

    /**
     * 获取用户密码（加密保存）
     *
     * @return password - 用户密码（加密保存）
     */
    public String getPassword() {
        return password;
    }

    /**
     * 设置用户密码（加密保存）
     *
     * @param password 用户密码（加密保存）
     */
    public void setPassword(String password) {
        this.password = password;
    }

    @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.getUserNum() == null ? other.getUserNum() == null : this.getUserNum().equals(other.getUserNum()))
            && (this.getUserName() == null ? other.getUserName() == null : this.getUserName().equals(other.getUserName()))
            && (this.getState() == null ? other.getState() == null : this.getState().equals(other.getState()))
            && (this.getMobilePhone() == null ? other.getMobilePhone() == null : this.getMobilePhone().equals(other.getMobilePhone()))
            && (this.getMailbox() == null ? other.getMailbox() == null : this.getMailbox().equals(other.getMailbox()))
            && (this.getQq() == null ? other.getQq() == null : this.getQq().equals(other.getQq()))
            && (this.getWechat() == null ? other.getWechat() == null : this.getWechat().equals(other.getWechat()))
            && (this.getFounder() == null ? other.getFounder() == null : this.getFounder().equals(other.getFounder()))
            && (this.getFounderDatetime() == null ? other.getFounderDatetime() == null : this.getFounderDatetime().equals(other.getFounderDatetime()))
            && (this.getModifyBy() == null ? other.getModifyBy() == null : this.getModifyBy().equals(other.getModifyBy()))
            && (this.getModifyDatetime() == null ? other.getModifyDatetime() == null : this.getModifyDatetime().equals(other.getModifyDatetime()))
            && (this.getPassword() == null ? other.getPassword() == null : this.getPassword().equals(other.getPassword()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getUserNum() == null) ? 0 : getUserNum().hashCode());
        result = prime * result + ((getUserName() == null) ? 0 : getUserName().hashCode());
        result = prime * result + ((getState() == null) ? 0 : getState().hashCode());
        result = prime * result + ((getMobilePhone() == null) ? 0 : getMobilePhone().hashCode());
        result = prime * result + ((getMailbox() == null) ? 0 : getMailbox().hashCode());
        result = prime * result + ((getQq() == null) ? 0 : getQq().hashCode());
        result = prime * result + ((getWechat() == null) ? 0 : getWechat().hashCode());
        result = prime * result + ((getFounder() == null) ? 0 : getFounder().hashCode());
        result = prime * result + ((getFounderDatetime() == null) ? 0 : getFounderDatetime().hashCode());
        result = prime * result + ((getModifyBy() == null) ? 0 : getModifyBy().hashCode());
        result = prime * result + ((getModifyDatetime() == null) ? 0 : getModifyDatetime().hashCode());
        result = prime * result + ((getPassword() == null) ? 0 : getPassword().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(", userNum=").append(userNum);
        sb.append(", userName=").append(userName);
        sb.append(", state=").append(state);
        sb.append(", mobilePhone=").append(mobilePhone);
        sb.append(", mailbox=").append(mailbox);
        sb.append(", qq=").append(qq);
        sb.append(", wechat=").append(wechat);
        sb.append(", founder=").append(founder);
        sb.append(", founderDatetime=").append(founderDatetime);
        sb.append(", modifyBy=").append(modifyBy);
        sb.append(", modifyDatetime=").append(modifyDatetime);
        sb.append(", password=").append(password);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}