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