From eca8ea1eb619ea64366912f1045196a45b978b1c Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期五, 10 九月 2021 15:41:23 +0800 Subject: [PATCH] fix 修复 @Cacheable 与 @DataScope 冲突问题 --- ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java | 53 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 47 insertions(+), 6 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java index 6c4c239..23a25e0 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java @@ -5,20 +5,57 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import java.util.*; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.concurrent.TimeUnit; +import java.util.function.Consumer; /** * spring redis 宸ュ叿绫� * * @author shenxinquan + * @see com.ruoyi.common.utils.RedisUtils + * @deprecated 3.2.0 鍒犻櫎姝ょ被 **/ @SuppressWarnings(value = {"unchecked", "rawtypes"}) @Component +@Deprecated public class RedisCache { @Autowired private RedissonClient redissonClient; + + /** + * 鍙戝竷閫氶亾娑堟伅 + * + * @param channelKey 閫氶亾key + * @param msg 鍙戦�佹暟鎹� + * @param consumer 鑷畾涔夊鐞� + */ + public <T> void publish(String channelKey, T msg, Consumer<T> consumer) { + RTopic topic = redissonClient.getTopic(channelKey); + topic.publish(msg); + consumer.accept(msg); + } + + public <T> void publish(String channelKey, T msg) { + RTopic topic = redissonClient.getTopic(channelKey); + topic.publish(msg); + } + + /** + * 璁㈤槄閫氶亾鎺ユ敹娑堟伅 + * + * @param channelKey 閫氶亾key + * @param clazz 娑堟伅绫诲瀷 + * @param consumer 鑷畾涔夊鐞� + */ + public <T> void subscribe(String channelKey, Class<T> clazz, Consumer<T> consumer) { + RTopic topic = redissonClient.getTopic(channelKey); + topic.addListener(clazz, (channel, msg) -> consumer.accept(msg)); + } /** * 缂撳瓨鍩烘湰鐨勫璞★紝Integer銆丼tring銆佸疄浣撶被绛� @@ -96,8 +133,12 @@ * @param collection 澶氫釜瀵硅薄 * @return */ - public long deleteObject(final Collection collection) { - return redissonClient.getKeys().delete(Arrays.toString(collection.toArray())); + public void deleteObject(final Collection collection) { + RBatch batch = redissonClient.createBatch(); + collection.forEach(t->{ + batch.getBucket(t.toString()).deleteAsync(); + }); + batch.execute(); } /** @@ -201,9 +242,9 @@ * @param hKeys Hash閿泦鍚� * @return Hash瀵硅薄闆嗗悎 */ - public <T> List<T> getMultiCacheMapValue(final String key, final Collection<Object> hKeys) { - RListMultimap rListMultimap = redissonClient.getListMultimap(key); - return rListMultimap.getAll(hKeys); + public <K,V> Map<K,V> getMultiCacheMapValue(final String key, final Set<K> hKeys) { + RMap<K,V> rMap = redissonClient.getMap(key); + return rMap.getAll(hKeys); } /** -- Gitblit v1.9.3