From 45ac0f23e12ac2a45c6affe9e39d0897e4fad618 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期四, 16 二月 2023 17:06:10 +0800 Subject: [PATCH] !286 合并 多租户功能 * add 新增 ruoyi-common-tenant 多租户模块 全框架适配多租户改动 * update 优化 隐藏页面主键 * remove 移除 缓存列表功能(多租户缓存功能繁杂多样 没有办法在页面管理) * update 重构 全局缓存KEY 与 常用缓存KEY做区分 * update 重构 OssFactory 加载方式 改为每次比对配置做实例更新 * update 优化 SaTokenDao 改为 Bean 注入 便于扩展 * update 重构 项目初始化数据改为懒加载 不提供热加载 * update 重构 验证码开关使用配置文件(经调查少有动态开启需求) * update 优化 启用 sqlserver 高版本语法 简化sql脚本语法 * update 优化 DataPermissionHelper 增加 开启/关闭 忽略数据权限功能 * update 优化 连接池增加 keepaliveTime 探活参数 * update 优化 调整连接池最长生命周期 防止出现警告 * update 优化 代码生成页面模板 校验不必要的表单数据 * add 新增 StringUtils splitTo 与 splitList 方法 优化业务代码 --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java | 90 +++++++++++++++++++-------------------------- 1 files changed, 38 insertions(+), 52 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java index 0d569da..c70aa22 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java @@ -1,20 +1,24 @@ package com.ruoyi.system.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.ObjectUtil; import com.baomidou.dynamic.datasource.annotation.DS; 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.core.constant.CacheNames; import com.ruoyi.common.core.constant.UserConstants; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.service.ConfigService; +import com.ruoyi.common.core.utils.SpringUtils; +import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.mybatis.core.page.PageQuery; import com.ruoyi.common.mybatis.core.page.TableDataInfo; -import com.ruoyi.common.core.service.ConfigService; -import com.ruoyi.common.core.exception.ServiceException; -import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.redis.utils.CacheUtils; -import com.ruoyi.common.core.utils.SpringUtils; import com.ruoyi.system.domain.SysConfig; +import com.ruoyi.system.domain.bo.SysConfigBo; +import com.ruoyi.system.domain.vo.SysConfigVo; import com.ruoyi.system.mapper.SysConfigMapper; import com.ruoyi.system.service.ISysConfigService; import lombok.RequiredArgsConstructor; @@ -38,15 +42,9 @@ private final SysConfigMapper baseMapper; @Override - public TableDataInfo<SysConfig> selectPageConfigList(SysConfig config, PageQuery pageQuery) { - Map<String, Object> params = config.getParams(); - LambdaQueryWrapper<SysConfig> lqw = new LambdaQueryWrapper<SysConfig>() - .like(StringUtils.isNotBlank(config.getConfigName()), SysConfig::getConfigName, config.getConfigName()) - .eq(StringUtils.isNotBlank(config.getConfigType()), SysConfig::getConfigType, config.getConfigType()) - .like(StringUtils.isNotBlank(config.getConfigKey()), SysConfig::getConfigKey, config.getConfigKey()) - .between(params.get("beginTime") != null && params.get("endTime") != null, - SysConfig::getCreateTime, params.get("beginTime"), params.get("endTime")); - Page<SysConfig> page = baseMapper.selectPage(pageQuery.build(), lqw); + public TableDataInfo<SysConfigVo> selectPageConfigList(SysConfigBo config, PageQuery pageQuery) { + LambdaQueryWrapper<SysConfig> lqw = buildQueryWrapper(config); + Page<SysConfigVo> page = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(page); } @@ -58,8 +56,8 @@ */ @Override @DS("master") - public SysConfig selectConfigById(Long configId) { - return baseMapper.selectById(configId); + public SysConfigVo selectConfigById(Long configId) { + return baseMapper.selectVoById(configId); } /** @@ -100,26 +98,32 @@ * @return 鍙傛暟閰嶇疆闆嗗悎 */ @Override - public List<SysConfig> selectConfigList(SysConfig config) { - Map<String, Object> params = config.getParams(); - LambdaQueryWrapper<SysConfig> lqw = new LambdaQueryWrapper<SysConfig>() - .like(StringUtils.isNotBlank(config.getConfigName()), SysConfig::getConfigName, config.getConfigName()) - .eq(StringUtils.isNotBlank(config.getConfigType()), SysConfig::getConfigType, config.getConfigType()) - .like(StringUtils.isNotBlank(config.getConfigKey()), SysConfig::getConfigKey, config.getConfigKey()) - .between(params.get("beginTime") != null && params.get("endTime") != null, - SysConfig::getCreateTime, params.get("beginTime"), params.get("endTime")); - return baseMapper.selectList(lqw); + public List<SysConfigVo> selectConfigList(SysConfigBo config) { + LambdaQueryWrapper<SysConfig> lqw = buildQueryWrapper(config); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper<SysConfig> buildQueryWrapper(SysConfigBo bo) { + Map<String, Object> params = bo.getParams(); + LambdaQueryWrapper<SysConfig> lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getConfigName()), SysConfig::getConfigName, bo.getConfigName()); + lqw.eq(StringUtils.isNotBlank(bo.getConfigType()), SysConfig::getConfigType, bo.getConfigType()); + lqw.like(StringUtils.isNotBlank(bo.getConfigKey()), SysConfig::getConfigKey, bo.getConfigKey()); + lqw.between(params.get("beginTime") != null && params.get("endTime") != null, + SysConfig::getCreateTime, params.get("beginTime"), params.get("endTime")); + return lqw; } /** * 鏂板鍙傛暟閰嶇疆 * - * @param config 鍙傛暟閰嶇疆淇℃伅 + * @param bo 鍙傛暟閰嶇疆淇℃伅 * @return 缁撴灉 */ - @CachePut(cacheNames = CacheNames.SYS_CONFIG, key = "#config.configKey") + @CachePut(cacheNames = CacheNames.SYS_CONFIG, key = "#bo.configKey") @Override - public String insertConfig(SysConfig config) { + public String insertConfig(SysConfigBo bo) { + SysConfig config = BeanUtil.toBean(bo, SysConfig.class); int row = baseMapper.insert(config); if (row > 0) { return config.getConfigValue(); @@ -130,13 +134,14 @@ /** * 淇敼鍙傛暟閰嶇疆 * - * @param config 鍙傛暟閰嶇疆淇℃伅 + * @param bo 鍙傛暟閰嶇疆淇℃伅 * @return 缁撴灉 */ - @CachePut(cacheNames = CacheNames.SYS_CONFIG, key = "#config.configKey") + @CachePut(cacheNames = CacheNames.SYS_CONFIG, key = "#bo.configKey") @Override - public String updateConfig(SysConfig config) { + public String updateConfig(SysConfigBo bo) { int row = 0; + SysConfig config = BeanUtil.toBean(bo, SysConfig.class); if (config.getConfigId() != null) { SysConfig temp = baseMapper.selectById(config.getConfigId()); if (!StringUtils.equals(temp.getConfigKey(), config.getConfigKey())) { @@ -161,7 +166,7 @@ @Override public void deleteConfigByIds(Long[] configIds) { for (Long configId : configIds) { - SysConfig config = selectConfigById(configId); + SysConfig config = baseMapper.selectById(configId); if (StringUtils.equals(UserConstants.YES, config.getConfigType())) { throw new ServiceException(String.format("鍐呯疆鍙傛暟銆�%1$s銆戜笉鑳藉垹闄� ", config.getConfigKey())); } @@ -171,30 +176,11 @@ } /** - * 鍔犺浇鍙傛暟缂撳瓨鏁版嵁 - */ - @Override - public void loadingConfigCache() { - List<SysConfig> configsList = selectConfigList(new SysConfig()); - configsList.forEach(config -> - CacheUtils.put(CacheNames.SYS_CONFIG, config.getConfigKey(), config.getConfigValue())); - } - - /** - * 娓呯┖鍙傛暟缂撳瓨鏁版嵁 - */ - @Override - public void clearConfigCache() { - CacheUtils.clear(CacheNames.SYS_CONFIG); - } - - /** * 閲嶇疆鍙傛暟缂撳瓨鏁版嵁 */ @Override public void resetConfigCache() { - clearConfigCache(); - loadingConfigCache(); + CacheUtils.clear(CacheNames.SYS_CONFIG); } /** @@ -204,7 +190,7 @@ * @return 缁撴灉 */ @Override - public String checkConfigKeyUnique(SysConfig config) { + public String checkConfigKeyUnique(SysConfigBo config) { long configId = ObjectUtil.isNull(config.getConfigId()) ? -1L : config.getConfigId(); SysConfig info = baseMapper.selectOne(new LambdaQueryWrapper<SysConfig>().eq(SysConfig::getConfigKey, config.getConfigKey())); if (ObjectUtil.isNotNull(info) && info.getConfigId() != configId) { -- Gitblit v1.9.3