参数管理支持缓存操作
This commit is contained in:
		| @@ -109,6 +109,11 @@ public class Constants | ||||
|      */ | ||||
|     public static final String JWT_AUTHORITIES = "authorities"; | ||||
|  | ||||
|     /** | ||||
|      * 参数管理 cache key | ||||
|      */ | ||||
|     public static final String SYS_CONFIG_KEY = "sys_config:"; | ||||
|  | ||||
|     /** | ||||
|      * 资源映射路径 前缀 | ||||
|      */ | ||||
|   | ||||
| @@ -118,4 +118,16 @@ public class SysConfigController extends BaseController | ||||
|     { | ||||
|         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(); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -50,14 +50,6 @@ public interface ISysConfigService | ||||
|      */ | ||||
|     public int updateConfig(SysConfig config); | ||||
|  | ||||
|     /** | ||||
|      * 删除参数配置信息 | ||||
|      *  | ||||
|      * @param configId 参数ID | ||||
|      * @return 结果 | ||||
|      */ | ||||
|     public int deleteConfigById(Long configId); | ||||
|  | ||||
|     /** | ||||
|      * 批量删除参数信息 | ||||
|      *  | ||||
| @@ -66,6 +58,11 @@ public interface ISysConfigService | ||||
|      */ | ||||
|     public int deleteConfigByIds(Long[] configIds); | ||||
|  | ||||
|     /** | ||||
|      * 清空缓存数据 | ||||
|      */ | ||||
|     public void clearCache(); | ||||
|  | ||||
|     /** | ||||
|      * 校验参数键名是否唯一 | ||||
|      *  | ||||
|   | ||||
| @@ -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; | ||||
| @@ -20,6 +25,22 @@ public class SysConfigServiceImpl implements ISysConfigService | ||||
|     @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 @@ public class SysConfigServiceImpl implements ISysConfigService | ||||
|     @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 @@ public class SysConfigServiceImpl implements ISysConfigService | ||||
|     @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 @@ public class SysConfigServiceImpl implements ISysConfigService | ||||
|     @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 @@ public class SysConfigServiceImpl implements ISysConfigService | ||||
|     @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 @@ public class SysConfigServiceImpl implements ISysConfigService | ||||
|         } | ||||
|         return UserConstants.UNIQUE; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 设置cache key | ||||
|      *  | ||||
|      * @param configKey 参数键 | ||||
|      * @return 缓存键key | ||||
|      */ | ||||
|     private String getCacheKey(String configKey) | ||||
|     { | ||||
|         return Constants.SYS_CONFIG_KEY + configKey; | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user