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 +++++++++--
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssServiceImpl.java | 19 ++++-----
ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java | 12 +++---
ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheNames.java | 10 +++++
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java | 8 ++--
ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java | 14 +------
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssService.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java | 2
11 files changed, 54 insertions(+), 42 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java
index f3c3cd9..d15a13d 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java
@@ -96,7 +96,7 @@
@SaCheckPermission("system:oss:download")
@GetMapping("/download/{ossId}")
public void download(@PathVariable Long ossId, HttpServletResponse response) throws IOException {
- SysOss sysOss = iSysOssService.getById(ossId);
+ SysOssVo sysOss = iSysOssService.getById(ossId);
if (ObjectUtil.isNull(sysOss)) {
throw new ServiceException("鏂囦欢鏁版嵁涓嶅瓨鍦�!");
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheNames.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheNames.java
index d36818b..591ca25 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheNames.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheNames.java
@@ -31,8 +31,18 @@
String SYS_DICT = "sys_dict";
/**
+ * OSS鍐呭
+ */
+ String SYS_OSS = "sys_oss#30d";
+
+ /**
* OSS閰嶇疆
*/
String SYS_OSS_CONFIG = "sys_oss_config";
+ /**
+ * 鍦ㄧ嚎鐢ㄦ埛
+ */
+ String ONLINE_TOKEN = "online_tokens";
+
}
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;
}
/**
diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java
index 1d1a777..0f9a052 100644
--- a/ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java
+++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java
@@ -11,19 +11,9 @@
public interface OssConstant {
/**
- * OSS妯″潡KEY
+ * 榛樿閰嶇疆KEY
*/
- String SYS_OSS_KEY = "sys_oss:";
-
- /**
- * 瀵硅薄瀛樺偍閰嶇疆KEY
- */
- String OSS_CONFIG_KEY = "OssConfig";
-
- /**
- * 缂撳瓨閰嶇疆KEY
- */
- String CACHE_CONFIG_KEY = SYS_OSS_KEY + OSS_CONFIG_KEY;
+ String DEFAULT_CONFIG_KEY = "sys_oss:default_config";
/**
* 棰勮鍒楄〃璧勬簮寮�鍏矺ey
diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java
index 68c3736..c3312d7 100644
--- a/ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java
+++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java
@@ -3,7 +3,7 @@
import com.ruoyi.common.constant.CacheNames;
import com.ruoyi.common.utils.JsonUtils;
import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.cache.CacheUtils;
+import com.ruoyi.common.utils.redis.CacheUtils;
import com.ruoyi.common.utils.redis.RedisUtils;
import com.ruoyi.oss.constant.OssConstant;
import com.ruoyi.oss.core.OssClient;
@@ -29,7 +29,7 @@
*/
public static void init() {
log.info("鍒濆鍖朞SS宸ュ巶");
- RedisUtils.subscribe(OssConstant.CACHE_CONFIG_KEY, String.class, configKey -> {
+ RedisUtils.subscribe(OssConstant.DEFAULT_CONFIG_KEY, String.class, configKey -> {
OssClient client = getClient(configKey);
// 鏈垵濮嬪寲涓嶅鐞�
if (client != null) {
@@ -44,7 +44,7 @@
*/
public static OssClient instance() {
// 鑾峰彇redis 榛樿绫诲瀷
- String configKey = (String) CacheUtils.get(CacheNames.SYS_OSS_CONFIG, OssConstant.OSS_CONFIG_KEY);
+ String configKey = RedisUtils.getCacheObject(OssConstant.DEFAULT_CONFIG_KEY);
if (StringUtils.isEmpty(configKey)) {
throw new OssException("鏂囦欢瀛樺偍鏈嶅姟绫诲瀷鏃犳硶鎵惧埌!");
}
@@ -64,11 +64,11 @@
}
private static void refresh(String configKey) {
- Object json = CacheUtils.get(CacheNames.SYS_OSS_CONFIG, configKey);
- OssProperties properties = JsonUtils.parseObject(json.toString(), OssProperties.class);
- if (properties == null) {
+ String json = CacheUtils.get(CacheNames.SYS_OSS_CONFIG, configKey);
+ if (json == null) {
throw new OssException("绯荤粺寮傚父, '" + configKey + "'閰嶇疆淇℃伅涓嶅瓨鍦�!");
}
+ OssProperties properties = JsonUtils.parseObject(json, OssProperties.class);
CLIENT_CACHE.put(configKey, new OssClient(configKey, properties));
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssService.java
index c55e5bc..f02ea3d 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssService.java
@@ -21,7 +21,7 @@
List<SysOssVo> listByIds(Collection<Long> ossIds);
- SysOss getById(Long ossId);
+ SysOssVo getById(Long ossId);
SysOss upload(MultipartFile file);
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java
index 6f0ebdc..da0ee39 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java
@@ -12,7 +12,7 @@
import com.ruoyi.common.core.service.ConfigService;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.cache.CacheUtils;
+import com.ruoyi.common.utils.redis.CacheUtils;
import com.ruoyi.system.domain.SysConfig;
import com.ruoyi.system.mapper.SysConfigMapper;
import com.ruoyi.system.service.ISysConfigService;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java
index c003f47..6b80cf4 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java
@@ -8,7 +8,7 @@
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.cache.CacheUtils;
+import com.ruoyi.common.utils.redis.CacheUtils;
import com.ruoyi.system.mapper.SysDictDataMapper;
import com.ruoyi.system.service.ISysDictDataService;
import lombok.RequiredArgsConstructor;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java
index b65bcc5..00e88b8 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java
@@ -15,7 +15,7 @@
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.StreamUtils;
import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.cache.CacheUtils;
+import com.ruoyi.common.utils.redis.CacheUtils;
import com.ruoyi.system.mapper.SysDictDataMapper;
import com.ruoyi.system.mapper.SysDictTypeMapper;
import com.ruoyi.system.service.ISysDictTypeService;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java
index 1f9cece..8ceff7c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java
@@ -14,7 +14,7 @@
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.JsonUtils;
import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.cache.CacheUtils;
+import com.ruoyi.common.utils.redis.CacheUtils;
import com.ruoyi.common.utils.redis.RedisUtils;
import com.ruoyi.oss.constant.OssConstant;
import com.ruoyi.oss.factory.OssFactory;
@@ -55,7 +55,7 @@
for (SysOssConfig config : list) {
String configKey = config.getConfigKey();
if ("0".equals(config.getStatus())) {
- CacheUtils.put(CacheNames.SYS_OSS_CONFIG, OssConstant.OSS_CONFIG_KEY, configKey);
+ RedisUtils.setCacheObject(OssConstant.DEFAULT_CONFIG_KEY, configKey);
}
setConfigCache(true, config);
}
@@ -159,7 +159,7 @@
.set(SysOssConfig::getStatus, "1"));
row += baseMapper.updateById(sysOssConfig);
if (row > 0) {
- CacheUtils.put(CacheNames.SYS_OSS_CONFIG, OssConstant.OSS_CONFIG_KEY, sysOssConfig.getConfigKey());
+ RedisUtils.setCacheObject(OssConstant.DEFAULT_CONFIG_KEY, sysOssConfig.getConfigKey());
}
return row;
}
@@ -174,7 +174,7 @@
private boolean setConfigCache(boolean flag, SysOssConfig config) {
if (flag) {
CacheUtils.put(CacheNames.SYS_OSS_CONFIG, config.getConfigKey(), JsonUtils.toJsonString(config));
- RedisUtils.publish(OssConstant.CACHE_CONFIG_KEY, config.getConfigKey(), msg -> {
+ RedisUtils.publish(OssConstant.DEFAULT_CONFIG_KEY, config.getConfigKey(), msg -> {
log.info("鍙戝竷鍒锋柊OSS閰嶇疆 => " + msg);
});
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssServiceImpl.java
index 03a6cfc..514e68e 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssServiceImpl.java
@@ -4,12 +4,11 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.constant.CacheNames;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.redis.RedisUtils;
-import com.ruoyi.oss.constant.OssConstant;
import com.ruoyi.oss.core.OssClient;
import com.ruoyi.oss.entity.UploadResult;
import com.ruoyi.oss.factory.OssFactory;
@@ -19,11 +18,11 @@
import com.ruoyi.system.mapper.SysOssMapper;
import com.ruoyi.system.service.ISysOssService;
import lombok.RequiredArgsConstructor;
+import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
-import java.time.Duration;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -51,13 +50,10 @@
public List<SysOssVo> listByIds(Collection<Long> ossIds) {
List<SysOssVo> list = new ArrayList<>();
for (Long id : ossIds) {
- String key = OssConstant.SYS_OSS_KEY + id;
- SysOssVo vo = RedisUtils.getCacheObject(key);
- if (ObjectUtil.isNull(vo)) {
- vo = baseMapper.selectVoById(id);
- RedisUtils.setCacheObject(key, vo, Duration.ofDays(30));
+ SysOssVo vo = getById(id);
+ if (ObjectUtil.isNotNull(vo)) {
+ list.add(vo);
}
- list.add(vo);
}
return list;
}
@@ -76,9 +72,10 @@
return lqw;
}
+ @Cacheable(cacheNames = CacheNames.SYS_OSS, key = "#ossId")
@Override
- public SysOss getById(Long ossId) {
- return baseMapper.selectById(ossId);
+ public SysOssVo getById(Long ossId) {
+ return baseMapper.selectVoById(ossId);
}
@Override
--
Gitblit v1.9.3