lyhzzz il y a 4 mois
Parent
commit
1189de62dc

+ 1 - 1
src/main/java/com/fdkankan/manage/config/ManageConfig.java

@@ -15,7 +15,7 @@ import java.util.List;
 @Data
 public class ManageConfig {
 
-    @Value("${manage.share.scene}")
+    @Value("${manage.share.scene:xx}")
     private String shareScenes;
 
     public List<String> getNumList(){

+ 7 - 0
src/main/java/com/fdkankan/manage/config/MenuInit.java

@@ -1,6 +1,7 @@
 package com.fdkankan.manage.config;
 
 import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.manage.common.RedisKeyUtil;
 import com.fdkankan.manage.entity.SysMenu;
 import com.fdkankan.manage.service.ISysMenuService;
 import com.fdkankan.redis.constant.RedisKey;
@@ -11,6 +12,7 @@ import org.springframework.stereotype.Component;
 
 import javax.annotation.PostConstruct;
 import java.util.List;
+import java.util.Set;
 
 @Component
 @Slf4j
@@ -28,5 +30,10 @@ public class MenuInit {
         String result = JSONObject.toJSONString(list);
         redisUtil.set(RedisKey.MANAGE_MENU,result );
         log.info("项目启动加载系统菜单权限至redis:{}",result);
+        Set<String> keys = redisUtil.keys(String.format(RedisKeyUtil.loginUserName, "*"));
+        log.info("清除历史登录信息:{}",keys.size());
+        for (String key : keys) {
+            redisUtil.del(key);
+        }
     }
 }

+ 1 - 2
src/main/java/com/fdkankan/manage/config/SaTokenConfigure.java

@@ -125,14 +125,13 @@ public class SaTokenConfigure {
         ManageLoginResponse result = JSONObject.parseObject(userStr,ManageLoginResponse.class);
         Long userId = result.getUserId();
         if(userId == null || result.getStatus() == 0){
-            String redisKey2 = String.format(RedisKeyUtil.loginUserName,result.getUserName());
             redisUtil.del(redisKey);
-            redisUtil.del(redisKey2);
             throw new BusinessException(ResultCode.USERNAME_ERROR);
         }
         String redisKeyTime = String.format(RedisKeyUtil.loginTokenTime,StpUtil.getTokenValue());
         if(redisUtil.hasKey(redisKeyTime)){
             redisUtil.expire(redisKey,Integer.valueOf(redisUtil.get(redisKeyTime)));
+            redisUtil.expire(redisKeyTime,Integer.valueOf(redisUtil.get(redisKeyTime)));
         }else {
             redisUtil.expire(redisKey,2 * 60 * 60);
         }

+ 2 - 0
src/main/java/com/fdkankan/manage/service/impl/JySceneUserAuthServiceImpl.java

@@ -551,6 +551,7 @@ public class JySceneUserAuthServiceImpl extends ServiceImpl<IJySceneUserAuthMapp
                 String redisKeyTime = String.format(RedisKeyUtil.loginTokenTime,StpUtil.getTokenValue());
                 if(redisUtil.hasKey(redisKeyTime)){
                     redisUtil.expire(redisKey,Integer.valueOf(redisUtil.get(redisKeyTime)));
+                    redisUtil.expire(redisKeyTime,Integer.valueOf(redisUtil.get(redisKeyTime)));
                 }else {
                     redisUtil.expire(redisKey,2 * 60 * 60);
                 }
@@ -666,6 +667,7 @@ public class JySceneUserAuthServiceImpl extends ServiceImpl<IJySceneUserAuthMapp
             Date date = new Date();
             if(jySceneUserAuth.getLookAuth() == 1 ||
                     ( jySceneUserAuth.getLookAuth() == 2 && jySceneUserAuth.getLookEndTime().getTime() >date.getTime())){
+                log.info("sdfds:{},{}",jySceneUserAuth.getLookEndTime().getTime(),date.getTime());
                 sceneAuthVo.setViewAuth(true);
             }
             if(jySceneUserAuth.getEditAuth() == 1 ||

+ 18 - 14
src/main/java/com/fdkankan/manage/service/impl/ManageService.java

@@ -13,13 +13,16 @@ import com.fdkankan.manage.service.*;
 import com.fdkankan.manage.vo.request.ManageLoginRequest;
 import com.fdkankan.manage.vo.response.ManageLoginResponse;
 import com.fdkankan.redis.util.RedisUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Set;
 
 @Service
+@Slf4j
 public class ManageService {
 
     @Autowired
@@ -95,10 +98,6 @@ public class ManageService {
             redisUtil.set(String.format(RedisKeyUtil.loginToken ,result.getToken()), JSONObject.toJSONString(result), RedisKeyUtil.loginTime);
         }
 
-        String redisUserNameKey = String.format(RedisKeyUtil.loginUserName, param.getUserName());
-
-        redisUtil.lRightPush(redisUserNameKey,result.getToken());
-
         return result;
     }
 
@@ -138,21 +137,26 @@ public class ManageService {
     }
 
     public void updateLoginUserStatus(String userName,Integer status) {
-        String redisUserNameKey = String.format(RedisKeyUtil.loginUserName, userName);
 
-        List<String> list = redisUtil.lGet(redisUserNameKey,0,-1);
-        if(list != null && list.size() >0){
-            for (String token : list) {
-                String redisKey = String.format(RedisKeyUtil.loginToken, token);
-                String userStr = redisUtil.get(redisKey);
+        String redisUserNameKey = String.format(RedisKeyUtil.loginToken, "*");
+        Set<String> keys = redisUtil.keys(redisUserNameKey);
+        log.info("登录用户数:{}",keys.size());
+            for (String key : keys) {
+                String userStr = redisUtil.get(key);
                 if(StringUtils.isNotBlank(userStr)){
                     ManageLoginResponse result = JSONObject.parseObject(userStr,ManageLoginResponse.class);
-                    result.setStatus(status);
-                    redisUtil.set(redisKey,JSONObject.toJSONString(result), 2*60*60);
+                    if(result.getUserName().equalsIgnoreCase(userName)){
+                        result.setStatus(status);
+                        String redisKeyTime = String.format(RedisKeyUtil.loginTokenTime,result.getToken());
+                        if(redisUtil.hasKey(redisKeyTime)){
+                            redisUtil.set(key,JSONObject.toJSONString(result),Integer.valueOf(redisUtil.get(redisKeyTime)));
+                            redisUtil.set(redisKeyTime,redisUtil.get(redisKeyTime),Integer.valueOf(redisUtil.get(redisKeyTime)));
+                        }else {
+                            redisUtil.set(key,JSONObject.toJSONString(result), 2*60*60);
+                        }
+                    }
                 }
             }
-        }
-
 
     }
 }