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