|
|
@@ -1,5 +1,7 @@
|
|
|
package com.coffee.framework.config.mybatisplus;
|
|
|
|
|
|
+import cn.dev33.satoken.session.SaSession;
|
|
|
+import cn.dev33.satoken.stp.StpUtil;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.io.FileUtil;
|
|
|
import cn.hutool.core.util.ClassUtil;
|
|
|
@@ -14,25 +16,21 @@ import com.baomidou.mybatisplus.extension.plugins.inner.DataPermissionIntercepto
|
|
|
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
|
|
|
+import com.coffee.common.Constants;
|
|
|
+import com.coffee.common.bo.LoginUser;
|
|
|
import com.coffee.common.entity.TenantGenericEntity;
|
|
|
import com.coffee.framework.config.mybatisplus.handler.CreateAndUpdateMetaObjectHandler;
|
|
|
import com.coffee.framework.config.mybatisplus.handler.CustomDataPermissionHandler;
|
|
|
-import lombok.AllArgsConstructor;
|
|
|
import net.sf.jsqlparser.expression.Expression;
|
|
|
import net.sf.jsqlparser.expression.StringValue;
|
|
|
import net.sf.jsqlparser.schema.Column;
|
|
|
import org.mybatis.spring.annotation.MapperScan;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.context.ApplicationContext;
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
-import org.springframework.core.io.Resource;
|
|
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
|
|
import org.springframework.web.context.request.RequestContextHolder;
|
|
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
-
|
|
|
-import javax.annotation.PostConstruct;
|
|
|
-import java.io.IOException;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -69,6 +67,7 @@ public class MybatisPlusConfig {
|
|
|
.collect(Collectors.toSet());
|
|
|
}
|
|
|
ignoreTableName = Optional.ofNullable(ignoreTableName).orElse(new HashSet<>());
|
|
|
+ //兼容框架已有entity
|
|
|
ignoreTableName.addAll(classes
|
|
|
.stream()
|
|
|
.filter(aClass -> ObjectUtil.isNull(aClass.getAnnotation(TableName.class)))
|
|
|
@@ -132,7 +131,7 @@ public class MybatisPlusConfig {
|
|
|
|
|
|
@Override
|
|
|
public String getTenantIdColumn() {
|
|
|
- return null;
|
|
|
+ return "tenant_id";
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -142,6 +141,15 @@ public class MybatisPlusConfig {
|
|
|
if(request==null){
|
|
|
return true;
|
|
|
}
|
|
|
+ StringBuffer url = request.getRequest().getRequestURL();
|
|
|
+ if(url.toString().endsWith("/login")){
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ //判断当前有用户是否为系统级用户,若是,则忽略逻辑隔离
|
|
|
+ LoginUser loginUser = (LoginUser) StpUtil.getTokenSession().get(Constants.LOGIN_USER_KEY);
|
|
|
+ if(1==loginUser.getIsSys()){
|
|
|
+ return true;
|
|
|
+ }
|
|
|
return CollectionUtil.isEmpty(ignoreTableName)||ignoreTableName.contains(tableName);
|
|
|
}
|
|
|
|