From bf9f5d506d34cbbcc68f77cdf71e30a6cf3cd7d4 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 09 八月 2023 13:50:07 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/service/sys/TokenService.java |  118 ++++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 68 insertions(+), 50 deletions(-)

diff --git a/src/main/java/com/lf/server/service/sys/TokenService.java b/src/main/java/com/lf/server/service/sys/TokenService.java
index 233c8ce..5203629 100644
--- a/src/main/java/com/lf/server/service/sys/TokenService.java
+++ b/src/main/java/com/lf/server/service/sys/TokenService.java
@@ -1,8 +1,9 @@
 package com.lf.server.service.sys;
 
+import com.lf.server.entity.all.SettingData;
 import com.lf.server.entity.sys.LoginEntity;
 import com.lf.server.entity.sys.TokenEntity;
-import com.lf.server.entity.sys.UsersEntity;
+import com.lf.server.entity.sys.UserEntity;
 import com.lf.server.entity.all.RedisCacheKey;
 import com.lf.server.helper.StringHelper;
 import com.lf.server.helper.WebHelper;
@@ -26,25 +27,29 @@
 @Service
 public class TokenService implements TokenMapper {
     @Autowired
-    private RedisService redisService;
-
-    @Autowired
     TokenMapper tokenMapper;
 
     @Autowired
-    UsersService usersService;
+    UserService usersService;
 
     @Autowired
     LoginService loginService;
 
+    @Autowired
+    RedisService redisService;
+
     @Override
-    public Integer selectCount(String token) {
-        return tokenMapper.selectCount(token);
+    public Integer selectCount(String name, Integer type) {
+        name = StringHelper.getLikeUpperStr(name);
+
+        return tokenMapper.selectCount(name, type);
     }
 
     @Override
-    public List<TokenEntity> selectByPage(String token, Integer limit, Integer offset) {
-        return tokenMapper.selectByPage(token, limit, offset);
+    public List<TokenEntity> selectByPage(String name, Integer type, Integer limit, Integer offset) {
+        name = StringHelper.getLikeUpperStr(name);
+
+        return tokenMapper.selectByPage(name, type, limit, offset);
     }
 
     @Override
@@ -94,32 +99,22 @@
 
     /**
      * 鑾峰彇鏂扮殑浠ょ墝瀹炰綋绫�
-     *
-     * @param userid
-     * @param req
-     * @return
      */
-    public TokenEntity getNewToken(int userid, HttpServletRequest req) {
-        int duration = 240;
-
+    public TokenEntity getNewToken(UserEntity ue, HttpServletRequest req) {
         TokenEntity te = new TokenEntity();
         te.setToken(WebHelper.getGuid());
-        te.setDuration(duration);
-        te.setExpire(WebHelper.getTimestamp(duration));
+        te.setDuration(SettingData.TOKEN_EXPIRE);
+        te.setExpire(WebHelper.getTimestamp(SettingData.TOKEN_EXPIRE));
         te.setType(0);
         te.setIp(WebHelper.getIpAddress(req));
-        te.setCreateUser(userid);
-
+        te.setCreateUser(ue.getId());
+        te.setUname(ue.getUname());
 
         return te;
     }
 
     /**
      * 鏄�/鍚︾櫥褰�
-     *
-     * @param req
-     * @param res
-     * @return
      */
     public Boolean isLogin(HttpServletRequest req, HttpServletResponse res) {
         String token = WebHelper.getToken(req);
@@ -145,10 +140,6 @@
 
     /**
      * 鐧诲嚭
-     *
-     * @param token
-     * @param req
-     * @return
      */
     public Boolean logout(String token, HttpServletRequest req, HttpServletResponse res) {
         TokenEntity te = getEntityByToken(token);
@@ -156,20 +147,24 @@
             return false;
         }
 
-        // 娓呴櫎Cookie WebHelper.saveCookie(StaticData.TOKEN_COOKIE_KEY, "", 60, res)
-        WebHelper.deleteAll(req, res);
+        // 娓呴櫎Cookie
+        WebHelper.deleteCookies(req, res);
 
         // 鑾峰彇褰撳墠鐢ㄦ埛
-        UsersEntity ue = getCurrentUser(req);
+        UserEntity ue = getCurrentUser(req);
         if (ue == null) {
             return false;
         }
 
         // 娓呴櫎缂撳瓨
         String tokenKey = RedisCacheKey.signTokenKey(token);
-        redisService.delete(tokenKey);
+        if (redisService.hasKey(tokenKey)) {
+            redisService.delete(tokenKey);
+        }
         String userKey = RedisCacheKey.signUserKey(te.getToken());
-        redisService.delete(userKey);
+        if (redisService.hasKey(userKey)) {
+            redisService.delete(userKey);
+        }
 
         // db锛岃缃护鐗岃繃鏈�
         te.setUpdateUser(ue.getId());
@@ -179,7 +174,7 @@
         }
 
         // 鍐欐棩蹇�
-        LoginEntity le = loginService.getNewLogin(ue.getId(), 3, req);
+        LoginEntity le = loginService.getNewLogin(ue.getId(), 1, 3, 1, req);
         rows = loginService.insertLogin(le);
 
         return rows > 0;
@@ -187,9 +182,6 @@
 
     /**
      * 鏍规嵁浠ょ墝鑾峰彇瀹炰綋
-     *
-     * @param token
-     * @return
      */
     public TokenEntity getEntityByToken(String token) {
         if (StringHelper.isNull(token)) {
@@ -200,7 +192,7 @@
 
         // redis
         Object obj = redisService.get(tokenKey);
-        if (obj != null && obj instanceof TokenEntity) {
+        if (obj instanceof TokenEntity) {
             return (TokenEntity) obj;
         }
 
@@ -215,12 +207,8 @@
 
     /**
      * 淇濆瓨token
-     *
-     * @param te
-     * @param req
-     * @param res
      */
-    public void saveToken(UsersEntity ue, TokenEntity te, HttpServletRequest req, HttpServletResponse res) {
+    public void saveToken(UserEntity ue, TokenEntity te, HttpServletRequest req, HttpServletResponse res) {
         // 淇濆瓨鑷矯ookie
         WebHelper.saveToken2Cookie(te.getToken(), req, res);
 
@@ -235,11 +223,8 @@
 
     /**
      * 鑾峰彇褰撳墠鐢ㄦ埛
-     *
-     * @param req
-     * @return
      */
-    public UsersEntity getCurrentUser(HttpServletRequest req) {
+    public UserEntity getCurrentUser(HttpServletRequest req) {
         String token = WebHelper.getToken(req);
         if (StringHelper.isNull(token)) {
             return null;
@@ -249,12 +234,12 @@
 
         // redis
         Object obj = redisService.get(userKey);
-        if (obj != null && obj instanceof UsersEntity) {
-            return (UsersEntity) obj;
+        if (obj instanceof UserEntity) {
+            return (UserEntity) obj;
         }
 
         // db
-        UsersEntity ue = usersService.selectByToken(token);
+        UserEntity ue = usersService.selectByToken(token);
         if (ue != null) {
             TokenEntity te = getEntityByToken(token);
             if (te != null) {
@@ -264,4 +249,37 @@
 
         return ue;
     }
+
+    /**
+     * 璁剧疆瀵嗙爜閿欒缂撳瓨
+     */
+    public void setPwdErrCache(UserEntity ue) {
+        String key = RedisCacheKey.signPwdError(ue.getUid());
+        Object objCount = redisService.get(key);
+
+        int count = objCount == null ? 1 : (int) objCount + 1;
+        redisService.put(key, count, SettingData.PWD_ERR_TIME, TimeUnit.MINUTES);
+
+        // 璁板綍鏃ュ織
+        HttpServletRequest req = WebHelper.getRequest();
+        LoginEntity le = loginService.getNewLogin(ue.getId(), 1, 1, 0, req);
+        le.setDescr("瀵嗙爜涓嶆纭�");
+        loginService.insertLogin(le);
+
+        if (count >= SettingData.PWD_ERR_COUNT) {
+            String token = WebHelper.getToken(req);
+            HttpServletResponse res = WebHelper.getResponse();
+            logout(token, req, res);
+        }
+    }
+
+    /**
+     * 鐢ㄦ埛ID鏄�/鍚︾鐢�
+     */
+    public boolean isUidDisable(UserEntity ue) {
+        String key = RedisCacheKey.signPwdError(ue.getUid());
+        Object objCount = redisService.get(key);
+
+        return objCount != null && (int) objCount >= SettingData.PWD_ERR_COUNT;
+    }
 }

--
Gitblit v1.9.3