liujie
2025-06-09 70d2a5d0f9c6951b2d4cac954041ed73582ff7eb
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);
@@ -283,8 +298,14 @@
      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();
@@ -309,7 +330,7 @@
      systemUser.setCreateTime(LocalDateTime.now());
      // 获取最高层级的用于原来的判断
      systemUserLevels.sort(Comparator.comparing(SystemUserLevel::getLevel));
      Integer level = systemUserLevels.get(0).getLevel();
      systemUser.setAccountLevel(level);