From a50f0f7b55b454c1f17555f1c8a8c2577204ca2b Mon Sep 17 00:00:00 2001 From: sgjj <995959152@qq.com> Date: Sat, 31 Oct 2020 11:16:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=BD=E7=A6=BB=E5=A4=9A=E7=A7=9F=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/net/mingsoft/config/WebConfig.java | 13 +++--- .../java/net/mingsoft/handler/AppHandler.java | 44 ------------------- 2 files changed, 6 insertions(+), 51 deletions(-) delete mode 100644 src/main/java/net/mingsoft/handler/AppHandler.java diff --git a/src/main/java/net/mingsoft/config/WebConfig.java b/src/main/java/net/mingsoft/config/WebConfig.java index 0ed9d646..80ce62f3 100644 --- a/src/main/java/net/mingsoft/config/WebConfig.java +++ b/src/main/java/net/mingsoft/config/WebConfig.java @@ -5,15 +5,16 @@ import com.alibaba.druid.support.spring.stat.BeanTypeAutoProxyCreator; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler; import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor; import com.baomidou.mybatisplus.extension.toolkit.JdbcUtils; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import net.mingsoft.basic.filter.XSSEscapeFilter; import net.mingsoft.basic.interceptor.ActionInterceptor; -import net.mingsoft.handler.AppHandler; import net.mingsoft.interceptor.DMInnerInterceptor; import net.mingsoft.interceptor.MysqlInnerInterceptor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.ServletListenerRegistrationBean; @@ -57,15 +58,13 @@ public class WebConfig implements WebMvcConfigurer { public ActionInterceptor actionInterceptor() { return new ActionInterceptor(); } - @Bean - public AppHandler appHandler() { - return new AppHandler(); - } @Bean - public MybatisPlusInterceptor mybatisPlusInterceptor(DataSource dataSource) { + public MybatisPlusInterceptor mybatisPlusInterceptor(DataSource dataSource,@Autowired(required = false) TenantLineHandler tenantLineHandler) { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); - interceptor.addInnerInterceptor(new TenantLineInnerInterceptor(appHandler())); + if(tenantLineHandler!=null){ + interceptor.addInnerInterceptor(new TenantLineInnerInterceptor(tenantLineHandler)); + } try { //mysql 添加转换sql DbType dbType = JdbcUtils.getDbType(dataSource.getConnection().getMetaData().getURL()); diff --git a/src/main/java/net/mingsoft/handler/AppHandler.java b/src/main/java/net/mingsoft/handler/AppHandler.java deleted file mode 100644 index dff9516a..00000000 --- a/src/main/java/net/mingsoft/handler/AppHandler.java +++ /dev/null @@ -1,44 +0,0 @@ -package net.mingsoft.handler; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.ArrayUtil; -import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler; -import com.github.pagehelper.Page; -import com.github.pagehelper.PageHelper; -import net.mingsoft.basic.util.BasicUtil; -import net.sf.jsqlparser.expression.Expression; -import net.sf.jsqlparser.expression.LongValue; -import org.springframework.beans.factory.annotation.Value; - -import java.util.ArrayList; -import java.util.Arrays; - -public class AppHandler implements TenantLineHandler { - - @Value("${ms.mwebsite.tables}") - private String[] tables; - @Override - public Expression getTenantId() { - //分页插件处理,会被执行两次,一次查询数量,一次查询结果,当查询到了数量之后当前线程变量就会被赋值,再次startPage就会丢失数量,所以判断拿到了数量就不再startPage - Page localPage = PageHelper.getLocalPage(); - if(localPage!=null&&localPage.getTotal()==0){ - PageHelper.clearPage(); - } - //int appId = BasicUtil.getAppId(); - if(localPage!=null&&localPage.getTotal()==0){ - PageHelper.startPage(localPage.getPageNum(),localPage.getPageSize(),localPage.isCount()); - PageHelper.orderBy(localPage.getOrderBy()); - } - return new LongValue(1); - } - - @Override - public String getTenantIdColumn() { - return "app_id"; - } - - @Override - public boolean ignoreTable(String tableName) { - return ArrayUtil.isEmpty(tables)|| !ArrayUtil.contains(tables,tableName); - } -}