From 1db50ecdccd7a981888ee33c65e31b7f2f9f4733 Mon Sep 17 00:00:00 2001
From: MercuryZ <zdmisif@126.com>
Date: 星期四, 31 三月 2022 14:09:08 +0800
Subject: [PATCH] fix 操作日志

---
 sandu-common/src/main/java/com/sandu/common/redis/online/OnlineUserService.java |  226 ++++++++++++++++++++++++++++----------------------------
 1 files changed, 113 insertions(+), 113 deletions(-)

diff --git a/sandu-common/src/main/java/com/sandu/common/redis/online/OnlineUserService.java b/sandu-common/src/main/java/com/sandu/common/redis/online/OnlineUserService.java
index 3a5f287..e83e7e5 100644
--- a/sandu-common/src/main/java/com/sandu/common/redis/online/OnlineUserService.java
+++ b/sandu-common/src/main/java/com/sandu/common/redis/online/OnlineUserService.java
@@ -1,115 +1,115 @@
-//package com.sandu.common.redis.online;
-//
-//import cn.hutool.extra.servlet.ServletUtil;
-//import cn.hutool.http.useragent.UserAgent;
-//import cn.hutool.http.useragent.UserAgentInfo;
-//import cn.hutool.http.useragent.UserAgentUtil;
-//import com.baomidou.mybatisplus.core.toolkit.StringUtils;
-//import com.sandu.common.redis.RedisService;
-//import com.sandu.common.security.config.SecurityProperties;
-//import lombok.extern.slf4j.Slf4j;
-//import org.springframework.security.core.userdetails.UserDetails;
-//
-//import javax.servlet.http.HttpServletRequest;
-//import java.time.LocalDateTime;
-//import java.util.ArrayList;
-//import java.util.List;
-//import java.util.Optional;
-//import java.util.Set;
-//
-///**
-// * @author chenjiantian
-// * @date 2021/8/6 16:26
-// * 鍦ㄧ嚎鐢ㄦ埛鏈嶅姟绫�
-// * 鍦� BaseRedisConfig 娉ㄥ叆
-// */
-//@Slf4j
-//public class OnlineUserService {
-//
-//    private final SecurityProperties properties;
-//    private final RedisService redisService;
-//
-//    public OnlineUserService(SecurityProperties properties, RedisService redisService) {
-//        this.properties = properties;
-//        this.redisService = redisService;
-//    }
-//
-//    /**
-//     * 淇濆瓨鍦ㄧ嚎鐢ㄦ埛淇℃伅
-//     */
-//    public void save(UserDetails userDetails, String token, Long userId,HttpServletRequest request) {
-//        String ip = ServletUtil.getClientIP(request);
-//        UserAgent userAgent = UserAgentUtil.parse(request.getHeader("User-Agent"));
-//        String browser = Optional.ofNullable(userAgent).map(UserAgent::getBrowser).map(UserAgentInfo::getName).orElse("");
-//        OnlineUser onlineUser = new OnlineUser(userId,userDetails.getUsername(), token, ip, browser, LocalDateTime.now());
-////        redisService.set(properties.getOnlineKey() + token, onlineUser, properties.getTokenValidityInSeconds() / 1000);
-//        redisService.set(properties.getOnlineKey() + userDetails.getUsername(), onlineUser);
-//    }
-//
-//    /**
-//     * 鏌ヨ鍏ㄩ儴鏁版嵁
-//     *
-//     * @param filter
-//     * @return
-//     */
-//    public List<OnlineUser> getAll(String filter) {
-//        Set<String> keys = redisService.keys(properties.getOnlineKey() + "*");
-//
-//        List<OnlineUser> onlineUsers = new ArrayList<>();
-//        for (String key : keys) {
-//            OnlineUser onlineUser = (OnlineUser) redisService.get(key);
-//            if (StringUtils.isNotBlank(filter)) {
-//                if (onlineUser.toString().contains(filter)) {
-//                    onlineUsers.add(onlineUser);
-//                }
-//            } else {
-//                onlineUsers.add(onlineUser);
-//            }
-//        }
-//        onlineUsers.sort((o1, o2) -> o2.getLoginTime().compareTo(o1.getLoginTime()));
-//        return onlineUsers;
-//    }
-//
-//    private boolean kickOut(String token) throws Exception {
-//        token = properties.getOnlineKey() + token;
-//        return redisService.del(token);
-//    }
-//
-//    public OnlineUser getOne(String key) {
-//        return (OnlineUser) redisService.get(key);
-//    }
-//
-//    /**
-//     * 妫�娴嬬敤鎴锋槸鍚﹀湪涔嬪墠宸茬粡鐧诲綍锛屽凡缁忕櫥褰曡涪涓嬬嚎
-//     *
-//     * @param userName 鐢ㄦ埛鍚�
-//     */
-//    public void checkLoginOnUser(String userName, String ignoreToken) {
-////        List<OnlineUser> onlineUsers = getAll(userName);
-////        if (onlineUsers == null || onlineUsers.isEmpty()) {
-////            return;
-////        }
-//        OnlineUser onlineUser = getOne(properties.getOnlineKey() + userName);
-//        if(onlineUser == null){
+package com.sandu.common.redis.online;
+
+import cn.hutool.extra.servlet.ServletUtil;
+import cn.hutool.http.useragent.UserAgent;
+import cn.hutool.http.useragent.UserAgentInfo;
+import cn.hutool.http.useragent.UserAgentUtil;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.sandu.common.redis.RedisService;
+import com.sandu.common.security.config.SecurityProperties;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.security.core.userdetails.UserDetails;
+
+import javax.servlet.http.HttpServletRequest;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+import java.util.Set;
+
+/**
+ * @author chenjiantian
+ * @date 2021/8/6 16:26
+ * 鍦ㄧ嚎鐢ㄦ埛鏈嶅姟绫�
+ * 鍦� BaseRedisConfig 娉ㄥ叆
+ */
+@Slf4j
+public class OnlineUserService {
+
+    private final SecurityProperties properties;
+    private final RedisService redisService;
+
+    public OnlineUserService(SecurityProperties properties, RedisService redisService) {
+        this.properties = properties;
+        this.redisService = redisService;
+    }
+
+    /**
+     * 淇濆瓨鍦ㄧ嚎鐢ㄦ埛淇℃伅
+     */
+    public void save(UserDetails userDetails, String token, Long userId,HttpServletRequest request) {
+        String ip = ServletUtil.getClientIP(request);
+        UserAgent userAgent = UserAgentUtil.parse(request.getHeader("User-Agent"));
+        String browser = Optional.ofNullable(userAgent).map(UserAgent::getBrowser).map(UserAgentInfo::getName).orElse("");
+        OnlineUser onlineUser = new OnlineUser(userId,userDetails.getUsername(), token, ip, browser, LocalDateTime.now());
+//        redisService.set(properties.getOnlineKey() + token, onlineUser, properties.getTokenValidityInSeconds() / 1000);
+        redisService.set(properties.getOnlineKey() + userDetails.getUsername(), onlineUser);
+    }
+
+    /**
+     * 鏌ヨ鍏ㄩ儴鏁版嵁
+     *
+     * @param filter
+     * @return
+     */
+    public List<OnlineUser> getAll(String filter) {
+        Set<String> keys = redisService.keys(properties.getOnlineKey() + "*");
+
+        List<OnlineUser> onlineUsers = new ArrayList<>();
+        for (String key : keys) {
+            OnlineUser onlineUser = (OnlineUser) redisService.get(key);
+            if (StringUtils.isNotBlank(filter)) {
+                if (onlineUser.toString().contains(filter)) {
+                    onlineUsers.add(onlineUser);
+                }
+            } else {
+                onlineUsers.add(onlineUser);
+            }
+        }
+        onlineUsers.sort((o1, o2) -> o2.getLoginTime().compareTo(o1.getLoginTime()));
+        return onlineUsers;
+    }
+
+    private boolean kickOut(String token) throws Exception {
+        token = properties.getOnlineKey() + token;
+        return redisService.del(token);
+    }
+
+    public OnlineUser getOne(String key) {
+        return (OnlineUser) redisService.get(key);
+    }
+
+    /**
+     * 妫�娴嬬敤鎴锋槸鍚﹀湪涔嬪墠宸茬粡鐧诲綍锛屽凡缁忕櫥褰曡涪涓嬬嚎
+     *
+     * @param userName 鐢ㄦ埛鍚�
+     */
+    public void checkLoginOnUser(String userName, String ignoreToken) {
+//        List<OnlineUser> onlineUsers = getAll(userName);
+//        if (onlineUsers == null || onlineUsers.isEmpty()) {
 //            return;
 //        }
-////        for (OnlineUser onlineUser : onlineUsers) {
-//            if (onlineUser.getUserName().equals(userName)) {
-//                try {
-//                    String token = onlineUser.getToken();
-//                    if (StringUtils.isNotBlank(ignoreToken) && !ignoreToken.equals(token)) {
-//                        this.kickOut(token);
-//                    } else if (StringUtils.isBlank(ignoreToken)) {
-//                        this.kickOut(token);
-//                    }
-//                } catch (Exception e) {
-//                    log.error("checkUser is error", e);
-//                }
-//            }
-////        }
-//    }
-//
-//    public void updateOne(OnlineUser onlineUser) {
-//        redisService.set(properties.getOnlineKey() + onlineUser.getUserName(), onlineUser);
-//    }
-//}
+        OnlineUser onlineUser = getOne(properties.getOnlineKey() + userName);
+        if(onlineUser == null){
+            return;
+        }
+//        for (OnlineUser onlineUser : onlineUsers) {
+        if (onlineUser.getUserName().equals(userName)) {
+            try {
+                String token = onlineUser.getToken();
+                if (StringUtils.isNotBlank(ignoreToken) && !ignoreToken.equals(token)) {
+                    this.kickOut(token);
+                } else if (StringUtils.isBlank(ignoreToken)) {
+                    this.kickOut(token);
+                }
+            } catch (Exception e) {
+                log.error("checkUser is error", e);
+            }
+        }
+//        }
+    }
+
+    public void updateOne(OnlineUser onlineUser) {
+        redisService.set(properties.getOnlineKey() + onlineUser.getUserName(), onlineUser);
+    }
+}

--
Gitblit v1.9.3