From 8bb85606a294d2c6d2d4840d42a62744d7ef909b Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 27 九月 2024 09:51:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/redis/RedisService.java |   57 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 53 insertions(+), 4 deletions(-)

diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/redis/RedisService.java b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/redis/RedisService.java
similarity index 88%
rename from Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/redis/RedisService.java
rename to Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/redis/RedisService.java
index ed55283..b795342 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/redis/RedisService.java
+++ b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/redis/RedisService.java
@@ -1,4 +1,4 @@
-package com.vci.web.redis;
+package com.vci.starter.web.redis;
 
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -11,6 +11,7 @@
 import org.springframework.data.redis.serializer.RedisSerializer;
 import org.springframework.data.redis.serializer.StringRedisSerializer;
 import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
 
 import java.io.IOException;
 import java.util.*;
@@ -21,10 +22,9 @@
  * @author dangsn
  **/
 @SuppressWarnings(value = { "unchecked", "rawtypes" })
-@Component
+@Service
 @Slf4j
-public class RedisService
-{
+public class RedisService {
     @Autowired(required = false)
     public RedisTemplate redisTemplate;
 
@@ -390,6 +390,55 @@
         return new ArrayList<>();
     }
 
+    /**
+     * 鐢ㄦ埛鐧诲綍
+     * @param currentLoggedUserKey
+     */
+    public void increOnlineUser(String currentLoggedUserKey) {
+        // 妫�鏌ラ敭鏄惁瀛樺湪
+        if (!redisTemplate.hasKey(currentLoggedUserKey)) {
+            // 濡傛灉閿笉瀛樺湪锛屽垵濮嬪寲涓�0
+            redisTemplate.opsForValue().set(currentLoggedUserKey, 0);
+        }
+        // 鑷鍦ㄧ嚎鐢ㄦ埛鏁�
+        redisTemplate.opsForValue().increment(currentLoggedUserKey);
+    }
+
+    /**
+     * 鐢ㄦ埛鐧诲嚭
+     * @param currentLoggedUserKey
+     */
+    public void decreOnlineUser(String currentLoggedUserKey) {
+        // 妫�鏌ュ綋鍓嶅湪绾跨敤鎴锋暟
+        String currentLoggedUser = (String)redisTemplate.opsForValue().get(currentLoggedUserKey);
+
+        if (currentLoggedUser != null) {
+            Long currentCount = Long.parseLong((String)redisTemplate.opsForValue().get(currentLoggedUserKey));
+            if(currentCount > 0){
+
+            }
+            // 鑷噺鍦ㄧ嚎鐢ㄦ埛鏁�
+            redisTemplate.opsForValue().decrement(currentLoggedUserKey);
+        }
+    }
+
+    /**
+     * 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛鎬讳汉鏁�
+     * @param currentLoggedUserKey
+     * @return
+     */
+    public long getCurrentOnlineUserCount(String currentLoggedUserKey) {
+        return Long.parseLong(redisTemplate.opsForValue().get(currentLoggedUserKey).toString());
+    }
+
+    /**
+     * 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛鐨勭敤鎴峰悕鍒楄〃
+     * @param currentLoggedUserKey
+     * @return
+     */
+    public Set<String> getCurrentLoggedUsers(String currentLoggedUserKey) {
+        return redisTemplate.opsForSet().members(currentLoggedUserKey);
+    }
 
     /**
      * 鍩轰簬Lua鑴氭湰瀹炵幇鍘熷瓙鏌ヨ骞跺垹闄�

--
Gitblit v1.9.3