From 148462f30bc32a10675c28c8f6544cc20e4de26a Mon Sep 17 00:00:00 2001 From: Wang Chen Chen <932560435@qq.com> Date: Wed, 22 Nov 2023 12:03:40 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=B7=BB=E5=8A=A0=20=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=89=80=E6=9C=89=E4=B8=8D=E5=8C=85=E5=90=AB=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?ID=E7=9A=84=E8=A1=A8=E5=90=8D=E7=A7=B0=20=E7=9A=84=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../corems/api/impl/ApiCmsProjectServiceImpl.java | 2 +- .../molly/corems/mapper/CmsProjectMapper.java | 13 ++++--------- .../molly/corems/runner/ProjectTableRunner.java | 14 +++++--------- .../src/main/resources/mapper/CmsProjectMapper.xml | 13 ++++++++++++- 4 files changed, 22 insertions(+), 20 deletions(-) diff --git a/server/molly-cms/src/main/java/com/xaaef/molly/corems/api/impl/ApiCmsProjectServiceImpl.java b/server/molly-cms/src/main/java/com/xaaef/molly/corems/api/impl/ApiCmsProjectServiceImpl.java index 9037be1..64ec331 100644 --- a/server/molly-cms/src/main/java/com/xaaef/molly/corems/api/impl/ApiCmsProjectServiceImpl.java +++ b/server/molly-cms/src/main/java/com/xaaef/molly/corems/api/impl/ApiCmsProjectServiceImpl.java @@ -140,7 +140,7 @@ public class ApiCmsProjectServiceImpl implements ApiCmsProjectService { .collect( Collectors.groupingBy( TenantAndProject::getTenantId, - Collectors.mapping(project -> project.getProjectId(), Collectors.toSet()) + Collectors.mapping(TenantAndProject::getProjectId, Collectors.toSet()) ) ); } diff --git a/server/molly-cms/src/main/java/com/xaaef/molly/corems/mapper/CmsProjectMapper.java b/server/molly-cms/src/main/java/com/xaaef/molly/corems/mapper/CmsProjectMapper.java index 68d9710..23e0de3 100644 --- a/server/molly-cms/src/main/java/com/xaaef/molly/corems/mapper/CmsProjectMapper.java +++ b/server/molly-cms/src/main/java/com/xaaef/molly/corems/mapper/CmsProjectMapper.java @@ -1,9 +1,9 @@ package com.xaaef.molly.corems.mapper; +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.xaaef.molly.corems.entity.CmsProject; import com.xaaef.molly.corems.entity.TenantAndProject; -import org.apache.ibatis.annotations.Select; import java.util.Collection; import java.util.Set; @@ -23,14 +23,9 @@ import java.util.Set; public interface CmsProjectMapper extends BaseMapper { - // 查询 数据库 所有的 表名称 - @Select("SELECT DISTINCT TABLE_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = (SELECT DATABASE ())") - Set selectListTableNames(); - - - // 查询 所有的 包含 project_id 的表 - @Select("SELECT DISTINCT TABLE_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = (SELECT DATABASE ()) AND COLUMN_NAME = #{column}") - Set selectListTableNamesByIncludeColumn(String column); + // 查询 所有的 不包含 project_id 的表 + @InterceptorIgnore(tenantLine = "true") + Set selectListTableNamesByNotIncludeColumn(String column); // 根据 租户的数据名称 查询 项目列表。如: molly_master 、molly_google diff --git a/server/molly-cms/src/main/java/com/xaaef/molly/corems/runner/ProjectTableRunner.java b/server/molly-cms/src/main/java/com/xaaef/molly/corems/runner/ProjectTableRunner.java index 7cf192b..33f70a1 100644 --- a/server/molly-cms/src/main/java/com/xaaef/molly/corems/runner/ProjectTableRunner.java +++ b/server/molly-cms/src/main/java/com/xaaef/molly/corems/runner/ProjectTableRunner.java @@ -40,17 +40,13 @@ public class ProjectTableRunner implements ServletContextListener { public void contextInitialized(ServletContextEvent sce) { log.info("ProjectTableRunner Initialized ....."); if (multiTenantProperties.getEnableProject()) { - // 查询 数据库 所有的 表名称 - var tableNames = projectMapper.selectListTableNames(); - // 查询 数据库 所有包含“project_id”字段的 表名称 - Set includeColumnProjectId = projectMapper.selectListTableNamesByIncludeColumn(PROJECT_ID); - // 排除 包含 所有包含“project_id”字段的 表名称 - tableNames.removeAll(includeColumnProjectId); - MbpConst.PROJECT_IGNORE_TABLES.addAll(tableNames); + // 查询 所有的 不包含 project_id 的表 + Set tableNames = projectMapper.selectListTableNamesByNotIncludeColumn(PROJECT_ID); // 从 CmsProject 实体类中。获取 CmsProject 在 mysql 中的表名称。 String projectTableName = CmsProject.class.getAnnotation(TableName.class).value(); - // 添加 CmsProject 的表名称 - MbpConst.PROJECT_IGNORE_TABLES.add(projectTableName); + // 删除 CmsProject 的表名称 + tableNames.add(projectTableName); + MbpConst.PROJECT_IGNORE_TABLES.addAll(tableNames); log.info("ignore project_id intercept table name : \n{}", JsonUtils.toJson(MbpConst.PROJECT_IGNORE_TABLES)); } } diff --git a/server/molly-cms/src/main/resources/mapper/CmsProjectMapper.xml b/server/molly-cms/src/main/resources/mapper/CmsProjectMapper.xml index c2a34b0..224f5c9 100644 --- a/server/molly-cms/src/main/resources/mapper/CmsProjectMapper.xml +++ b/server/molly-cms/src/main/resources/mapper/CmsProjectMapper.xml @@ -4,6 +4,17 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + @@ -13,7 +24,7 @@