package com.qxueyou.scc.base.model; import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.qxueyou.scc.admin.classes.model.ClsClass; import com.qxueyou.scc.org.model.OrgCollegeCourse; import com.qxueyou.scc.org.model.Organization; import com.qxueyou.scc.sys.model.SysMenu; import com.qxueyou.scc.user.model.User; /** * 保存用户缓存信息 * @author 德虎 * */ public class UserInfoWrapper implements Serializable{ private static final long serialVersionUID = 5715001537102570184L; private List menus = new ArrayList(10); private boolean admin = false; /** 用户信息map */ private final Map currentUser = new HashMap(10); /** "role":"角色", [STUDENT,CHARGER,TEACHER,SALESMAN,ADMIN] */ public final static String INF_ROLE = "role"; /** "roleId":session中UserInfoWrapper保存的key */ public static final String SESSION_USER_INFO_KEY = "SESSION_USER_INFO_KEY"; /**保存当前在线用户ID与sessionID*/ public static final String REDIS_USER_ONLINE_MAP_KEY="redis.user.online.map.key"; /** "roleId":角色ID */ public final static String INF_ROLE_ID = "roleId"; /** "roleIsAdmin":是否为管理员 */ public final static String INF_ROLE_IS_ADMIN = "roleIsAdmin"; /** "roleValue":"角色值" */ public final static String INF_ROLE_VALUE = "roleValue"; /** "roleValue":"角色" */ public final static String INF_ROLE_ENAME = "roleEname"; /** "userId":"用户ID" */ public final static String INF_USER_ID = "userId"; /** "userName":"用户名" */ public final static String INF_USER_NAME = "userName"; /** "userNickName":"用户昵称" */ public final static String INF_USER_NICK_NAME = "userNickName"; /** "userMobilePhone":"手机号" */ public final static String INF_USER_MOBILE_PHONE = "userMobilePhone"; /** "userAccount":"帐号" */ public final static String INF_USER_ACCOUNT = "userAccount"; /** "userHeadImg":"头像" */ public final static String INF_USER_HEAD_IMG = "userHeadImg"; /** "orgId":"机构ID" */ public final static String INF_ORG_ID = "orgId"; /** "topOrgId":"最上层机构ID" */ public final static String INF_TOP_ORG_ID = "topOrgId"; /** "orgName":"机构名称" */ public final static String INF_ORG_NAME = "orgName"; /** "orgShortName":"机构简称" */ public final static String INF_ORG_SHORT_NAME = "orgShortName"; /** "orgCode":"机构代码" */ public final static String INF_ORG_CODE = "orgCode"; /** "orgType":"机构类型" */ public final static String INF_ORG_TYPE = "orgType"; /** "orgLogPath":"机构LOGO" */ public final static String INF_ORG_LOGO_PATH = "orgLogPath"; /** "courseId":"科目ID" */ public final static String INF_COURSE_ID = "courseId"; /** "courseCode":"科目代码" */ public final static String INF_COURSE_CODE = "courseCode"; /** "courseName":"科目名称" */ public final static String INF_COURSE_NAME = "courseName"; /** "courseType":"科目类型" */ public final static String INF_COURSE_TYPE = "courseType"; /** "classId":"班级ID" */ public final static String INF_CLASS_ID = "classId"; /** "className":"班级名" */ public final static String INF_CLASS_NAME = "className"; /** "classCharger":"班主任" */ public final static String INF_CLASS_CHARGER = "classCharger"; /** "teacher":"讲师" */ public final static String ROLE_TEACHER = "teacher"; /** "assistantTeacher":"助理讲师" */ public final static String ROLE_ASSISTANT_TEACHER = "assistantTeacher"; /** "salesman":"销售" */ public final static String ROLE_SALESMAN = "salesman"; /** "role":"角色", [STUDENT,CHARGER,TEACHER,SALESMAN,ADMIN] */ public final static String ROLE_CHARGER = "charger"; /** "role":"角色", [STUDENT,CHARGER,TEACHER,SALESMAN,ADMIN] */ public final static String ROLE_ADMIN = "admin"; /** "role":"角色", [STUDENT,CHARGER,TEACHER,SALESMAN,ADMIN] */ public final static String ROLE_STUDENT = "student"; /** "role":"角色", [STUDENT,CHARGER,TEACHER,SALESMAN,ADMIN] */ public final static String ROLE_CUSTOM = "custom"; /** "buttonPrivilege":"" */ public final static String INF_BUTTON_PRIVILEGE_EDIT = "buttonPrivilege"; /** "loginIp":"登录IP" */ public final static String INF_LOGIN_IP = "loginIp"; /** "loginPlatForm":"登录平台" */ public final static String INF_LOGIN_PLAT_FORM = "loginPlatForm"; /** "loginCacheIpFlag":"是否需要在过滤器对当前用户增加缓存(用于保证一个用户只能在一个IP上登录)" */ public final static String INF_LOGIN_CACHE_IP_FLAG = "loginCacheIpFlag"; /** "rolesKey":"", */ String[] rolesKey = new String[]{"admins","chargers","teachers","salesmen","students","customs","assistantTeachers"}; /** "roles":"" */ private final Map>> roles = new HashMap>>(5); /** * 根据key值获取当前用户信息 * @param key * @return */ public String getInfo(String key){ return (String)(currentUser.get(key)); } /** * 获取当前用户角色 * @param key * @return */ public String getCurrentRole(){ return getInfo(INF_ROLE); } /** * 获取当前用户角色ID * @param key * @return */ public String getCurrentRoleId(){ return getInfo(INF_ROLE_ID); } /** * 获取当前用户角色值 * @param key * @return */ public String getCurrentRoleValue(){ return getInfo(INF_ROLE_VALUE); } /** * 根据key值设置当前用户信息 * @param key * @return */ public void setInfo(String key,Object value){ currentUser.put(key,value); } /** * 设置用户信息 * @param key * @return */ public void setUser(User user){ currentUser.put(INF_USER_ID, user.getUserId()); currentUser.put(INF_USER_NAME, user.getName()); currentUser.put(INF_USER_NICK_NAME, user.getName()); currentUser.put(INF_USER_MOBILE_PHONE, user.getMobilePhone()); currentUser.put("email", user.getEmail()); currentUser.put("imei", user.getImei()); currentUser.put("age", String.valueOf(user.getAge())); currentUser.put(INF_USER_HEAD_IMG, user.getImgPath()); } /** * 设置机构信息 * @param key * @return */ public void setOrg(Organization org){ if(org==null){ currentUser.put(INF_ORG_ID, null); currentUser.put(INF_TOP_ORG_ID, null); currentUser.put(INF_ORG_NAME, null); currentUser.put(INF_ORG_CODE, null); currentUser.put(INF_ORG_LOGO_PATH, null); currentUser.put(INF_ORG_SHORT_NAME, null); return; } currentUser.put(INF_ORG_ID, org.getOrganizationId()); currentUser.put(INF_TOP_ORG_ID, org.getTopOrganizationId()); currentUser.put(INF_ORG_NAME, org.getName()); currentUser.put(INF_ORG_SHORT_NAME, org.getShortName()); currentUser.put(INF_ORG_CODE, org.getCode()); currentUser.put(INF_ORG_LOGO_PATH, org.getLogoPath()); } /** * 设置班级信息 * @param key * @return */ public void setClass(ClsClass cls){ if(cls==null){ currentUser.put(INF_CLASS_ID, null); currentUser.put(INF_CLASS_NAME, null); currentUser.put(INF_CLASS_CHARGER, null); return; } currentUser.put(INF_CLASS_ID, cls.getClassId()); currentUser.put(INF_CLASS_NAME, cls.getName()); currentUser.put(INF_CLASS_CHARGER, cls.getClassCharger()); System.out.println(cls.getClassId()); } /** * 设置科目信息 * @param key * @return */ public void setCource(OrgCollegeCourse cource){ if(cource==null){ currentUser.put(INF_COURSE_ID, null); currentUser.put(INF_COURSE_CODE, null); currentUser.put(INF_COURSE_NAME, null); return; } //currentUser.put(INF_COURSE_ID, cource.getCourseId()); currentUser.put(INF_COURSE_ID, cource.getCollegeCourseId()); currentUser.put(INF_COURSE_CODE, cource.getCode()); currentUser.put(INF_COURSE_NAME, cource.getName()); } /** * 设置当前客户是否编辑过角色的按钮权限信息 * @param key * @return */ public void setButtonPrivilegeEdit(Boolean flag){ if(flag==null){ currentUser.put(INF_BUTTON_PRIVILEGE_EDIT, false); return; } currentUser.put(INF_BUTTON_PRIVILEGE_EDIT, flag); } /** * 获取当前用户角色是否处理过按钮权限 * @param key * @return */ public Boolean getButtonPrivilegeEdit(){ return (Boolean)(currentUser.get(INF_BUTTON_PRIVILEGE_EDIT)); } /** * 设置用户登录IP信息 * @param cacheIpFlag 是否需要缓存 * @param ip */ public void setLoginInfo(boolean cacheIpFlag,String ip, String platForm){ currentUser.put(INF_LOGIN_CACHE_IP_FLAG, cacheIpFlag); currentUser.put(INF_LOGIN_IP, ip); currentUser.put(INF_LOGIN_PLAT_FORM, platForm); } /** * 获取当前用户登录IP * @param key * @return */ public String getCurrentLoginIp(){ return (String)(currentUser.get(INF_LOGIN_IP)); } /** * 获取当前用户是否需要缓存 * @param key * @return */ public Boolean getCurrentLoginCacheIpFlag(){ return (Boolean)(currentUser.get(INF_LOGIN_CACHE_IP_FLAG)); } /** * 获取当前登录平台 * @param key * @return */ public String getCurrentLoginPlatForm(){ return (String)(currentUser.get(INF_LOGIN_PLAT_FORM)); } /** * 添加角色 * @param key * @param value * @return */ public void addRole(String key,List> value){ roles.put(key, value); } /** * 获取最高优先级角色 * @return */ public List> getDefaultRole(){ for(String role:rolesKey){ if(roles.containsKey(role)){ return roles.get(role); } } return null; } /** * 获取指定角色的信息 * @return */ public List> getRoleInfo(String roleKey){ for(String role:rolesKey){ if(role.equals(roleKey)){ return roles.get(role); } } return null; } /** * 获取最高优先级角色名字 * @return */ public String getDefaultRoleName(){ for(String role:rolesKey){ if(roles.containsKey(role)){ return role; } } return null; } /** * 获取所有菜单 * @return */ public List getMenus() { return menus; } /** * 设置所有菜单 * @return */ public void setMenus(List menus) { this.menus = menus; } public boolean isAdmin() { return admin; } public void setAdmin(boolean admin) { this.admin = admin; } }