From f9a9431958e58903d97a86cd08497165ae77beaf Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期日, 14 八月 2022 01:49:05 +0800
Subject: [PATCH] update 优化 pr215 解决一些问题

---
 ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/CacheUtils.java |   23 +++++++++++++++++++----
 1 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/cache/CacheUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/CacheUtils.java
similarity index 65%
rename from ruoyi-common/src/main/java/com/ruoyi/common/utils/cache/CacheUtils.java
rename to ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/CacheUtils.java
index 6f77ae8..9e0b09b 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/cache/CacheUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/CacheUtils.java
@@ -1,9 +1,13 @@
-package com.ruoyi.common.utils.cache;
+package com.ruoyi.common.utils.redis;
 
 import com.ruoyi.common.utils.spring.SpringUtils;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
+import org.redisson.api.RMap;
+import org.springframework.cache.Cache;
 import org.springframework.cache.CacheManager;
+
+import java.util.Set;
 
 /**
  * 缂撳瓨鎿嶄綔宸ュ叿绫� {@link }
@@ -12,10 +16,20 @@
  * @date 2022/8/13
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-@SuppressWarnings(value = {"unchecked", "rawtypes"})
+@SuppressWarnings(value = {"unchecked"})
 public class CacheUtils {
 
     private static final CacheManager CACHE_MANAGER = SpringUtils.getBean(CacheManager.class);
+
+    /**
+     * 鑾峰彇缂撳瓨缁勫唴鎵�鏈夌殑KEY
+     *
+     * @param cacheNames 缂撳瓨缁勫悕绉�
+     */
+    public static Set<Object> keys(String cacheNames) {
+        RMap<Object, Object> rmap = (RMap<Object, Object>) CACHE_MANAGER.getCache(cacheNames).getNativeCache();
+        return rmap.keySet();
+    }
 
     /**
      * 鑾峰彇缂撳瓨鍊�
@@ -23,8 +37,9 @@
      * @param cacheNames 缂撳瓨缁勫悕绉�
      * @param key        缂撳瓨key
      */
-    public static Object get(String cacheNames, Object key) {
-        return CACHE_MANAGER.getCache(cacheNames).get(key).get();
+    public static <T> T get(String cacheNames, Object key) {
+        Cache.ValueWrapper wrapper = CACHE_MANAGER.getCache(cacheNames).get(key);
+        return wrapper != null ? (T) wrapper.get() : null;
     }
 
     /**

--
Gitblit v1.9.3