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 threadLocalUserInfo = new ThreadLocal(); 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> getRoleInfo(String role){ return getUserInfo().getRoleInfo(role); } /** 获取当前就是 菜单信息*/ public static List 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); } }