@@ -93,40 +93,43 @@ public class MybatisPlusSaasConfig {
9393 public MybatisPlusInterceptor mybatisPlusInterceptor () {
9494 MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor ();
9595 // 先 add TenantLineInnerInterceptor 再 add PaginationInnerInterceptor
96- interceptor .addInnerInterceptor (new TenantLineInnerInterceptor (new TenantLineHandler () {
97- @ Override
98- public Expression getTenantId () {
99- String tenantId = TenantContext .getTenant ();
100- //如果通过线程获取租户ID为空,则通过当前请求的request获取租户(shiro排除拦截器的请求会获取不到租户ID)
101- if (oConvertUtils .isEmpty (tenantId )){
102- try {
103- tenantId = TokenUtils .getTenantIdByRequest (SpringContextUtils .getHttpServletRequest ());
104- } catch (Exception e ) {
105- //e.printStackTrace();
96+ // 条件注册租户拦截器:当需要租户隔离时才添加
97+ if (OPEN_SYSTEM_TENANT_CONTROL ) {
98+ interceptor .addInnerInterceptor (new TenantLineInnerInterceptor (new TenantLineHandler () {
99+ @ Override
100+ public Expression getTenantId () {
101+ String tenantId = TenantContext .getTenant ();
102+ //如果通过线程获取租户ID为空,则通过当前请求的request获取租户(shiro排除拦截器的请求会获取不到租户ID)
103+ if (oConvertUtils .isEmpty (tenantId )) {
104+ try {
105+ tenantId = TokenUtils .getTenantIdByRequest (SpringContextUtils .getHttpServletRequest ());
106+ } catch (Exception e ) {
107+ //e.printStackTrace();
108+ }
106109 }
110+ if (oConvertUtils .isEmpty (tenantId )) {
111+ tenantId = "0" ;
112+ }
113+ return new LongValue (tenantId );
107114 }
108- if (oConvertUtils .isEmpty (tenantId )){
109- tenantId = "0" ;
110- }
111- return new LongValue (tenantId );
112- }
113115
114- @ Override
115- public String getTenantIdColumn (){
116- return TenantConstant .TENANT_ID_TABLE ;
117- }
116+ @ Override
117+ public String getTenantIdColumn () {
118+ return TenantConstant .TENANT_ID_TABLE ;
119+ }
118120
119- // 返回 true 表示不走租户逻辑
120- @ Override
121- public boolean ignoreTable (String tableName ) {
122- for (String temp : TENANT_TABLE ){
123- if (temp .equalsIgnoreCase (tableName )){
124- return false ;
121+ // 返回 true 表示不走租户逻辑
122+ @ Override
123+ public boolean ignoreTable (String tableName ) {
124+ for (String temp : TENANT_TABLE ) {
125+ if (temp .equalsIgnoreCase (tableName )) {
126+ return false ;
127+ }
125128 }
129+ return true ;
126130 }
127- return true ;
128- }
129- }));
131+ }));
132+ }
130133 //update-begin-author:zyf date:20220425 for:【VUEN-606】注入动态表名适配拦截器解决多表名问题
131134 interceptor .addInnerInterceptor (dynamicTableNameInnerInterceptor ());
132135 //update-end-author:zyf date:20220425 for:【VUEN-606】注入动态表名适配拦截器解决多表名问题
0 commit comments