派生自 projectDept/qhighschool

yn147
2023-11-23 bccada7cbf7eea3c37c0243d95426d1a29d9121f
缓存,及成绩管理
4个文件已修改
67 ■■■■■ 已修改文件
src/main/java/com/qxueyou/scc/base/model/UserInfoWrapper.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/qxueyou/scc/base/util/ClientUtils.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/qxueyou/scc/stucontroller/HomePageController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/qxueyou/scc/sys/action/LoginController.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/qxueyou/scc/base/model/UserInfoWrapper.java
@@ -12,6 +12,8 @@
import com.qxueyou.scc.sys.model.SysMenu;
import com.qxueyou.scc.user.model.User;
import javax.servlet.http.HttpServletRequest;
/**
 * 保存用户缓存信息
 * @author 德虎
@@ -24,7 +26,6 @@
    private List<SysMenu> menus = new ArrayList<SysMenu>(10);
    private boolean admin = false;
    /** 用户信息map */
    private final Map<String,Object> currentUser = new HashMap<String,Object>(10);
@@ -209,6 +210,10 @@
        currentUser.put(INF_USER_HEAD_IMG, user.getImgPath());
    }
    public Object getUserId(){
        return currentUser.get(INF_USER_ID);
    }
    /**
     * 设置机构信息
     * @param key
src/main/java/com/qxueyou/scc/base/util/ClientUtils.java
@@ -48,9 +48,16 @@
    /** 得到用户信息*/
    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);
        wrapper = (UserInfoWrapper)redisTemplate.opsForValue().get(UserInfoWrapper.SESSION_USER_INFO_KEY+userid);
        if (wrapper == null) {
            wrapper = new UserInfoWrapper();
            User user = new User();
@@ -247,13 +254,14 @@
        HttpServletRequest request =((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        HttpSession session = request.getSession();
        Object admin =session.getAttribute("admin");
//        if(Boolean.valueOf((Boolean) admin)){
//            System.out.println(Boolean.valueOf((Boolean) admin));
//            return Boolean.valueOf((Boolean) admin);
//        }else{
//            return false;
//        }
        return true;
        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);
    }
src/main/java/com/qxueyou/scc/stucontroller/HomePageController.java
@@ -60,9 +60,10 @@
    @ApiOperation(value = "首页获取我的上次学习")
    @GetMapping(value = "getLastStudied")
    public Result getLastSubject(String subjectId, HttpServletRequest request) {
        Object userId = request.getSession().getAttribute("userId");
//        Object userId = request.getSession().getAttribute("userId");
        String userId = (String) request.getSession().getAttribute("userId");
        System.out.println(userId);
        return subjectService.lastStudied(String.valueOf(userId));
        return subjectService.lastStudied(userId);
    }
    /**
src/main/java/com/qxueyou/scc/sys/action/LoginController.java
@@ -358,7 +358,10 @@
    @RequestMapping(value = "studentLogin", method = RequestMethod.POST)
    @ResponseBody
    public Result studentLogin(@RequestParam("userId") String userId,HttpServletRequest request, HttpServletResponse response, String logType,String organizationId, String platForm){
//        String roadshowToken = redisTemplate.opsForValue().get("roadshowToken").toString();
//        if(roadshowToken == null){
//            return new Result(false,"验证失败");
//        }
        String hql = null;
        List<Object> params = null;
        hql = "from User where deleteFlag is false and userId = ?";
@@ -447,7 +450,7 @@
//        if(uuReNumber!=null&&!"".equals(uuReNumber)&&!"null".equals(uuReNumber)){
//            //录成功存入user里,删除session里的uuReNumber,下个人无法使用
//            user.setImei(uuReNumber);
//            request.getSession().removeAttribute("uuReNumber");
//            request.getSesssion().removeAttribute("uuReNumber");
//        }
        if (user == null) {
@@ -455,14 +458,14 @@
        }
        // 插入日志
        insertLoginLog(request, user, account, "SYS-LOGIN");
        String salt = user.getSalt();
        String newPassword= DigestUtils.md5DigestAsHex((salt+password).getBytes());
        //比较用户输入的密码加密后的字符串是否跟注册时填写的加密密码相同
        if("study".equals(logType) || "portal".equals(logType) || "adminis".equals(logType)){
            if (!newPassword.equals(user.getPassword())) {
                return new Result(false, "密码错误");
            }
        }
//        String salt = user.getSalt();
//        String newPassword= DigestUtils.md5DigestAsHex((salt+password).getBytes());
//        //比较用户输入的密码加密后的字符串是否跟注册时填写的加密密码相同
//        if("study".equals(logType) || "portal".equals(logType) || "adminis".equals(logType)){
//            if (!newPassword.equals(user.getPassword())) {
//                return new Result(false, "密码错误");
//            }
//        }
        // 返回用户基本信息
        return this.loginValidate(user, 1, request, response, logType, platForm, organizationId);
@@ -492,9 +495,13 @@
        param.setIp(RequestClientUtils.getRemoteIP(request));
//         缓存到请求线程
        UserInfoWrapper wrapper = cacheUserInfo(param, null);
        System.out.println("wrapper======================"+wrapper.getUserId());
        request.getSession().setAttribute("userId",wrapper.getUserId());
        redisTemplate.opsForValue().set(wrapper.getUserId(),wrapper.getUserId());
        // 存到redis
        redisTemplate.opsForValue().set(UserInfoWrapper.SESSION_USER_INFO_KEY, wrapper);
        request.getSession().setAttribute(UserInfoWrapper.SESSION_USER_INFO_KEY, wrapper);
        redisTemplate.opsForValue().set(UserInfoWrapper.SESSION_USER_INFO_KEY+wrapper.getUserId(), wrapper);
        request.getSession().setAttribute(UserInfoWrapper.SESSION_USER_INFO_KEY+wrapper.getUserId(), wrapper);
        if ("study".equals(logType) || "portal".equals(logType) || "zhyly".equals(logType)) {
            /*if (StringUtils.isEmpty(ClientUtils.getClassId()) && user.getRoles() == null) {
                return new Result(false, "该用户未加入任何班级或未激活,请联系班主任");