Commit 70cbb82c84182c8398889984f15998a2e5c8eef8

Authored by YunaiV
1 parent 112f63bb

reactor:@TenantIgnore 添加在 DO 实体类上,该表自动忽略租户

Showing 26 changed files with 96 additions and 55 deletions
yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/aop/TenantIgnore.java
@@ -13,10 +13,11 @@ import java.lang.annotation.*; @@ -13,10 +13,11 @@ import java.lang.annotation.*;
13 * 13 *
14 * 特殊: 14 * 特殊:
15 * 1、如果添加到 Controller 类上,则该 URL 自动添加到 {@link TenantProperties#getIgnoreUrls()} 中 15 * 1、如果添加到 Controller 类上,则该 URL 自动添加到 {@link TenantProperties#getIgnoreUrls()} 中
  16 + * 2、如果添加到 DO 实体类上,则它对应的表名“相当于”自动添加到 {@link TenantProperties#getIgnoreTables()} 中
16 * 17 *
17 * @author 芋道源码 18 * @author 芋道源码
18 */ 19 */
19 -@Target({ElementType.METHOD}) 20 +@Target({ElementType.METHOD, ElementType.TYPE})
20 @Retention(RetentionPolicy.RUNTIME) 21 @Retention(RetentionPolicy.RUNTIME)
21 @Inherited 22 @Inherited
22 public @interface TenantIgnore { 23 public @interface TenantIgnore {
yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/db/TenantDatabaseInterceptor.java
1 package cn.iocoder.yudao.framework.tenant.core.db; 1 package cn.iocoder.yudao.framework.tenant.core.db;
2 2
3 -import cn.hutool.core.collection.CollUtil;  
4 import cn.iocoder.yudao.framework.tenant.config.TenantProperties; 3 import cn.iocoder.yudao.framework.tenant.config.TenantProperties;
  4 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
5 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; 5 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
  6 +import com.baomidou.mybatisplus.core.metadata.TableInfo;
  7 +import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
6 import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler; 8 import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
7 import com.baomidou.mybatisplus.extension.toolkit.SqlParserUtils; 9 import com.baomidou.mybatisplus.extension.toolkit.SqlParserUtils;
8 import net.sf.jsqlparser.expression.Expression; 10 import net.sf.jsqlparser.expression.Expression;
9 import net.sf.jsqlparser.expression.LongValue; 11 import net.sf.jsqlparser.expression.LongValue;
10 12
11 -import java.util.HashSet;  
12 -import java.util.Set; 13 +import java.util.HashMap;
  14 +import java.util.Map;
13 15
14 /** 16 /**
15 * 基于 MyBatis Plus 多租户的功能,实现 DB 层面的多租户的功能 17 * 基于 MyBatis Plus 多租户的功能,实现 DB 层面的多租户的功能
@@ -18,16 +20,21 @@ import java.util.Set; @@ -18,16 +20,21 @@ import java.util.Set;
18 */ 20 */
19 public class TenantDatabaseInterceptor implements TenantLineHandler { 21 public class TenantDatabaseInterceptor implements TenantLineHandler {
20 22
21 - private final Set<String> ignoreTables = new HashSet<>(); 23 + /**
  24 + * 忽略的表
  25 + *
  26 + * KEY:表名
  27 + * VALUE:是否忽略
  28 + */
  29 + private final Map<String, Boolean> ignoreTables = new HashMap<>();
22 30
23 public TenantDatabaseInterceptor(TenantProperties properties) { 31 public TenantDatabaseInterceptor(TenantProperties properties) {
24 // 不同 DB 下,大小写的习惯不同,所以需要都添加进去 32 // 不同 DB 下,大小写的习惯不同,所以需要都添加进去
25 properties.getIgnoreTables().forEach(table -> { 33 properties.getIgnoreTables().forEach(table -> {
26 - ignoreTables.add(table.toLowerCase());  
27 - ignoreTables.add(table.toUpperCase()); 34 + addIgnoreTable(table, true);
28 }); 35 });
29 // 在 OracleKeyGenerator 中,生成主键时,会查询这个表,查询这个表后,会自动拼接 TENANT_ID 导致报错 36 // 在 OracleKeyGenerator 中,生成主键时,会查询这个表,查询这个表后,会自动拼接 TENANT_ID 导致报错
30 - ignoreTables.add("DUAL"); 37 + addIgnoreTable("DUAL", true);
31 } 38 }
32 39
33 @Override 40 @Override
@@ -37,8 +44,40 @@ public class TenantDatabaseInterceptor implements TenantLineHandler { @@ -37,8 +44,40 @@ public class TenantDatabaseInterceptor implements TenantLineHandler {
37 44
38 @Override 45 @Override
39 public boolean ignoreTable(String tableName) { 46 public boolean ignoreTable(String tableName) {
40 - return TenantContextHolder.isIgnore() // 情况一,全局忽略多租户  
41 - || CollUtil.contains(ignoreTables, SqlParserUtils.removeWrapperSymbol(tableName)); // 情况二,忽略多租户的表 47 + // 情况一,全局忽略多租户
  48 + if (TenantContextHolder.isIgnore()) {
  49 + return true;
  50 + }
  51 + // 情况二,忽略多租户的表
  52 + tableName = SqlParserUtils.removeWrapperSymbol(tableName);
  53 + Boolean ignore = ignoreTables.get(tableName.toLowerCase());
  54 + if (ignore == null) {
  55 + ignore = computeIgnoreTable(tableName);
  56 + synchronized (ignoreTables) {
  57 + addIgnoreTable(tableName, ignore);
  58 + }
  59 + }
  60 + return ignore;
  61 + }
  62 +
  63 + private void addIgnoreTable(String tableName, boolean ignore) {
  64 + ignoreTables.put(tableName.toLowerCase(), ignore);
  65 + ignoreTables.put(tableName.toUpperCase(), ignore);
  66 + }
  67 +
  68 + private boolean computeIgnoreTable(String tableName) {
  69 + // 找不到的表,说明不是 yudao 项目里的,不进行拦截
  70 + TableInfo tableInfo = TableInfoHelper.getTableInfo(tableName);
  71 + if (tableInfo == null) {
  72 + return true;
  73 + }
  74 + // 如果继承了 TenantBaseDO 基类,显然不忽略租户
  75 + if (TenantBaseDO.class.isAssignableFrom(tableInfo.getEntityType())) {
  76 + return true;
  77 + }
  78 + // 如果添加了 @TenantIgnore 注解,显然也不忽略租户
  79 + TenantIgnore tenantIgnore = tableInfo.getEntityType().getAnnotation(TenantIgnore.class);
  80 + return tenantIgnore != null;
42 } 81 }
43 82
44 } 83 }
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenColumnDO.java
1 package cn.iocoder.yudao.module.infra.dal.dataobject.codegen; 1 package cn.iocoder.yudao.module.infra.dal.dataobject.codegen;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
4 import cn.iocoder.yudao.module.infra.enums.codegen.CodegenColumnHtmlTypeEnum; 5 import cn.iocoder.yudao.module.infra.enums.codegen.CodegenColumnHtmlTypeEnum;
5 import cn.iocoder.yudao.module.infra.enums.codegen.CodegenColumnListConditionEnum; 6 import cn.iocoder.yudao.module.infra.enums.codegen.CodegenColumnListConditionEnum;
6 import com.baomidou.mybatisplus.annotation.KeySequence; 7 import com.baomidou.mybatisplus.annotation.KeySequence;
@@ -21,6 +22,7 @@ import lombok.experimental.Accessors; @@ -21,6 +22,7 @@ import lombok.experimental.Accessors;
21 @Data 22 @Data
22 @Accessors(chain = true) 23 @Accessors(chain = true)
23 @EqualsAndHashCode(callSuper = true) 24 @EqualsAndHashCode(callSuper = true)
  25 +@TenantIgnore
24 public class CodegenColumnDO extends BaseDO { 26 public class CodegenColumnDO extends BaseDO {
25 27
26 /** 28 /**
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenTableDO.java
1 package cn.iocoder.yudao.module.infra.dal.dataobject.codegen; 1 package cn.iocoder.yudao.module.infra.dal.dataobject.codegen;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
4 import cn.iocoder.yudao.module.infra.dal.dataobject.db.DataSourceConfigDO; 5 import cn.iocoder.yudao.module.infra.dal.dataobject.db.DataSourceConfigDO;
5 import cn.iocoder.yudao.module.infra.enums.codegen.CodegenFrontTypeEnum; 6 import cn.iocoder.yudao.module.infra.enums.codegen.CodegenFrontTypeEnum;
6 import cn.iocoder.yudao.module.infra.enums.codegen.CodegenSceneEnum; 7 import cn.iocoder.yudao.module.infra.enums.codegen.CodegenSceneEnum;
@@ -23,6 +24,7 @@ import lombok.experimental.Accessors; @@ -23,6 +24,7 @@ import lombok.experimental.Accessors;
23 @Data 24 @Data
24 @Accessors(chain = true) 25 @Accessors(chain = true)
25 @EqualsAndHashCode(callSuper = true) 26 @EqualsAndHashCode(callSuper = true)
  27 +@TenantIgnore
26 public class CodegenTableDO extends BaseDO { 28 public class CodegenTableDO extends BaseDO {
27 29
28 /** 30 /**
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/config/ConfigDO.java
1 package cn.iocoder.yudao.module.infra.dal.dataobject.config; 1 package cn.iocoder.yudao.module.infra.dal.dataobject.config;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
4 import cn.iocoder.yudao.module.infra.enums.config.ConfigTypeEnum; 5 import cn.iocoder.yudao.module.infra.enums.config.ConfigTypeEnum;
5 import com.baomidou.mybatisplus.annotation.KeySequence; 6 import com.baomidou.mybatisplus.annotation.KeySequence;
6 import com.baomidou.mybatisplus.annotation.TableId; 7 import com.baomidou.mybatisplus.annotation.TableId;
@@ -19,6 +20,7 @@ import lombok.ToString; @@ -19,6 +20,7 @@ import lombok.ToString;
19 @Data 20 @Data
20 @EqualsAndHashCode(callSuper = true) 21 @EqualsAndHashCode(callSuper = true)
21 @ToString(callSuper = true) 22 @ToString(callSuper = true)
  23 +@TenantIgnore
22 public class ConfigDO extends BaseDO { 24 public class ConfigDO extends BaseDO {
23 25
24 /** 26 /**
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/db/DataSourceConfigDO.java
@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.infra.dal.dataobject.db; @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.infra.dal.dataobject.db;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 import cn.iocoder.yudao.framework.mybatis.core.type.EncryptTypeHandler; 4 import cn.iocoder.yudao.framework.mybatis.core.type.EncryptTypeHandler;
  5 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
5 import com.baomidou.mybatisplus.annotation.KeySequence; 6 import com.baomidou.mybatisplus.annotation.KeySequence;
6 import com.baomidou.mybatisplus.annotation.TableField; 7 import com.baomidou.mybatisplus.annotation.TableField;
7 import com.baomidou.mybatisplus.annotation.TableName; 8 import com.baomidou.mybatisplus.annotation.TableName;
@@ -15,6 +16,7 @@ import lombok.Data; @@ -15,6 +16,7 @@ import lombok.Data;
15 @TableName(value = "infra_data_source_config", autoResultMap = true) 16 @TableName(value = "infra_data_source_config", autoResultMap = true)
16 @KeySequence("infra_data_source_config_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 17 @KeySequence("infra_data_source_config_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
17 @Data 18 @Data
  19 +@TenantIgnore
18 public class DataSourceConfigDO extends BaseDO { 20 public class DataSourceConfigDO extends BaseDO {
19 21
20 /** 22 /**
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileConfigDO.java
@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.infra.dal.dataobject.file; @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.infra.dal.dataobject.file;
3 import cn.hutool.core.util.StrUtil; 3 import cn.hutool.core.util.StrUtil;
4 import cn.iocoder.yudao.framework.common.util.json.JsonUtils; 4 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
5 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 5 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  6 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
6 import cn.iocoder.yudao.module.infra.framework.file.core.client.FileClientConfig; 7 import cn.iocoder.yudao.module.infra.framework.file.core.client.FileClientConfig;
7 import cn.iocoder.yudao.module.infra.framework.file.core.client.db.DBFileClientConfig; 8 import cn.iocoder.yudao.module.infra.framework.file.core.client.db.DBFileClientConfig;
8 import cn.iocoder.yudao.module.infra.framework.file.core.client.ftp.FtpFileClientConfig; 9 import cn.iocoder.yudao.module.infra.framework.file.core.client.ftp.FtpFileClientConfig;
@@ -32,6 +33,7 @@ import java.lang.reflect.Field; @@ -32,6 +33,7 @@ import java.lang.reflect.Field;
32 @Builder 33 @Builder
33 @NoArgsConstructor 34 @NoArgsConstructor
34 @AllArgsConstructor 35 @AllArgsConstructor
  36 +@TenantIgnore
35 public class FileConfigDO extends BaseDO { 37 public class FileConfigDO extends BaseDO {
36 38
37 /** 39 /**
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileContentDO.java
1 package cn.iocoder.yudao.module.infra.dal.dataobject.file; 1 package cn.iocoder.yudao.module.infra.dal.dataobject.file;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
4 import cn.iocoder.yudao.module.infra.framework.file.core.client.db.DBFileClient; 5 import cn.iocoder.yudao.module.infra.framework.file.core.client.db.DBFileClient;
5 -import com.baomidou.mybatisplus.annotation.IdType;  
6 import com.baomidou.mybatisplus.annotation.KeySequence; 6 import com.baomidou.mybatisplus.annotation.KeySequence;
7 import com.baomidou.mybatisplus.annotation.TableId; 7 import com.baomidou.mybatisplus.annotation.TableId;
8 import com.baomidou.mybatisplus.annotation.TableName; 8 import com.baomidou.mybatisplus.annotation.TableName;
@@ -23,6 +23,7 @@ import lombok.*; @@ -23,6 +23,7 @@ import lombok.*;
23 @Builder 23 @Builder
24 @NoArgsConstructor 24 @NoArgsConstructor
25 @AllArgsConstructor 25 @AllArgsConstructor
  26 +@TenantIgnore
26 public class FileContentDO extends BaseDO { 27 public class FileContentDO extends BaseDO {
27 28
28 /** 29 /**
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileDO.java
1 package cn.iocoder.yudao.module.infra.dal.dataobject.file; 1 package cn.iocoder.yudao.module.infra.dal.dataobject.file;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
4 import com.baomidou.mybatisplus.annotation.KeySequence; 5 import com.baomidou.mybatisplus.annotation.KeySequence;
5 import com.baomidou.mybatisplus.annotation.TableName; 6 import com.baomidou.mybatisplus.annotation.TableName;
6 import lombok.*; 7 import lombok.*;
@@ -19,6 +20,7 @@ import lombok.*; @@ -19,6 +20,7 @@ import lombok.*;
19 @Builder 20 @Builder
20 @NoArgsConstructor 21 @NoArgsConstructor
21 @AllArgsConstructor 22 @AllArgsConstructor
  23 +@TenantIgnore
22 public class FileDO extends BaseDO { 24 public class FileDO extends BaseDO {
23 25
24 /** 26 /**
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/job/JobDO.java
1 package cn.iocoder.yudao.module.infra.dal.dataobject.job; 1 package cn.iocoder.yudao.module.infra.dal.dataobject.job;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
4 import cn.iocoder.yudao.module.infra.enums.job.JobStatusEnum; 5 import cn.iocoder.yudao.module.infra.enums.job.JobStatusEnum;
5 import com.baomidou.mybatisplus.annotation.KeySequence; 6 import com.baomidou.mybatisplus.annotation.KeySequence;
6 import com.baomidou.mybatisplus.annotation.TableId; 7 import com.baomidou.mybatisplus.annotation.TableId;
@@ -20,6 +21,7 @@ import lombok.*; @@ -20,6 +21,7 @@ import lombok.*;
20 @Builder 21 @Builder
21 @NoArgsConstructor 22 @NoArgsConstructor
22 @AllArgsConstructor 23 @AllArgsConstructor
  24 +@TenantIgnore
23 public class JobDO extends BaseDO { 25 public class JobDO extends BaseDO {
24 26
25 /** 27 /**
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/job/JobLogDO.java
@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.infra.dal.dataobject.job; @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.infra.dal.dataobject.job;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler; 4 import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
  5 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
5 import cn.iocoder.yudao.module.infra.enums.job.JobLogStatusEnum; 6 import cn.iocoder.yudao.module.infra.enums.job.JobLogStatusEnum;
6 import com.baomidou.mybatisplus.annotation.KeySequence; 7 import com.baomidou.mybatisplus.annotation.KeySequence;
7 import com.baomidou.mybatisplus.annotation.TableName; 8 import com.baomidou.mybatisplus.annotation.TableName;
@@ -22,6 +23,7 @@ import java.time.LocalDateTime; @@ -22,6 +23,7 @@ import java.time.LocalDateTime;
22 @Builder 23 @Builder
23 @NoArgsConstructor 24 @NoArgsConstructor
24 @AllArgsConstructor 25 @AllArgsConstructor
  26 +@TenantIgnore
25 public class JobLogDO extends BaseDO { 27 public class JobLogDO extends BaseDO {
26 28
27 /** 29 /**
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictDataDO.java
@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.dict; @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.dict;
2 2
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  5 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
5 import com.baomidou.mybatisplus.annotation.*; 6 import com.baomidou.mybatisplus.annotation.*;
6 import lombok.Data; 7 import lombok.Data;
7 import lombok.EqualsAndHashCode; 8 import lombok.EqualsAndHashCode;
@@ -15,6 +16,7 @@ import lombok.EqualsAndHashCode; @@ -15,6 +16,7 @@ import lombok.EqualsAndHashCode;
15 @KeySequence("system_dict_data_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 16 @KeySequence("system_dict_data_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
16 @Data 17 @Data
17 @EqualsAndHashCode(callSuper = true) 18 @EqualsAndHashCode(callSuper = true)
  19 +@TenantIgnore
18 public class DictDataDO extends BaseDO { 20 public class DictDataDO extends BaseDO {
19 21
20 /** 22 /**
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictTypeDO.java
@@ -2,8 +2,8 @@ package cn.iocoder.yudao.module.system.dal.dataobject.dict; @@ -2,8 +2,8 @@ package cn.iocoder.yudao.module.system.dal.dataobject.dict;
2 2
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  5 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
5 import com.baomidou.mybatisplus.annotation.KeySequence; 6 import com.baomidou.mybatisplus.annotation.KeySequence;
6 -import com.baomidou.mybatisplus.annotation.TableField;  
7 import com.baomidou.mybatisplus.annotation.TableId; 7 import com.baomidou.mybatisplus.annotation.TableId;
8 import com.baomidou.mybatisplus.annotation.TableName; 8 import com.baomidou.mybatisplus.annotation.TableName;
9 import lombok.*; 9 import lombok.*;
@@ -23,6 +23,7 @@ import java.time.LocalDateTime; @@ -23,6 +23,7 @@ import java.time.LocalDateTime;
23 @Builder 23 @Builder
24 @NoArgsConstructor 24 @NoArgsConstructor
25 @AllArgsConstructor 25 @AllArgsConstructor
  26 +@TenantIgnore
26 public class DictTypeDO extends BaseDO { 27 public class DictTypeDO extends BaseDO {
27 28
28 /** 29 /**
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailAccountDO.java
1 package cn.iocoder.yudao.module.system.dal.dataobject.mail; 1 package cn.iocoder.yudao.module.system.dal.dataobject.mail;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
4 import com.baomidou.mybatisplus.annotation.KeySequence; 5 import com.baomidou.mybatisplus.annotation.KeySequence;
5 import com.baomidou.mybatisplus.annotation.TableId; 6 import com.baomidou.mybatisplus.annotation.TableId;
6 import com.baomidou.mybatisplus.annotation.TableName; 7 import com.baomidou.mybatisplus.annotation.TableName;
@@ -19,6 +20,7 @@ import lombok.EqualsAndHashCode; @@ -19,6 +20,7 @@ import lombok.EqualsAndHashCode;
19 @KeySequence("system_mail_account_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 20 @KeySequence("system_mail_account_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
20 @Data 21 @Data
21 @EqualsAndHashCode(callSuper = true) 22 @EqualsAndHashCode(callSuper = true)
  23 +@TenantIgnore
22 public class MailAccountDO extends BaseDO { 24 public class MailAccountDO extends BaseDO {
23 25
24 /** 26 /**
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailLogDO.java
@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.mail; @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.mail;
2 2
3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  5 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
5 import cn.iocoder.yudao.module.system.enums.mail.MailSendStatusEnum; 6 import cn.iocoder.yudao.module.system.enums.mail.MailSendStatusEnum;
6 import com.baomidou.mybatisplus.annotation.KeySequence; 7 import com.baomidou.mybatisplus.annotation.KeySequence;
7 import com.baomidou.mybatisplus.annotation.TableField; 8 import com.baomidou.mybatisplus.annotation.TableField;
@@ -28,6 +29,7 @@ import java.util.Map; @@ -28,6 +29,7 @@ import java.util.Map;
28 @Builder 29 @Builder
29 @AllArgsConstructor 30 @AllArgsConstructor
30 @NoArgsConstructor 31 @NoArgsConstructor
  32 +@TenantIgnore
31 public class MailLogDO extends BaseDO implements Serializable { 33 public class MailLogDO extends BaseDO implements Serializable {
32 34
33 /** 35 /**
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailTemplateDO.java
@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.mail; @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.mail;
2 2
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  5 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
5 import com.baomidou.mybatisplus.annotation.KeySequence; 6 import com.baomidou.mybatisplus.annotation.KeySequence;
6 import com.baomidou.mybatisplus.annotation.TableField; 7 import com.baomidou.mybatisplus.annotation.TableField;
7 import com.baomidou.mybatisplus.annotation.TableName; 8 import com.baomidou.mybatisplus.annotation.TableName;
@@ -21,6 +22,7 @@ import java.util.List; @@ -21,6 +22,7 @@ import java.util.List;
21 @KeySequence("system_mail_template_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 22 @KeySequence("system_mail_template_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
22 @Data 23 @Data
23 @EqualsAndHashCode(callSuper = true) 24 @EqualsAndHashCode(callSuper = true)
  25 +@TenantIgnore
24 public class MailTemplateDO extends BaseDO { 26 public class MailTemplateDO extends BaseDO {
25 27
26 /** 28 /**
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyTemplateDO.java
@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.notify; @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.notify;
2 2
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  5 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
5 import com.baomidou.mybatisplus.annotation.KeySequence; 6 import com.baomidou.mybatisplus.annotation.KeySequence;
6 import com.baomidou.mybatisplus.annotation.TableField; 7 import com.baomidou.mybatisplus.annotation.TableField;
7 import com.baomidou.mybatisplus.annotation.TableId; 8 import com.baomidou.mybatisplus.annotation.TableId;
@@ -24,6 +25,7 @@ import java.util.List; @@ -24,6 +25,7 @@ import java.util.List;
24 @Builder 25 @Builder
25 @NoArgsConstructor 26 @NoArgsConstructor
26 @AllArgsConstructor 27 @AllArgsConstructor
  28 +@TenantIgnore
27 public class NotifyTemplateDO extends BaseDO { 29 public class NotifyTemplateDO extends BaseDO {
28 30
29 /** 31 /**
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2ClientDO.java
@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.oauth2; @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.oauth2;
2 2
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  5 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
5 import cn.iocoder.yudao.module.system.enums.oauth2.OAuth2GrantTypeEnum; 6 import cn.iocoder.yudao.module.system.enums.oauth2.OAuth2GrantTypeEnum;
6 import com.baomidou.mybatisplus.annotation.KeySequence; 7 import com.baomidou.mybatisplus.annotation.KeySequence;
7 import com.baomidou.mybatisplus.annotation.TableField; 8 import com.baomidou.mybatisplus.annotation.TableField;
@@ -22,6 +23,7 @@ import java.util.List; @@ -22,6 +23,7 @@ import java.util.List;
22 @KeySequence("system_oauth2_client_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 23 @KeySequence("system_oauth2_client_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
23 @Data 24 @Data
24 @EqualsAndHashCode(callSuper = true) 25 @EqualsAndHashCode(callSuper = true)
  26 +@TenantIgnore
25 public class OAuth2ClientDO extends BaseDO { 27 public class OAuth2ClientDO extends BaseDO {
26 28
27 /** 29 /**
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/MenuDO.java
@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.permission; @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.permission;
2 2
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  5 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
5 import cn.iocoder.yudao.module.system.enums.permission.MenuTypeEnum; 6 import cn.iocoder.yudao.module.system.enums.permission.MenuTypeEnum;
6 import com.baomidou.mybatisplus.annotation.KeySequence; 7 import com.baomidou.mybatisplus.annotation.KeySequence;
7 import com.baomidou.mybatisplus.annotation.TableId; 8 import com.baomidou.mybatisplus.annotation.TableId;
@@ -18,6 +19,7 @@ import lombok.EqualsAndHashCode; @@ -18,6 +19,7 @@ import lombok.EqualsAndHashCode;
18 @KeySequence("system_menu_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 19 @KeySequence("system_menu_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
19 @Data 20 @Data
20 @EqualsAndHashCode(callSuper = true) 21 @EqualsAndHashCode(callSuper = true)
  22 +@TenantIgnore
21 public class MenuDO extends BaseDO { 23 public class MenuDO extends BaseDO {
22 24
23 /** 25 /**
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsChannelDO.java
@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.sms; @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.sms;
2 2
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  5 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
5 import cn.iocoder.yudao.module.system.framework.sms.core.enums.SmsChannelEnum; 6 import cn.iocoder.yudao.module.system.framework.sms.core.enums.SmsChannelEnum;
6 import com.baomidou.mybatisplus.annotation.KeySequence; 7 import com.baomidou.mybatisplus.annotation.KeySequence;
7 import com.baomidou.mybatisplus.annotation.TableName; 8 import com.baomidou.mybatisplus.annotation.TableName;
@@ -20,6 +21,7 @@ import lombok.ToString; @@ -20,6 +21,7 @@ import lombok.ToString;
20 @Data 21 @Data
21 @EqualsAndHashCode(callSuper = true) 22 @EqualsAndHashCode(callSuper = true)
22 @ToString(callSuper = true) 23 @ToString(callSuper = true)
  24 +@TenantIgnore
23 public class SmsChannelDO extends BaseDO { 25 public class SmsChannelDO extends BaseDO {
24 26
25 /** 27 /**
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsCodeDO.java
1 package cn.iocoder.yudao.module.system.dal.dataobject.sms; 1 package cn.iocoder.yudao.module.system.dal.dataobject.sms;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
4 import com.baomidou.mybatisplus.annotation.KeySequence; 5 import com.baomidou.mybatisplus.annotation.KeySequence;
5 import com.baomidou.mybatisplus.annotation.TableName; 6 import com.baomidou.mybatisplus.annotation.TableName;
6 import lombok.*; 7 import lombok.*;
@@ -21,6 +22,7 @@ import java.time.LocalDateTime; @@ -21,6 +22,7 @@ import java.time.LocalDateTime;
21 @Builder 22 @Builder
22 @NoArgsConstructor 23 @NoArgsConstructor
23 @AllArgsConstructor 24 @AllArgsConstructor
  25 +@TenantIgnore
24 public class SmsCodeDO extends BaseDO { 26 public class SmsCodeDO extends BaseDO {
25 27
26 /** 28 /**
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsLogDO.java
@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.sms; @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.sms;
2 2
3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  5 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
5 import cn.iocoder.yudao.module.system.enums.sms.SmsReceiveStatusEnum; 6 import cn.iocoder.yudao.module.system.enums.sms.SmsReceiveStatusEnum;
6 import cn.iocoder.yudao.module.system.enums.sms.SmsSendStatusEnum; 7 import cn.iocoder.yudao.module.system.enums.sms.SmsSendStatusEnum;
7 import com.baomidou.mybatisplus.annotation.KeySequence; 8 import com.baomidou.mybatisplus.annotation.KeySequence;
@@ -27,6 +28,7 @@ import java.util.Map; @@ -27,6 +28,7 @@ import java.util.Map;
27 @Builder 28 @Builder
28 @AllArgsConstructor 29 @AllArgsConstructor
29 @NoArgsConstructor 30 @NoArgsConstructor
  31 +@TenantIgnore
30 public class SmsLogDO extends BaseDO { 32 public class SmsLogDO extends BaseDO {
31 33
32 /** 34 /**
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsTemplateDO.java
1 package cn.iocoder.yudao.module.system.dal.dataobject.sms; 1 package cn.iocoder.yudao.module.system.dal.dataobject.sms;
2 2
  3 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
3 import cn.iocoder.yudao.module.system.enums.sms.SmsTemplateTypeEnum; 4 import cn.iocoder.yudao.module.system.enums.sms.SmsTemplateTypeEnum;
4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 5 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
5 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 6 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
@@ -24,6 +25,7 @@ import java.util.List; @@ -24,6 +25,7 @@ import java.util.List;
24 @Data 25 @Data
25 @EqualsAndHashCode(callSuper = true) 26 @EqualsAndHashCode(callSuper = true)
26 @ToString(callSuper = true) 27 @ToString(callSuper = true)
  28 +@TenantIgnore
27 public class SmsTemplateDO extends BaseDO { 29 public class SmsTemplateDO extends BaseDO {
28 30
29 /** 31 /**
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.java
@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.tenant; @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.tenant;
2 2
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  5 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
5 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; 6 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
6 import com.baomidou.mybatisplus.annotation.KeySequence; 7 import com.baomidou.mybatisplus.annotation.KeySequence;
7 import com.baomidou.mybatisplus.annotation.TableName; 8 import com.baomidou.mybatisplus.annotation.TableName;
@@ -22,6 +23,7 @@ import java.time.LocalDateTime; @@ -22,6 +23,7 @@ import java.time.LocalDateTime;
22 @Builder 23 @Builder
23 @AllArgsConstructor 24 @AllArgsConstructor
24 @NoArgsConstructor 25 @NoArgsConstructor
  26 +@TenantIgnore
25 public class TenantDO extends BaseDO { 27 public class TenantDO extends BaseDO {
26 28
27 /** 29 /**
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantPackageDO.java
@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.tenant; @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.tenant;
2 2
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  5 +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
5 import com.baomidou.mybatisplus.annotation.KeySequence; 6 import com.baomidou.mybatisplus.annotation.KeySequence;
6 import com.baomidou.mybatisplus.annotation.TableField; 7 import com.baomidou.mybatisplus.annotation.TableField;
7 import com.baomidou.mybatisplus.annotation.TableName; 8 import com.baomidou.mybatisplus.annotation.TableName;
@@ -23,6 +24,7 @@ import java.util.Set; @@ -23,6 +24,7 @@ import java.util.Set;
23 @Builder 24 @Builder
24 @AllArgsConstructor 25 @AllArgsConstructor
25 @NoArgsConstructor 26 @NoArgsConstructor
  27 +@TenantIgnore
26 public class TenantPackageDO extends BaseDO { 28 public class TenantPackageDO extends BaseDO {
27 29
28 /** 30 /**
yudao-server/src/main/resources/application.yaml
@@ -275,49 +275,6 @@ yudao: @@ -275,49 +275,6 @@ yudao:
275 ignore-urls: 275 ignore-urls:
276 - /jmreport/* # 积木报表,无法携带租户编号 276 - /jmreport/* # 积木报表,无法携带租户编号
277 ignore-tables: 277 ignore-tables:
278 - - system_tenant  
279 - - system_tenant_package  
280 - - system_dict_data  
281 - - system_dict_type  
282 - - system_error_code  
283 - - system_menu  
284 - - system_sms_channel  
285 - - system_sms_template  
286 - - system_sms_log  
287 - - system_sensitive_word  
288 - - system_oauth2_client  
289 - - system_mail_account  
290 - - system_mail_template  
291 - - system_mail_log  
292 - - system_notify_template  
293 - - infra_codegen_column  
294 - - infra_codegen_table  
295 - - infra_config  
296 - - infra_file_config  
297 - - infra_file  
298 - - infra_file_content  
299 - - infra_job  
300 - - infra_job_log  
301 - - infra_job_log  
302 - - iot_plugin_info  
303 - - iot_plugin_instance  
304 - - infra_data_source_config  
305 - - jimu_dict  
306 - - jimu_dict_item  
307 - - jimu_report  
308 - - jimu_report_data_source  
309 - - jimu_report_db  
310 - - jimu_report_db_field  
311 - - jimu_report_db_param  
312 - - jimu_report_link  
313 - - jimu_report_map  
314 - - jimu_report_share  
315 - - rep_demo_dxtj  
316 - - rep_demo_employee  
317 - - rep_demo_gongsi  
318 - - rep_demo_jianpiao  
319 - - tmp_report_data_1  
320 - - tmp_report_data_income  
321 ignore-caches: 278 ignore-caches:
322 - user_role_ids 279 - user_role_ids
323 - permission_menu_ids 280 - permission_menu_ids