refactor: 多租户开发和代码规范调整
This commit is contained in:
@@ -9,12 +9,11 @@ import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerIntercept
|
||||
import com.youlai.boot.config.property.TenantProperties;
|
||||
import com.youlai.boot.plugin.mybatis.MyDataPermissionHandler;
|
||||
import com.youlai.boot.plugin.mybatis.MyMetaObjectHandler;
|
||||
import com.youlai.boot.plugin.mybatis.TenantLineHandler;
|
||||
import com.youlai.boot.plugin.mybatis.MyTenantLineHandler;
|
||||
import org.apache.ibatis.mapping.DatabaseIdProvider;
|
||||
import org.apache.ibatis.mapping.VendorDatabaseIdProvider;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||
@@ -35,7 +34,7 @@ public class MybatisConfig {
|
||||
private String dbType;
|
||||
|
||||
@Autowired(required = false)
|
||||
private TenantLineHandler tenantLineHandler;
|
||||
private MyTenantLineHandler myTenantLineHandler;
|
||||
|
||||
@Autowired(required = false)
|
||||
private TenantProperties tenantProperties;
|
||||
@@ -51,8 +50,8 @@ public class MybatisConfig {
|
||||
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
|
||||
|
||||
// 多租户插件(如果启用,必须在最前面)
|
||||
if (tenantProperties != null && Boolean.TRUE.equals(tenantProperties.getEnabled()) && tenantLineHandler != null) {
|
||||
interceptor.addInnerInterceptor(new TenantLineInnerInterceptor(tenantLineHandler));
|
||||
if (tenantProperties != null && Boolean.TRUE.equals(tenantProperties.getEnabled()) && myTenantLineHandler != null) {
|
||||
interceptor.addInnerInterceptor(new TenantLineInnerInterceptor(myTenantLineHandler));
|
||||
}
|
||||
|
||||
// 数据权限
|
||||
|
||||
@@ -7,21 +7,17 @@ import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
|
||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
||||
import com.youlai.boot.core.interceptor.TenantValidationInterceptor;
|
||||
import jakarta.validation.Validation;
|
||||
import jakarta.validation.Validator;
|
||||
import jakarta.validation.ValidatorFactory;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.hibernate.validator.HibernateValidator;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.http.converter.HttpMessageConverter;
|
||||
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||
import org.springframework.validation.beanvalidation.SpringConstraintValidatorFactory;
|
||||
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
import java.math.BigInteger;
|
||||
@@ -43,9 +39,6 @@ public class WebMvcConfig implements WebMvcConfigurer {
|
||||
|
||||
private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
@Autowired(required = false)
|
||||
private TenantValidationInterceptor tenantValidationInterceptor;
|
||||
|
||||
/**
|
||||
* 配置消息转换器
|
||||
*
|
||||
@@ -85,22 +78,6 @@ public class WebMvcConfig implements WebMvcConfigurer {
|
||||
* @param autowireCapableBeanFactory 用于注入 SpringConstraintValidatorFactory
|
||||
* @return Validator 实例
|
||||
*/
|
||||
/**
|
||||
* 配置拦截器
|
||||
*
|
||||
* @param registry 拦截器注册器
|
||||
*/
|
||||
@Override
|
||||
public void addInterceptors(InterceptorRegistry registry) {
|
||||
// 注册租户校验拦截器(仅在多租户模式启用时生效)
|
||||
if (tenantValidationInterceptor != null) {
|
||||
registry.addInterceptor(tenantValidationInterceptor)
|
||||
.addPathPatterns("/api/**")
|
||||
.order(2); // 在认证拦截器之后执行
|
||||
log.info("租户校验拦截器已注册");
|
||||
}
|
||||
}
|
||||
|
||||
@Bean
|
||||
public Validator validator(final AutowireCapableBeanFactory autowireCapableBeanFactory) {
|
||||
try (ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class)
|
||||
|
||||
@@ -57,6 +57,9 @@ public class TenantProperties {
|
||||
ignoreTables.add("sys_dict");
|
||||
ignoreTables.add("sys_dict_item");
|
||||
ignoreTables.add("sys_config");
|
||||
// 代码生成表(平台共用,不做租户隔离)
|
||||
ignoreTables.add("gen_table");
|
||||
ignoreTables.add("gen_table_column");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user