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); - } -}