| | |
| | | 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("连续登录失败,请稍后重试。"); |
| | | } |
| | |
| | | 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()){ |
| | |
| | | //创建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); |