From c15739adf58aa87002516f151d6314b8caecbb29 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期五, 30 九月 2022 12:39:47 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/service/data/TokenService.java |   76 ++++++++++++++++++++++++++++++++------
 1 files changed, 64 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/lf/server/service/data/TokenService.java b/src/main/java/com/lf/server/service/data/TokenService.java
index a186211..66436ca 100644
--- a/src/main/java/com/lf/server/service/data/TokenService.java
+++ b/src/main/java/com/lf/server/service/data/TokenService.java
@@ -1,5 +1,7 @@
 package com.lf.server.service.data;
 
+import com.lf.server.entity.all.StaticData;
+import com.lf.server.entity.data.LoginEntity;
 import com.lf.server.entity.data.TokenEntity;
 import com.lf.server.entity.data.UsersEntity;
 import com.lf.server.entity.sys.RedisCacheKey;
@@ -32,6 +34,9 @@
     @Autowired
     UsersService usersService;
 
+    @Autowired
+    LoginService loginService;
+
     @Override
     public Integer selectCount(String token) {
         return tokenMapper.selectCount(token);
@@ -40,6 +45,21 @@
     @Override
     public List<TokenEntity> selectByPage(String token, Integer limit, Integer offset) {
         return tokenMapper.selectByPage(token, limit, offset);
+    }
+
+    @Override
+    public TokenEntity selectToken(int id) {
+        return tokenMapper.selectToken(id);
+    }
+
+    @Override
+    public TokenEntity selectOneByToken(String token) {
+        return tokenMapper.selectOneByToken(token);
+    }
+
+    @Override
+    public List<TokenEntity> selectTokenAll() {
+        return tokenMapper.selectTokenAll();
     }
 
     @Override
@@ -68,18 +88,8 @@
     }
 
     @Override
-    public TokenEntity selectToken(int id) {
-        return tokenMapper.selectToken(id);
-    }
-
-    @Override
-    public TokenEntity selectOneByToken(String token) {
-        return tokenMapper.selectOneByToken(token);
-    }
-
-    @Override
-    public List<TokenEntity> selectTokenAll() {
-        return tokenMapper.selectTokenAll();
+    public Integer updateTokenExpire(TokenEntity tokenEntity) {
+        return tokenMapper.updateTokenExpire(tokenEntity);
     }
 
     /**
@@ -134,6 +144,48 @@
     }
 
     /**
+     * 鐧诲嚭
+     *
+     * @param token
+     * @param req
+     * @return
+     */
+    public Boolean logout(String token, HttpServletRequest req) {
+        TokenEntity te = getEntityByToken(token);
+        if (te == null) {
+            return false;
+        }
+
+        // 娓呴櫎Cookie
+        WebHelper.deleteCookie(StaticData.TOKEN_COOKIE_KEY, req);
+
+        // 娓呴櫎缂撳瓨
+        String tokenKey = RedisCacheKey.signTokenKey(token);
+        redisService.delete(tokenKey);
+
+        // 鑾峰彇褰撳墠鐢ㄦ埛
+        UsersEntity ue = getCurrentUser(req);
+        if (te == null) {
+            return false;
+        }
+
+        // db锛岃缃护鐗岃繃鏈�
+        te.setUpdateUser(ue.getId());
+        Integer rows = updateTokenExpire(te);
+        if (rows == 0) {
+            return false;
+        }
+
+        // 鍐欐棩蹇�
+        LoginEntity le = loginService.getNewLogin(ue.getId(), req);
+        le.setType(3);
+
+        rows = loginService.insertLogin(le);
+
+        return rows > 0;
+    }
+
+    /**
      * 鏍规嵁浠ょ墝鑾峰彇瀹炰綋
      *
      * @param token

--
Gitblit v1.9.3