From b071c210980f9abec43470a9740b2af7ea2a3fe9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Tue, 23 Sep 2025 12:01:06 +0800 Subject: [PATCH] =?UTF-8?q?```=20feat(setting):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=B7=A8=E5=BA=93=E6=9F=A5=E8=AF=A2=E6=8C=87=E5=AE=9A=E7=A7=9F?= =?UTF-8?q?=E6=88=B7=E8=AE=BE=E7=BD=AE=E9=85=8D=E7=BD=AE=E7=9A=84=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增 getCrossDbSetting 方法,支持通过 XML 配置方式实现跨库查询指定租户的设置配置。该方法通过忽略租户拦截器,直接指定 tenant_id 进行数据查询,提升跨租户配置获取的灵活性和性能。 ``` --- .../gxwebsoft/common/system/mapper/SettingMapper.java | 9 +++++++++ .../gxwebsoft/common/system/mapper/xml/SettingMapper.xml | 9 +++++++++ .../common/system/service/impl/SettingServiceImpl.java | 6 ++---- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/gxwebsoft/common/system/mapper/SettingMapper.java b/src/main/java/com/gxwebsoft/common/system/mapper/SettingMapper.java index ffc7f55..ba65838 100644 --- a/src/main/java/com/gxwebsoft/common/system/mapper/SettingMapper.java +++ b/src/main/java/com/gxwebsoft/common/system/mapper/SettingMapper.java @@ -37,4 +37,13 @@ public interface SettingMapper extends BaseMapper { @InterceptorIgnore(tenantLine = "true") Setting getBySettingKeyIgnore(@Param("param") SettingParam param); + + /** + * 跨库查询指定租户的设置配置 + * @param settingKey 设置键 + * @param tenantId 租户ID + * @return Setting + */ + @InterceptorIgnore(tenantLine = "true") + Setting getCrossDbSetting(@Param("settingKey") String settingKey, @Param("tenantId") Integer tenantId); } diff --git a/src/main/java/com/gxwebsoft/common/system/mapper/xml/SettingMapper.xml b/src/main/java/com/gxwebsoft/common/system/mapper/xml/SettingMapper.xml index f99a88f..bf4c9cc 100644 --- a/src/main/java/com/gxwebsoft/common/system/mapper/xml/SettingMapper.xml +++ b/src/main/java/com/gxwebsoft/common/system/mapper/xml/SettingMapper.xml @@ -30,4 +30,13 @@ + + + diff --git a/src/main/java/com/gxwebsoft/common/system/service/impl/SettingServiceImpl.java b/src/main/java/com/gxwebsoft/common/system/service/impl/SettingServiceImpl.java index ab50bad..af89a28 100644 --- a/src/main/java/com/gxwebsoft/common/system/service/impl/SettingServiceImpl.java +++ b/src/main/java/com/gxwebsoft/common/system/service/impl/SettingServiceImpl.java @@ -117,10 +117,8 @@ public class SettingServiceImpl extends ServiceImpl impl final List list = list(new LambdaQueryWrapper().eq(Setting::getTenantId, tenantId)); System.out.println("跨租户获取指定租户的设置配置 list = " + list); - // 使用跨租户查询,指定租户ID - Setting setting = this.getOne(new QueryWrapper() - .eq("setting_key", key) - .eq("tenant_id", tenantId), false); + // 使用跨租户查询,指定租户ID - 通过XML方式查询跨库数据(方式二:更简洁的方法) + Setting setting = baseMapper.getCrossDbSetting(key, tenantId); System.out.println("跨租户查询结果: " + setting);