From 0418b6c6ff36ba382c44db982f389a1154a7d2ea Mon Sep 17 00:00:00 2001 From: AprilWind <2100166581@qq.com> Date: Mon, 24 Nov 2025 01:18:49 +0000 Subject: [PATCH] =?UTF-8?q?!788=20update=20=E5=8F=82=E6=95=B0=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=9C=8D=E5=8A=A1=20=E5=A2=9E=E5=8A=A0=E5=A4=9A?= =?UTF-8?q?=E7=A7=8D=E9=85=8D=E7=BD=AE=E8=8E=B7=E5=8F=96=E6=96=B9=E6=B3=95?= =?UTF-8?q?=EF=BC=8C=E6=94=AF=E6=8C=81=E4=B8=8D=E5=90=8C=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E7=9A=84=E9=85=8D=E7=BD=AE=E8=A7=A3=E6=9E=90=20*=20update=20?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E9=85=8D=E7=BD=AE=E6=9C=8D=E5=8A=A1=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=A4=9A=E7=A7=8D=E9=85=8D=E7=BD=AE=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=96=B9=E6=B3=95=EF=BC=8C=E6=94=AF=E6=8C=81=E4=B8=8D?= =?UTF-8?q?=E5=90=8C=E7=B1=BB=E5=9E=8B=E7=9A=84=E9=85=8D=E7=BD=AE=E8=A7=A3?= =?UTF-8?q?=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/service/ConfigService.java | 82 +++++++++++++++++++ .../service/impl/SysConfigServiceImpl.java | 53 ++++++++++++ 2 files changed, 135 insertions(+) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/ConfigService.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/ConfigService.java index 7328c690d..9ae52c789 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/ConfigService.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/ConfigService.java @@ -1,5 +1,11 @@ package org.dromara.common.core.service; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.lang.Dict; + +import java.math.BigDecimal; +import java.util.List; + /** * 通用 参数配置服务 * @@ -15,4 +21,80 @@ public interface ConfigService { */ String getConfigValue(String configKey); + /** + * 根据参数 key 获取布尔值 + * + * @param configKey 参数 key + * @return Boolean 值 + */ + default Boolean getConfigBool(String configKey) { + return Convert.toBool(getConfigValue(configKey)); + } + + /** + * 根据参数 key 获取整数值 + * + * @param configKey 参数 key + * @return Integer 值 + */ + default Integer getConfigInt(String configKey) { + return Convert.toInt(getConfigValue(configKey)); + } + + /** + * 根据参数 key 获取长整型值 + * + * @param configKey 参数 key + * @return Long 值 + */ + default Long getConfigLong(String configKey) { + return Convert.toLong(getConfigValue(configKey)); + } + + /** + * 根据参数 key 获取 BigDecimal 值 + * + * @param configKey 参数 key + * @return BigDecimal 值 + */ + default BigDecimal getConfigDecimal(String configKey) { + return Convert.toBigDecimal(getConfigValue(configKey)); + } + + /** + * 根据参数 key 获取 Map 类型的配置 + * + * @param configKey 参数 key + * @return Dict 对象,如果配置为空或无法解析,返回空 Dict + */ + Dict getConfigMap(String configKey); + + /** + * 根据参数 key 获取 Map 类型的配置列表 + * + * @param configKey 参数 key + * @return Dict 列表,如果配置为空或无法解析,返回空列表 + */ + List getConfigArrayMap(String configKey); + + /** + * 根据参数 key 获取指定类型的配置对象 + * + * @param configKey 参数 key + * @param clazz 目标对象类型 + * @param 目标对象泛型 + * @return 对象实例,如果配置为空或无法解析,返回 null + */ + T getConfigObject(String configKey, Class clazz); + + /** + * 根据参数 key 获取指定类型的配置列表 + * + * @param configKey 参数 key + * @param clazz 目标元素类型 + * @param 元素类型泛型 + * @return 指定类型列表,如果配置为空或无法解析,返回空列表 + */ + List getConfigArray(String configKey, Class clazz); + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java index d96fa1246..6b0b2a27e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java @@ -1,6 +1,7 @@ package org.dromara.system.service.impl; import cn.hutool.core.convert.Convert; +import cn.hutool.core.lang.Dict; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -14,6 +15,7 @@ import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.ObjectUtils; import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.json.utils.JsonUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.redis.utils.CacheUtils; @@ -82,6 +84,7 @@ public class SysConfigServiceImpl implements ISysConfigService, ConfigService { /** * 获取注册开关 + * * @param tenantId 租户id * @return true开启,false关闭 */ @@ -212,4 +215,54 @@ public class SysConfigServiceImpl implements ISysConfigService, ConfigService { return SpringUtils.getAopProxy(this).selectConfigByKey(configKey); } + /** + * 根据参数 key 获取 Map 类型的配置 + * + * @param configKey 参数 key + * @return Dict 对象,如果配置为空或无法解析,返回空 Dict + */ + @Override + public Dict getConfigMap(String configKey) { + String configValue = getConfigValue(configKey); + return JsonUtils.parseMap(configValue); + } + + /** + * 根据参数 key 获取 Map 类型的配置列表 + * + * @param configKey 参数 key + * @return Dict 列表,如果配置为空或无法解析,返回空列表 + */ + @Override + public List getConfigArrayMap(String configKey) { + String configValue = getConfigValue(configKey); + return JsonUtils.parseArrayMap(configValue); + } + + /** + * 根据参数 key 获取指定类型的配置对象 + * + * @param configKey 参数 key + * @param clazz 目标对象类型 + * @return 对象实例,如果配置为空或无法解析,返回 null + */ + @Override + public T getConfigObject(String configKey, Class clazz) { + String configValue = getConfigValue(configKey); + return JsonUtils.parseObject(configValue, clazz); + } + + /** + * 根据参数 key 获取指定类型的配置列表= + * + * @param configKey 参数 key + * @param clazz 目标元素类型 + * @return 指定类型列表,如果配置为空或无法解析,返回空列表 + */ + @Override + public List getConfigArray(String configKey, Class clazz) { + String configValue = getConfigValue(configKey); + return JsonUtils.parseArray(configValue, clazz); + } + }