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<SysMenu> menus = new ArrayList<SysMenu>(10);
|
|
private boolean admin = false;
|
|
/** 用户信息map */
|
private final Map<String,Object> currentUser = new HashMap<String,Object>(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<String,List<Map<String,Object>>> roles = new HashMap<String,List<Map<String,Object>>>(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<Map<String,Object>> value){
|
roles.put(key, value);
|
}
|
|
/**
|
* 获取最高优先级角色
|
* @return
|
*/
|
public List<Map<String,Object>> getDefaultRole(){
|
|
for(String role:rolesKey){
|
if(roles.containsKey(role)){
|
return roles.get(role);
|
}
|
}
|
|
return null;
|
|
}
|
|
/**
|
* 获取指定角色的信息
|
* @return
|
*/
|
public List<Map<String,Object>> 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<SysMenu> getMenus() {
|
return menus;
|
}
|
|
/**
|
* 设置所有菜单
|
* @return
|
*/
|
public void setMenus(List<SysMenu> menus) {
|
this.menus = menus;
|
}
|
|
public boolean isAdmin() {
|
return admin;
|
}
|
|
public void setAdmin(boolean admin) {
|
this.admin = admin;
|
}
|
}
|