package com.qxueyou.scc.base.util;
|
|
import java.util.List;
|
import java.util.Map;
|
|
import com.qxueyou.scc.base.dao.AbstractRedisTemplate;
|
import com.qxueyou.scc.base.dao.CommonRedisTemplate;
|
import com.qxueyou.scc.base.model.UserInfoWrapper;
|
import com.qxueyou.scc.base.service.impl.RedisCacheBean;
|
import com.qxueyou.scc.sys.utils.SpringContextHolder;
|
import org.apache.commons.lang3.StringUtils;
|
|
import com.qxueyou.scc.base.model.Constants;
|
import com.qxueyou.scc.base.model.FilePathConstants;
|
import com.qxueyou.scc.sys.model.ResponseResult;
|
import com.qxueyou.scc.sys.model.SysMenu;
|
import com.qxueyou.scc.user.model.User;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.data.redis.cache.RedisCache;
|
import org.springframework.data.redis.cache.RedisCacheManager;
|
import org.springframework.data.redis.core.RedisAccessor;
|
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Repository;
|
import org.springframework.web.context.request.RequestContextHolder;
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpSession;
|
|
|
/**
|
* 客户端信息处理工具类
|
* @author 德虎 2014-12-29
|
*
|
*/
|
public final class ClientUtils {
|
|
/*
|
* 线程变量: 用户信息
|
*/
|
private static ThreadLocal<UserInfoWrapper> threadLocalUserInfo = new ThreadLocal<UserInfoWrapper>();
|
private static UserInfoWrapper wrapper = threadLocalUserInfo.get();
|
|
private static RedisTemplate redisTemplate = (RedisTemplate)SpringContextHolder.getBean("redisTemplate");
|
|
/** 得到用户信息*/
|
public static UserInfoWrapper getUserInfo() {
|
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
HttpSession session = request.getSession();
|
String userids = (String) session.getAttribute("userId");
|
Object str = redisTemplate.opsForValue().get(userids);
|
String userid = str.toString();
|
System.out.println("userid======================="+userid);
|
// UserInfoWrapper wrapper = threadLocalUserInfo.get();
|
// if(wrapper == null) {
|
|
wrapper = (UserInfoWrapper)redisTemplate.opsForValue().get(UserInfoWrapper.SESSION_USER_INFO_KEY+userid);
|
if (wrapper == null) {
|
wrapper = new UserInfoWrapper();
|
User user = new User();
|
//默认值,上传可以作为默认上传者
|
user.setUserId(Constants.VISITOR_USER_ID);
|
user.setName(Constants.VISITOR_USER_ID);
|
wrapper.setUser(user);
|
setUserInfo(wrapper);
|
}
|
// }
|
// else{
|
// redisTemplate.opsForValue().set(UserInfoWrapper.SESSION_USER_INFO_KEY,wrapper);
|
// }
|
|
return wrapper;
|
}
|
|
|
/** 设置用户信息*/
|
public static void setUserInfo(UserInfoWrapper wrapper) {
|
threadLocalUserInfo.remove();
|
threadLocalUserInfo.set(wrapper);
|
}
|
|
/** 得到userId*/
|
public static String getUserId(){
|
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
HttpSession session = request.getSession();
|
String info = getUserInfo().getInfo(UserInfoWrapper.INF_USER_ID);
|
if(info.equals("visitor_001")){
|
info= (String) session.getAttribute(UserInfoWrapper.INF_USER_ID);
|
}
|
return info;
|
}
|
|
/** 得到userName*/
|
public static String getUserName(){
|
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
HttpSession session = request.getSession();
|
String info = getUserInfo().getInfo(UserInfoWrapper.INF_USER_NAME);
|
// if(info!=null){
|
// info= (String) session.getAttribute(UserInfoWrapper.INF_USER_NAME);
|
// }
|
return info;
|
}
|
|
/** 得到用户头像*/
|
public static String getUserImg(){
|
return getUserInfo().getInfo(UserInfoWrapper.INF_USER_HEAD_IMG);
|
// return session.getAttribute();
|
}
|
|
/** 得到手机号*/
|
public static String getUserMobilePhone(){
|
return getUserInfo().getInfo(UserInfoWrapper.INF_USER_MOBILE_PHONE);
|
}
|
|
/** 得到帐号*/
|
public static String getUserAccount(){
|
return getUserInfo().getInfo(UserInfoWrapper.INF_USER_ACCOUNT);
|
}
|
|
/** 得到classId*/
|
public static String getClassId(){
|
String info = getUserInfo().getInfo(UserInfoWrapper.INF_CLASS_ID);
|
// HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
// HttpSession session = request.getSession();
|
// String info = getUserInfo().getInfo(UserInfoWrapper.INF_CLASS_ID);
|
// if(info!=null){
|
// info= (String) session.getAttribute(UserInfoWrapper.INF_CLASS_ID);
|
// }
|
return info;
|
// return getUserInfo().getInfo(UserInfoWrapper.);
|
}
|
|
/** 得到className*/
|
public static String getClassName(){
|
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
HttpSession session = request.getSession();
|
String info = getUserInfo().getInfo(UserInfoWrapper.INF_CLASS_NAME);
|
// if(info!=null){
|
// info= (String) session.getAttribute(UserInfoWrapper.INF_CLASS_NAME);
|
// }
|
return info;
|
// System.out.println("CLassName"+session.getAttribute("className"));
|
// return (String) session.getAttribute("className");
|
}
|
|
/** */
|
public static String getClassCharger(){
|
return getUserInfo().getInfo(UserInfoWrapper.INF_CLASS_CHARGER);
|
}
|
|
/** 得到科目ID*/
|
public static String getCourseId(){
|
return getUserInfo().getInfo(UserInfoWrapper.INF_COURSE_ID);
|
}
|
|
/** 得到科目Name*/
|
public static String getCourseName(){
|
return getUserInfo().getInfo(UserInfoWrapper.INF_COURSE_NAME);
|
}
|
|
/** 得到机构ID*/
|
public static String getOrgId(){
|
return "1";
|
}
|
|
/** 得到最上层机构ID*/
|
public static String getTopOrgId(){
|
return getUserInfo().getInfo(UserInfoWrapper.INF_TOP_ORG_ID);
|
}
|
|
/** 得到机构CODE*/
|
public static String getOrgCode(){
|
return getUserInfo().getInfo(UserInfoWrapper.INF_ORG_CODE);
|
}
|
|
/** 得到机构NAME*/
|
public static String getOrgName(){
|
return getUserInfo().getInfo(UserInfoWrapper.INF_ORG_NAME);
|
}
|
|
/** 得到机构SHORTNAME*/
|
public static String getOrgShortName(){
|
return getUserInfo().getInfo(UserInfoWrapper.INF_ORG_SHORT_NAME);
|
}
|
|
/** 得到机构LOGO*/
|
public static String getOrgLogoPath(){
|
return getUserInfo().getInfo(UserInfoWrapper.INF_ORG_LOGO_PATH);
|
}
|
|
/** 得到当前角色*/
|
public static String getCurrentRole(){
|
return getUserInfo().getCurrentRole();
|
}
|
|
|
/** 得到当前角色编码*/
|
public static String getCurrentRoleEName(){
|
return getUserInfo().getInfo(UserInfoWrapper.INF_ROLE_ENAME);
|
}
|
|
/** 得到当前角色ID*/
|
public static String getCurrentRoleId(){
|
return getUserInfo().getCurrentRoleId();
|
}
|
|
/** 得到当前角色值*/
|
public static String getCurrentRoleValue(){
|
return getUserInfo().getCurrentRoleValue();
|
}
|
|
/** 得到当前角色信息*/
|
public static List<Map<String,Object>> getRoleInfo(String role){
|
return getUserInfo().getRoleInfo(role);
|
}
|
|
/** 获取当前就是 菜单信息*/
|
public static List<SysMenu> getMenuInfo(){
|
return getUserInfo().getMenus();
|
}
|
|
/** */
|
public static Boolean getButtonPrivilegeEdit(){
|
return getUserInfo().getButtonPrivilegeEdit();
|
}
|
|
/** 当前登录IP*/
|
public static String getCurrentLoginIp(){
|
return getUserInfo().getCurrentLoginIp();
|
}
|
|
/**
|
* 获取用户基本信息
|
* @return
|
*/
|
public static ResponseResult getUserBaseInfo(User user){
|
ResponseResult userInfo = new ResponseResult();
|
// 用户
|
userInfo.setUserId(user.getUserId());
|
userInfo.setUserName(user.getName());
|
userInfo.setImgPath(StringUtils.isNotBlank(user.getImgPath()) ? user.getImgPath() : FilePathConstants.USER_DEFAULT_IMG );
|
userInfo.setMobilePhone(user.getMobilePhone());
|
return userInfo;
|
}
|
|
/**
|
* 是否为管理员
|
* @return
|
*/
|
public static boolean isAdmin(){
|
HttpServletRequest request =((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
HttpSession session = request.getSession();
|
Object admin =session.getAttribute("admin");
|
if (admin==null){
|
return false;
|
}else if(Boolean.valueOf((Boolean) admin)){
|
System.out.println(Boolean.valueOf((Boolean) admin));
|
return Boolean.valueOf((Boolean) admin);
|
}
|
return false;
|
// return true;
|
// System.out.println(Boolean.valueOf((Boolean) admin));
|
// return Boolean.valueOf((Boolean) admin);
|
}
|
}
|