From 3cc66f911c6a7b0d55ddb58c67e16963195ea351 Mon Sep 17 00:00:00 2001
From: zhaoxiaohao <279049017@qq.com>
Date: Mon, 08 Mar 2021 18:42:39 +0800
Subject: [PATCH] 账号强制被踢出登录状态逻辑的优化

---
 kidgrow-uaa/kidgrow-uaa-biz/src/main/java/com/kidgrow/oauth2/service/impl/RedisTokensServiceImpl.java |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/kidgrow-uaa/kidgrow-uaa-biz/src/main/java/com/kidgrow/oauth2/service/impl/RedisTokensServiceImpl.java b/kidgrow-uaa/kidgrow-uaa-biz/src/main/java/com/kidgrow/oauth2/service/impl/RedisTokensServiceImpl.java
index 0d931f5..dc7af4f 100644
--- a/kidgrow-uaa/kidgrow-uaa-biz/src/main/java/com/kidgrow/oauth2/service/impl/RedisTokensServiceImpl.java
+++ b/kidgrow-uaa/kidgrow-uaa-biz/src/main/java/com/kidgrow/oauth2/service/impl/RedisTokensServiceImpl.java
@@ -4,9 +4,12 @@
 import cn.hutool.core.util.StrUtil;
 import com.kidgrow.common.constant.SecurityConstants;
 import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.common.utils.StringUtils;
 import com.kidgrow.redis.template.RedisRepository;
 import com.kidgrow.oauth2.model.TokenVo;
 import com.kidgrow.oauth2.service.ITokensService;
+import com.kidgrow.redis.util.RedisUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,6 +35,8 @@
 public class RedisTokensServiceImpl implements ITokensService {
     @Autowired
     private RedisRepository redisRepository;
+    @Autowired
+    private RedisUtils redisUtils;
 
     @Override
     public PageResult<TokenVo> listTokens(Map<String, Object> params, String clientId) {
@@ -81,4 +86,27 @@
         }
         return result;
     }
+
+    @Override
+    public ResultBody getBeforLogin(Map<String, Object> map) {
+        String name = MapUtils.getString(map, "name");
+        if (StringUtils.isBlank(name)) {
+            return ResultBody.failed("请输入用户名");
+        }
+        String webApp = MapUtils.getString(map, "webApp");
+        if (StringUtils.isBlank(webApp)) {
+            return ResultBody.failed("请输入应用id");
+        }
+        List<Object> objectList = redisUtils.lGet(SecurityConstants.REDIS_UNAME_TO_ACCESS+webApp+":"+name,0,0
+        );
+        if(objectList!=null){
+            if (objectList.size()>0) {
+                return ResultBody.ok().data(false);
+            }else {
+                return ResultBody.ok().data(true);
+            }
+        }else {
+            return ResultBody.ok().data(true);
+        }
+    }
 }

--
Gitblit v1.8.0