```
feat(setting): 添加跨库查询指定租户设置配置的功能 新增 getCrossDbSetting 方法,支持通过 XML 配置方式实现跨库查询指定租户的设置配置。该方法通过忽略租户拦截器,直接指定 tenant_id 进行数据查询,提升跨租户配置获取的灵活性和性能。 ```
This commit is contained in:
@@ -37,4 +37,13 @@ public interface SettingMapper extends BaseMapper<Setting> {
|
||||
|
||||
@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);
|
||||
}
|
||||
|
||||
@@ -30,4 +30,13 @@
|
||||
<include refid="selectSql"></include>
|
||||
</select>
|
||||
|
||||
<!-- 跨库查询指定租户的设置配置 -->
|
||||
<select id="getCrossDbSetting" resultType="com.gxwebsoft.common.system.entity.Setting">
|
||||
SELECT a.*
|
||||
FROM gxwebsoft_core.sys_setting a
|
||||
WHERE a.setting_key = #{settingKey}
|
||||
AND a.tenant_id = #{tenantId}
|
||||
AND a.deleted = 0
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -117,10 +117,8 @@ public class SettingServiceImpl extends ServiceImpl<SettingMapper, Setting> impl
|
||||
final List<Setting> list = list(new LambdaQueryWrapper<Setting>().eq(Setting::getTenantId, tenantId));
|
||||
System.out.println("跨租户获取指定租户的设置配置 list = " + list);
|
||||
|
||||
// 使用跨租户查询,指定租户ID
|
||||
Setting setting = this.getOne(new QueryWrapper<Setting>()
|
||||
.eq("setting_key", key)
|
||||
.eq("tenant_id", tenantId), false);
|
||||
// 使用跨租户查询,指定租户ID - 通过XML方式查询跨库数据(方式二:更简洁的方法)
|
||||
Setting setting = baseMapper.getCrossDbSetting(key, tenantId);
|
||||
|
||||
System.out.println("跨租户查询结果: " + setting);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user