liujie
2025-06-09 70d2a5d0f9c6951b2d4cac954041ed73582ff7eb
6.9新增登录失败冻结逻辑
1个文件已修改
15 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemUserController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemUserController.java
@@ -82,6 +82,11 @@
    public R<TokenVo> login(@RequestBody LoginVo vo){
        String key = "login:" + vo.getPhone();
        Integer size = (Integer) redisTemplate.opsForValue().get(key);
        int errSize = 0;
        Object errSizeObj = redisTemplate.opsForValue().get("error_"+key);
        if(errSizeObj!=null){
            errSize = (Integer) errSizeObj;
        }
        if(null != size && max_err.equals(size)){
            return R.fail("连续登录失败,请稍后重试。");
        }
@@ -96,8 +101,16 @@
            return R.fail("登录失败,手机号/密码错误。");
        }
        if(!vo.getPassword().equals(systemUser.getPassword())){
            if(errSize==2){
                systemUser.setStatus(2);
                systemUserService.updateById(systemUser);
            }
            size++;
            redisTemplate.opsForValue().set(key, size, 5, TimeUnit.MINUTES);
            if(size==5){
                errSize++;
                redisTemplate.opsForValue().set("error_"+key, errSize, 1, TimeUnit.DAYS);
            }
            return R.fail("登录失败,手机号/密码错误。");
        }
        if(2 == systemUser.getStatus()){
@@ -106,6 +119,8 @@
        //创建token
        R<LoginReturnVO> reult = tokenService.loginThreeAround(systemUser.getId());
        redisTemplate.delete(key);
        redisTemplate.delete("error_"+key);
        LoginReturnVO loginReturnVO = reult.getData();
        TokenVo tokenVo = new TokenVo();
        BeanUtils.copyProperties(loginReturnVO, tokenVo);