package com.mortals.xhx.module.user.model;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import java.math.BigDecimal;
import cn.hutool.core.date.DateUtil;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.user.model.vo.UserVo;
import lombok.Data;
/**
* 用户信息业务实体对象
*
* @author zxfei
* @date 2023-09-18
*/
@Data
public class UserEntity extends UserVo {
    private static final long serialVersionUID = 1L;

    /**
    * 登录名
    */
    private String loginName;
    /**
    * 登录密码，使用md5双次加密
    */
    private String loginPwd;
    /**
    * 登录限制地址，多个IP地址用逗号分隔，可以使用IP段匹配，如：172.17.*非空：则只能该值内的IP可以登录
    */
    private String loginLimitAddress;
    /**
    * 用户名
    */
    private String realName;
    /**
    * 用户手机号
    */
    private String mobile;
    /**
    * 用户联系电话
    */
    private String phone;
    /**
    * 用户邮箱
    */
    private String email;
    /**
    * QQ号码
    */
    private String qq;
    /**
    * 用户类型，0：系统用户 1:普通用户 2:工作人员，默认2
    */
    private Integer userType;
    /**
    * 用户状态，0：停用，1：正常，2：冻结，3：销户，4：离职，默认1
    */
    private Integer status;
    /**
    * 客户ID
    */
    private Long customerId;
    /**
    * 创建用户名称
    */
    private String createUserName;
    /**
    * 最后一次登录时间
    */
    private Date lastLoginTime;
    /**
    * 最后一次登录地址
    */
    private String lastLoginAddress;
    /**
    * 用户所属部门id
    */
    private Long deptId;
    /**
    * 所属部门名称
    */
    private String deptName;
    /**
    * 所属站点id,多个逗号分隔
    */
    private String siteIds;
    /**
    * 所属区域code,多个逗号分隔
    */
    private String areaCodes;
    /**
    * 员工Id，关联用户员工表
    */
    private Long staffId;
    /**
    * 微信openId
    */
    private String openId;
    @Override
    public int hashCode() {
         return this.getId().hashCode();
    }
    @Override
    public boolean equals(Object obj) {
        if (obj == null) return false;
        if (obj instanceof UserEntity) {
            UserEntity tmp = (UserEntity) obj;
            if (this.getId() == tmp.getId()) {
                 return true;
            }
        }
        return false;
    }

    public void initAttrValue(){
            this.loginName = "";
            this.loginPwd = "";
            this.loginLimitAddress = "";
            this.realName = "";
            this.mobile = "";
            this.phone = "";
            this.email = "";
            this.qq = "";
            this.userType = 0;
            this.status = 1;
            this.customerId = 0L;
            this.createUserName = "";
            this.lastLoginTime = new Date();
            this.lastLoginAddress = "";
            this.deptId = 0L;
            this.deptName = "";
            this.siteIds = "";
            this.areaCodes = "";
            this.staffId = 0L;
            this.openId = "";
    }
}