ruoyi-ui/src/api/system/config.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-ui/src/views/system/config/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi/src/main/java/com/ruoyi/common/constant/Constants.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi/src/main/java/com/ruoyi/project/system/controller/SysConfigController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi/src/main/java/com/ruoyi/project/system/service/ISysConfigService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysConfigServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ruoyi-ui/src/api/system/config.js
@@ -51,6 +51,14 @@ }) } // 清理参数缓存 export function clearCache() { return request({ url: '/system/config/clearCache', method: 'delete' }) } // 导出参数 export function exportConfig(query) { return request({ ruoyi-ui/src/views/system/config/index.vue
@@ -88,6 +88,15 @@ v-hasPermi="['system:config:export']" >导出</el-button> </el-col> <el-col :span="1.5"> <el-button type="danger" icon="el-icon-refresh" size="mini" @click="handleClearCache" v-hasPermi="['system:config:remove']" >清理缓存</el-button> </el-col> </el-row> <el-table v-loading="loading" :data="configList" @selection-change="handleSelectionChange"> @@ -165,7 +174,7 @@ </template> <script> import { listConfig, getConfig, delConfig, addConfig, updateConfig, exportConfig } from "@/api/system/config"; import { listConfig, getConfig, delConfig, addConfig, updateConfig, exportConfig, clearCache } from "@/api/system/config"; export default { name: "Config", @@ -340,6 +349,17 @@ }).then(response => { this.download(response.msg); }).catch(function() {}); }, /** 清理缓存按钮操作 */ handleClearCache() { const queryParams = this.queryParams; clearCache().then(response => { if (response.code === 200) { this.msgSuccess("清理成功"); } else { this.msgError(response.msg); } }); } } }; ruoyi/src/main/java/com/ruoyi/common/constant/Constants.java
@@ -110,6 +110,11 @@ public static final String JWT_AUTHORITIES = "authorities"; /** * 参数管理 cache key */ public static final String SYS_CONFIG_KEY = "sys_config:"; /** * 资源映射路径 前缀 */ public static final String RESOURCE_PREFIX = "/profile"; ruoyi/src/main/java/com/ruoyi/project/system/controller/SysConfigController.java
@@ -118,4 +118,16 @@ { return toAjax(configService.deleteConfigByIds(configIds)); } /** * 清空缓存 */ @PreAuthorize("@ss.hasPermi('system:config:remove')") @Log(title = "参数管理", businessType = BusinessType.CLEAN) @DeleteMapping("/clearCache") public AjaxResult clearCache() { configService.clearCache(); return AjaxResult.success(); } } ruoyi/src/main/java/com/ruoyi/project/system/service/ISysConfigService.java
@@ -51,14 +51,6 @@ public int updateConfig(SysConfig config); /** * 删除参数配置信息 * * @param configId 参数ID * @return 结果 */ public int deleteConfigById(Long configId); /** * 批量删除参数信息 * * @param configIds 需要删除的参数ID @@ -67,6 +59,11 @@ public int deleteConfigByIds(Long[] configIds); /** * 清空缓存数据 */ public void clearCache(); /** * 校验参数键名是否唯一 * * @param config 参数信息 ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysConfigServiceImpl.java
@@ -1,10 +1,15 @@ package com.ruoyi.project.system.service.impl; import java.util.Collection; import java.util.List; import javax.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.redis.RedisCache; import com.ruoyi.project.system.domain.SysConfig; import com.ruoyi.project.system.mapper.SysConfigMapper; import com.ruoyi.project.system.service.ISysConfigService; @@ -19,6 +24,22 @@ { @Autowired private SysConfigMapper configMapper; @Autowired private RedisCache redisCache; /** * 项目启动时,初始化参数到缓存 */ @PostConstruct public void init() { List<SysConfig> configsList = configMapper.selectConfigList(new SysConfig()); for (SysConfig config : configsList) { redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); } } /** * 查询参数配置信息 @@ -43,10 +64,20 @@ @Override public String selectConfigByKey(String configKey) { String configValue = Convert.toStr(redisCache.getCacheObject(getCacheKey(configKey))); if (StringUtils.isNotEmpty(configValue)) { return configValue; } SysConfig config = new SysConfig(); config.setConfigKey(configKey); SysConfig retConfig = configMapper.selectConfig(config); return StringUtils.isNotNull(retConfig) ? retConfig.getConfigValue() : ""; if (StringUtils.isNotNull(retConfig)) { redisCache.setCacheObject(getCacheKey(configKey), retConfig.getConfigValue()); return retConfig.getConfigValue(); } return StringUtils.EMPTY; } /** @@ -70,7 +101,12 @@ @Override public int insertConfig(SysConfig config) { return configMapper.insertConfig(config); int row = configMapper.insertConfig(config); if (row > 0) { redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); } return row; } /** @@ -82,19 +118,12 @@ @Override public int updateConfig(SysConfig config) { return configMapper.updateConfig(config); } /** * 删除参数配置信息 * * @param configId 参数ID * @return 结果 */ @Override public int deleteConfigById(Long configId) { return configMapper.deleteConfigById(configId); int row = configMapper.updateConfig(config); if (row > 0) { redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); } return row; } /** @@ -106,7 +135,22 @@ @Override public int deleteConfigByIds(Long[] configIds) { return configMapper.deleteConfigByIds(configIds); int count = configMapper.deleteConfigByIds(configIds); if (count > 0) { Collection<String> keys = redisCache.keys(Constants.SYS_CONFIG_KEY + "*"); redisCache.deleteObject(keys); } return count; } /** * 清空缓存数据 */ public void clearCache() { Collection<String> keys = redisCache.keys(Constants.SYS_CONFIG_KEY + "*"); redisCache.deleteObject(keys); } /** @@ -126,4 +170,15 @@ } return UserConstants.UNIQUE; } /** * 设置cache key * * @param configKey 参数键 * @return 缓存键key */ private String getCacheKey(String configKey) { return Constants.SYS_CONFIG_KEY + configKey; } }