当需要租户隔离时才添加多租户插件

This commit is contained in:
sunzhiri 2026-02-10 21:32:27 +08:00
parent 04a26cdd6d
commit 0859784c3b

View File

@ -93,40 +93,43 @@ public class MybatisPlusSaasConfig {
public MybatisPlusInterceptor mybatisPlusInterceptor() { public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// add TenantLineInnerInterceptor add PaginationInnerInterceptor // add TenantLineInnerInterceptor add PaginationInnerInterceptor
// 条件注册租户拦截器当需要租户隔离时才添加
if (OPEN_SYSTEM_TENANT_CONTROL) {
interceptor.addInnerInterceptor(new TenantLineInnerInterceptor(new TenantLineHandler() { interceptor.addInnerInterceptor(new TenantLineInnerInterceptor(new TenantLineHandler() {
@Override @Override
public Expression getTenantId() { public Expression getTenantId() {
String tenantId = TenantContext.getTenant(); String tenantId = TenantContext.getTenant();
//如果通过线程获取租户ID为空则通过当前请求的request获取租户shiro排除拦截器的请求会获取不到租户ID //如果通过线程获取租户ID为空则通过当前请求的request获取租户shiro排除拦截器的请求会获取不到租户ID
if(oConvertUtils.isEmpty(tenantId)){ if (oConvertUtils.isEmpty(tenantId)) {
try { try {
tenantId = TokenUtils.getTenantIdByRequest(SpringContextUtils.getHttpServletRequest()); tenantId = TokenUtils.getTenantIdByRequest(SpringContextUtils.getHttpServletRequest());
} catch (Exception e) { } catch (Exception e) {
//e.printStackTrace(); //e.printStackTrace();
} }
} }
if(oConvertUtils.isEmpty(tenantId)){ if (oConvertUtils.isEmpty(tenantId)) {
tenantId = "0"; tenantId = "0";
} }
return new LongValue(tenantId); return new LongValue(tenantId);
} }
@Override @Override
public String getTenantIdColumn(){ public String getTenantIdColumn() {
return TenantConstant.TENANT_ID_TABLE; return TenantConstant.TENANT_ID_TABLE;
} }
// 返回 true 表示不走租户逻辑 // 返回 true 表示不走租户逻辑
@Override @Override
public boolean ignoreTable(String tableName) { public boolean ignoreTable(String tableName) {
for(String temp: TENANT_TABLE){ for (String temp : TENANT_TABLE) {
if(temp.equalsIgnoreCase(tableName)){ if (temp.equalsIgnoreCase(tableName)) {
return false; return false;
} }
} }
return true; return true;
} }
})); }));
}
//update-begin-author:zyf date:20220425 for:VUEN-606注入动态表名适配拦截器解决多表名问题 //update-begin-author:zyf date:20220425 for:VUEN-606注入动态表名适配拦截器解决多表名问题
interceptor.addInnerInterceptor(dynamicTableNameInnerInterceptor()); interceptor.addInnerInterceptor(dynamicTableNameInnerInterceptor());
//update-end-author:zyf date:20220425 for:VUEN-606注入动态表名适配拦截器解决多表名问题 //update-end-author:zyf date:20220425 for:VUEN-606注入动态表名适配拦截器解决多表名问题