瀏覽代碼

jar包冲突bug修改

24282 2 年之前
父節點
當前提交
36d55ce95e

+ 4 - 0
pom.xml

@@ -63,6 +63,10 @@
                         <groupId>org.mybatis</groupId>
                         <artifactId>mybatis</artifactId>
                     </exclusion>
+                    <exclusion>
+                        <groupId>com.github.jsqlparser</groupId>
+                        <artifactId>jsqlparser</artifactId>
+                    </exclusion>
                 </exclusions>
             </dependency>
 

+ 7 - 7
ruoyi-framework/src/main/java/com/ruoyi/framework/mybatis/interceptor/LogicInterceptor.java

@@ -72,7 +72,7 @@ public class LogicInterceptor extends BaseMultiTableInnerInterceptor implements
      * key: 数据源名称
      * value: 包含逻辑删除字段的表名集合
      */
-    private static final Map<String, List<String>> notIncludeLogicIdTableNameMap = new HashMap<>();
+    private static final Map<String, List<String>> includeLogicIdTableNameMap = new HashMap<>();
 
     public LogicInterceptor(DataSource dataSource) {
         DynamicRoutingDataSource dynamicRoutingDataSource = (DynamicRoutingDataSource) dataSource;
@@ -85,11 +85,11 @@ public class LogicInterceptor extends BaseMultiTableInnerInterceptor implements
             // 获取数据库名
             String dbName = url.split("/")[3].split("\\?")[0];
             // 查询包含逻辑删除字段的表名sql
-            String sql = "SELECT DISTINCT table_name FROM information_schema.COLUMNS WHERE table_schema = ? AND column_name != ?";
+            String sql = "SELECT table_name FROM information_schema.COLUMNS WHERE table_schema = ? AND column_name = ?";
             // 执行sql找出不包含逻辑删除字段的表名
             List<String> notContainsDelFlagTableNameList = new JdbcTemplate(v).queryForList(sql, String.class, dbName, delFlagName);
             // 数据赋值
-            notIncludeLogicIdTableNameMap.put(dataSourceStat.getName(), notContainsDelFlagTableNameList);
+            includeLogicIdTableNameMap.put(dataSourceStat.getName(), notContainsDelFlagTableNameList);
         });
     }
 
@@ -293,10 +293,10 @@ public class LogicInterceptor extends BaseMultiTableInnerInterceptor implements
 
         // 执行sql的数据源名称
         String dataSourceType = ObjectUtil.defaultIfBlank(DynamicDataSourceContextHolder.peek(), DatasourceConstant.MASTER_NAME);
-        // 获取数据源中包含逻辑删除字段的表名
-        List<String> tableNameList = notIncludeLogicIdTableNameMap.get(dataSourceType);
-        // 如果包涵则跳过拼接逻辑删除
-        return tableNameList.contains(name);
+        // 获取数据源中包含逻辑删除字段的表名
+        List<String> tableNameList = includeLogicIdTableNameMap.get(dataSourceType);
+        // 如果包涵则跳过拼接逻辑删除
+        return !tableNameList.contains(name);
     }
 
 }

+ 8 - 7
ruoyi-framework/src/main/java/com/ruoyi/framework/mybatis/interceptor/TenantInterceptor.java

@@ -26,7 +26,8 @@ public class TenantInterceptor extends TenantLineInnerInterceptor {
 
     private static final String TenantName = "tenant_id";
 
-    private static final Map<String, List<String>> notIncludeTenantIdTableNameMap = new ConcurrentHashMap<>();
+    // 包涵租户字段集合
+    private static final Map<String, List<String>> includeTenantIdTableNameMap = new ConcurrentHashMap<>();
 
     public TenantInterceptor(DataSource dataSource) {
         DynamicRoutingDataSource dynamicRoutingDataSource = (DynamicRoutingDataSource) dataSource;
@@ -39,11 +40,11 @@ public class TenantInterceptor extends TenantLineInnerInterceptor {
             // 获取数据库名
             String dbName = url.split("/")[3].split("\\?")[0];
             // 查询包含逻辑删除字段的表名sql
-            String sql = "SELECT DISTINCT table_name FROM information_schema.COLUMNS WHERE table_schema = ? AND column_name != ?";
+            String sql = "SELECT table_name FROM information_schema.COLUMNS WHERE table_schema = ? AND column_name = ?";
             // 执行sql找出不包含逻辑删除字段的表名
-            List<String> notContainsDelFlagTableNameList = new JdbcTemplate(v).queryForList(sql, String.class, dbName, TenantName);
+            List<String> includeTenantIdTableNameList = new JdbcTemplate(v).queryForList(sql, String.class, dbName, TenantName);
             // 数据赋值
-            notIncludeTenantIdTableNameMap.put(dataSourceStat.getName(), notContainsDelFlagTableNameList);
+            includeTenantIdTableNameMap.put(dataSourceStat.getName(), includeTenantIdTableNameList);
         });
 
         setTenantLineHandler(new TenantLineHandler() {
@@ -68,9 +69,9 @@ public class TenantInterceptor extends TenantLineInnerInterceptor {
 
                 // 获取当前线程处理的数据源类型
                 String dataSourceType = ObjectUtil.defaultIfBlank(DynamicDataSourceContextHolder.peek(), DatasourceConstant.MASTER_NAME);
-                // 获取当前数据原中包涵租户字段的表名
-                List<String> tableNameList = notIncludeTenantIdTableNameMap.get(dataSourceType);
-                return tableNameList.contains(tableName);
+                // 获取当前数据原中包涵租户字段的表名
+                List<String> tableNameList = includeTenantIdTableNameMap.get(dataSourceType);
+                return !tableNameList.contains(tableName);
             }
 
         });