package cn.pluss.platform.entitiy;

import cn.pluss.platform.util.StringUtil;
import lombok.Data;

import java.io.Serializable;


/**
 * 自定义Authentication对象，使得Subject除了携带用户的登录名外还可以携带更多信息.
 */
@Data
public class ShiroUser implements Serializable {
    private static final long serialVersionUID = -1373760761780840081L;
    private String loginName;
    private String name;
    private Long id;
    private Long areaId;
    private Integer status;

    /**
     * 当前登录的用户类型   merchant：商家，promoter：推广人 staff：员工   (不是管理员时的用户类型)
     */
    private String userType;

    private String staffType;
    /**
     * 商户code
     */
    private String merchantCode;

    /**
     * 本函数输出将作为默认的<shiro:principal/>输出.
     */
    @Override
    public String toString() {
        return loginName;
    }

    /**
     * 重载equals,只计算loginName;
     */
    @Override
    public int hashCode() {
        return this.loginName.hashCode();
    }

    /**
     * 重载equals,只比较loginName
     */
    @Override
    public boolean equals(Object obj) {
        if (obj == null || !(obj instanceof ShiroUser))
            return false;
        ShiroUser o = (ShiroUser) obj;
        return StringUtil.equals(loginName, o.loginName);
    }


}