From 70d2a5d0f9c6951b2d4cac954041ed73582ff7eb Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期一, 09 六月 2025 11:54:00 +0800 Subject: [PATCH] 6.9新增登录失败冻结逻辑 --- springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemUserController.java | 15 +++++++++++++++ 1 files changed, 15 insertions(+), 0 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemUserController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemUserController.java index 4a2b99d..1d52883 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemUserController.java +++ b/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); -- Gitblit v1.7.1