pans 8 місяців тому
батько
коміт
cd6bc50ff1

+ 40 - 50
snowy-plugin/snowy-plugin-ten/snowy-plugin-ten-func/src/main/java/vip/xiaonuo/ten/core/config/TenConfigurer.java

@@ -12,16 +12,8 @@
  */
 package vip.xiaonuo.ten.core.config;
 
-import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
-import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
-import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
-import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
 import com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver;
 import io.swagger.annotations.ApiOperation;
-import net.sf.jsqlparser.expression.Expression;
-import net.sf.jsqlparser.expression.StringValue;
 import org.springframework.boot.web.servlet.FilterRegistrationBean;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -34,12 +26,10 @@ import springfox.documentation.service.Contact;
 import springfox.documentation.spi.DocumentationType;
 import springfox.documentation.spring.web.plugins.Docket;
 import vip.xiaonuo.common.pojo.CommonResult;
-import vip.xiaonuo.ten.core.context.TenContextHolder;
 import vip.xiaonuo.ten.core.filter.TenResolveFilter;
 import vip.xiaonuo.ten.core.prop.TenProperties;
 
 import javax.annotation.Resource;
-import java.util.List;
 
 /**
  * 动态租户解析过滤器配置
@@ -75,46 +65,46 @@ public class TenConfigurer implements WebMvcConfigurer {
      * @author xuyuxiang
      * @date 2022/3/11 10:59
      **/
-    @Bean
-    public MybatisPlusInterceptor mybatisPlusInterceptorPrimary() {
-        MybatisPlusInterceptor mybatisPlusInterceptorPrimary = new MybatisPlusInterceptor();
-        // 添加行级动态租户插件
-        mybatisPlusInterceptorPrimary.addInnerInterceptor(new TenantLineInnerInterceptor(new TenantLineHandler() {
-            @Override
-            public Expression getTenantId() {
-                // 获取当前租户的ID
-                String currentTenantId = TenContextHolder.get();
-                return ObjectUtil.isEmpty(currentTenantId)?new StringValue(tenProperties.getDefaultTenId()):new StringValue(currentTenantId);
-            }
-
-            @Override
-            public boolean ignoreTable(String tableName) {
-                // 未开启多租户则返回true,表示所有表都不需要拼多租户条件
-                if(!tenProperties.getEnabled()) {
-                    return true;
-                } else {
-                    // 根据配置的忽略表名决定是否拼接
-                    String ignoreTableNames = tenProperties.getIgnoreTableNames();
-                    if(ObjectUtil.isNotEmpty(ignoreTableNames)) {
-                        List<String> ignoreTableNameList = StrUtil.split(ignoreTableNames.toLowerCase(), StrUtil.COMMA);
-                        return ignoreTableNameList.contains(tableName.toLowerCase());
-                    } else {
-                        // 未配置则返回false表示所有表都需要拼多租户条件
-                        return false;
-                    }
-                }
-            }
-
-            @Override
-            public String getTenantIdColumn() {
-                // 租户字段名称
-                return tenProperties.getTenIdColumnName();
-            }
-        }));
-        // 添加分页插件
-        mybatisPlusInterceptorPrimary.addInnerInterceptor(new PaginationInnerInterceptor());
-        return mybatisPlusInterceptorPrimary;
-    }
+//    @Bean
+//    public MybatisPlusInterceptor mybatisPlusInterceptorPrimary() {
+// //       MybatisPlusInterceptor mybatisPlusInterceptorPrimary = new MybatisPlusInterceptor();
+//        // 添加行级动态租户插件
+////        mybatisPlusInterceptorPrimary.addInnerInterceptor(new TenantLineInnerInterceptor(new TenantLineHandler() {
+////            @Override
+////            public Expression getTenantId() {
+////                // 获取当前租户的ID
+////                String currentTenantId = TenContextHolder.get();
+////                return ObjectUtil.isEmpty(currentTenantId)?new StringValue(tenProperties.getDefaultTenId()):new StringValue(currentTenantId);
+////            }
+//
+////            @Override
+////            public boolean ignoreTable(String tableName) {
+////                // 未开启多租户则返回true,表示所有表都不需要拼多租户条件
+////                if(!tenProperties.getEnabled()) {
+////                    return true;
+////                } else {
+////                    // 根据配置的忽略表名决定是否拼接
+////                    String ignoreTableNames = tenProperties.getIgnoreTableNames();
+////                    if(ObjectUtil.isNotEmpty(ignoreTableNames)) {
+////                        List<String> ignoreTableNameList = StrUtil.split(ignoreTableNames.toLowerCase(), StrUtil.COMMA);
+////                        return ignoreTableNameList.contains(tableName.toLowerCase());
+////                    } else {
+////                        // 未配置则返回false表示所有表都需要拼多租户条件
+////                        return false;
+////                    }
+////                }
+////            }
+//
+////            @Override
+////            public String getTenantIdColumn() {
+////                // 租户字段名称
+////                return tenProperties.getTenIdColumnName();
+////            }
+//  //      }));
+//        // 添加分页插件
+//   //     mybatisPlusInterceptorPrimary.addInnerInterceptor(new PaginationInnerInterceptor());
+//        return mybatisPlusInterceptorPrimary;
+//    }
 
     /**
      * API文档分组配置

+ 24 - 27
snowy-plugin/snowy-plugin-ten/snowy-plugin-ten-func/src/main/java/vip/xiaonuo/ten/core/filter/TenResolveFilter.java

@@ -22,9 +22,6 @@ import vip.xiaonuo.common.util.CommonServletUtil;
 import vip.xiaonuo.dbs.api.DbsApi;
 import vip.xiaonuo.ten.core.context.TenContextHolder;
 import vip.xiaonuo.ten.core.prop.TenProperties;
-import vip.xiaonuo.ten.modular.entity.TenStorage;
-import vip.xiaonuo.ten.modular.enums.TenCategoryEnum;
-import vip.xiaonuo.ten.modular.service.TenService;
 
 import javax.servlet.Filter;
 import javax.servlet.FilterChain;
@@ -87,35 +84,35 @@ public class TenResolveFilter implements Filter {
             TenProperties tenProperties = SpringUtil.getBean(TenProperties.class);
             DbsApi dbsApi = SpringUtil.getBean(DbsApi.class);
             // 如果开启了多租户
-            if(tenProperties.getEnabled()) {
+        //    if(tenProperties.getEnabled()) {
                 // 获取到解析的租户
-                TenStorage tenStorage = SpringUtil.getBean(TenService.class).getCurrentTen();
+              //  TenStorage tenStorage = SpringUtil.getBean(TenService.class).getCurrentTen();
                 // 获取租户id
-                String tenantId = tenStorage.getId();
-                if(tenantId.equals(tenProperties.getDefaultTenId())) {
-                    // 执行切换租户的数据源为master
-                    dbsApi.changeDataSource(dbsApi.getDefaultDataSourceName());
-                    // 切换租户id为默认id
-                    TenContextHolder.put(tenProperties.getDefaultTenId());
-                } else {
-                    if(TenCategoryEnum.DB.getValue().equals(tenStorage.getCategory())) {
-                        // 执行切换租户的数据源
-                        dbsApi.changeDataSource(tenStorage.getDbsName());
-                        // 切换租户id为默认id
-                        TenContextHolder.put(tenProperties.getDefaultTenId());
-                    } else {
-                        // 执行切换租户的数据源为master
-                        dbsApi.changeDataSource(dbsApi.getDefaultDataSourceName());
-                        // 切换租户id为其id
-                        TenContextHolder.put(tenantId);
-                    }
-                }
-            } else {
+               // String tenantId = tenStorage.getId();
+//                if(tenantId.equals(tenProperties.getDefaultTenId())) {
+//                    // 执行切换租户的数据源为master
+//                    dbsApi.changeDataSource(dbsApi.getDefaultDataSourceName());
+//                    // 切换租户id为默认id
+//                    TenContextHolder.put(tenProperties.getDefaultTenId());
+//                } else {
+//                    if(TenCategoryEnum.DB.getValue().equals(tenStorage.getCategory())) {
+//                        // 执行切换租户的数据源
+//                        dbsApi.changeDataSource(tenStorage.getDbsName());
+//                        // 切换租户id为默认id
+//                        TenContextHolder.put(tenProperties.getDefaultTenId());
+//                    } else {
+//                        // 执行切换租户的数据源为master
+//                        dbsApi.changeDataSource(dbsApi.getDefaultDataSourceName());
+//                        // 切换租户id为其id
+//                        TenContextHolder.put(tenantId);
+//                    }
+//                }
+          //  } else {
                 // 执行切换租户的数据源为master
                 dbsApi.changeDataSource(dbsApi.getDefaultDataSourceName());
                 // 切换租户id为默认id
-                TenContextHolder.put(tenProperties.getDefaultTenId());
-            }
+       //         TenContextHolder.put(tenProperties.getDefaultTenId());
+         //   }
             // 继续执行
             chain.doFilter(request,response);
         } catch (Exception e) {