| | |
| | | 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); |
| | |
| | | if(0 < count){ |
| | | return R.fail("手机号重复。"); |
| | | } |
| | | |
| | | |
| | | systemUserLevels.sort(Comparator.comparing(SystemUserLevel::getLevel)); |
| | | SystemUserLevel systemUserLevel = systemUserLevels.get(0); |
| | | systemUser.setDistrictsCode(systemUserLevel.getDistrictsCode()); |
| | | systemUser.setDistricts(systemUserLevel.getDistricts()); |
| | | systemUser.setStreetId(systemUserLevel.getStreetId()); |
| | | systemUser.setStreet(systemUserLevel.getStreet()); |
| | | systemUser.setCommunityId(systemUserLevel.getCommunityId()); |
| | | systemUser.setCommunity(systemUserLevel.getCommunity()); |
| | | |
| | | |
| | | String districtsCode = systemUser.getDistrictsCode(); |
| | |
| | | systemUser.setCreateTime(LocalDateTime.now()); |
| | | |
| | | // 获取最高层级的用于原来的判断 |
| | | systemUserLevels.sort(Comparator.comparing(SystemUserLevel::getLevel)); |
| | | |
| | | Integer level = systemUserLevels.get(0).getLevel(); |
| | | systemUser.setAccountLevel(level); |
| | | |