需求: 当租户id为0时, 表示为系统级人员, 无需执行多租户过滤
其实在ignoreTable中动态配置就行了, 根据源码来看, 多租户插件每次都走这个方法
interceptor.addInnerInterceptor(new TenantLineInnerInterceptor(new TenantLineHandler() {
@Override
public Expression getTenantId() {
return new LongValue(LoginHelper.getUserTenantId());
}
@Override
public boolean ignoreTable(String tableName) {
if (withoutTenantFilterTableNameList.contains(tableName)) {
return true;
}
try {
if (Objects.equals(LoginHelper.getUserTenantId(), 0L)) {
return true;
}
} catch (Exception e) {
log.error("获取用户租户id失败: ", e);
}
return false;
}
}));