From cb49a28e3ea5cfac3910f6c237f40bcebd962397 Mon Sep 17 00:00:00 2001 From: luliqiang <kidgrow> Date: Fri, 10 Jul 2020 13:56:47 +0800 Subject: [PATCH] 租户设置中将动态表设置分离 --- kidgrow-commons/kidgrow-db-spring-boot-starter/src/main/java/com/kidgrow/db/config/DefaultMybatisPlusConfig.java | 28 ++++++++++++++++++++++++++-- 1 files changed, 26 insertions(+), 2 deletions(-) diff --git a/kidgrow-commons/kidgrow-db-spring-boot-starter/src/main/java/com/kidgrow/db/config/DefaultMybatisPlusConfig.java b/kidgrow-commons/kidgrow-db-spring-boot-starter/src/main/java/com/kidgrow/db/config/DefaultMybatisPlusConfig.java index 2837969..6167526 100644 --- a/kidgrow-commons/kidgrow-db-spring-boot-starter/src/main/java/com/kidgrow/db/config/DefaultMybatisPlusConfig.java +++ b/kidgrow-commons/kidgrow-db-spring-boot-starter/src/main/java/com/kidgrow/db/config/DefaultMybatisPlusConfig.java @@ -57,7 +57,7 @@ if (enableTenant) { TenantSqlParser tenantSqlParser = new TenantSqlParser() .setTenantHandler(tenantHandler); - + sqlParserList.add(tenantSqlParser); //动态表名解析器 DynamicTableNameParser dynamicTableNameParser = new DynamicTableNameParser(); Map<String, ITableNameHandler> tableNameHanderMap = new HashMap<>(); @@ -76,10 +76,34 @@ dynamicTableNameParser.setTableNameHandlerMap(tableNameHanderMap); sqlParserList.add(dynamicTableNameParser); } - sqlParserList.add(tenantSqlParser); + // paginationInterceptor.setSqlParserList(CollUtil.toList(tenantSqlParser)); paginationInterceptor.setSqlParserList(sqlParserList); paginationInterceptor.setSqlParserFilter(sqlParserFilter); + } else { + //动态表名解析器 + DynamicTableNameParser dynamicTableNameParser = new DynamicTableNameParser(); + Map<String, ITableNameHandler> tableNameHanderMap = new HashMap<>(); + + //通过配置文件获取需要动态解析的表名 + List<String> dynamicTables = tenantProperties.getDynamicTables(); + if(dynamicTables.size()>0){ + dynamicTables.forEach(item->{ + tableNameHanderMap.put(item, new ITableNameHandler() { + @Override + public String dynamicTableName(MetaObject metaObject, String sql, String tableName) { + return DynamicTableContextHolder.getDynamicTable(); + } + }); + }); + dynamicTableNameParser.setTableNameHandlerMap(tableNameHanderMap); + sqlParserList.add(dynamicTableNameParser); + paginationInterceptor.setSqlParserList(sqlParserList); + paginationInterceptor.setSqlParserFilter(sqlParserFilter); + } + +// paginationInterceptor.setSqlParserList(CollUtil.toList(tenantSqlParser)); + } -- Gitblit v1.8.0