Merge remote-tracking branch 'base-version/main' into dev
This commit is contained in:
@@ -36,6 +36,11 @@
|
||||
<artifactId>zt-spring-boot-starter-biz-tenant</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.zt.plat</groupId>
|
||||
<artifactId>zt-spring-boot-starter-mybatis</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
<!-- Test 测试相关 -->
|
||||
<dependency>
|
||||
<groupId>com.zt.plat</groupId>
|
||||
|
||||
@@ -2,27 +2,54 @@ package com.zt.plat.framework.business.framework;
|
||||
|
||||
import com.zt.plat.framework.datapermission.core.rule.company.CompanyDataPermissionRuleCustomizer;
|
||||
import com.zt.plat.framework.datapermission.core.rule.dept.DeptDataPermissionRuleCustomizer;
|
||||
import org.springframework.beans.factory.BeanFactory;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurationPackages;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @author chenbowen
|
||||
* 自动为继承 BusinessBaseDO 的实体注册公司/部门数据权限字段。
|
||||
*/
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
public class BusinessDataPermissionConfiguration {
|
||||
|
||||
@Bean
|
||||
public CompanyDataPermissionRuleCustomizer sysCompanyDataPermissionRuleCustomizer() {
|
||||
return rule -> {
|
||||
// companyId
|
||||
rule.addCompanyColumn("demo_contract", "company_id");
|
||||
};
|
||||
public BusinessDataPermissionEntityScanner businessDataPermissionEntityScanner(BeanFactory beanFactory, ApplicationContext applicationContext) {
|
||||
Set<String> basePackages = new LinkedHashSet<>();
|
||||
if (AutoConfigurationPackages.has(beanFactory)) {
|
||||
basePackages.addAll(AutoConfigurationPackages.get(beanFactory));
|
||||
}
|
||||
if (basePackages.isEmpty()) {
|
||||
basePackages.add("com.zt");
|
||||
}
|
||||
ClassLoader classLoader = applicationContext != null
|
||||
? applicationContext.getClassLoader()
|
||||
: Thread.currentThread().getContextClassLoader();
|
||||
if (classLoader == null) {
|
||||
classLoader = BusinessDataPermissionConfiguration.class.getClassLoader();
|
||||
}
|
||||
return new BusinessDataPermissionEntityScanner(basePackages, classLoader);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public DeptDataPermissionRuleCustomizer businessDeptDataPermissionRuleCustomizer() {
|
||||
return rule -> {
|
||||
// dept
|
||||
rule.addDeptColumn("demo_contract", "dept_id");
|
||||
};
|
||||
public CompanyDataPermissionRuleCustomizer autoCompanyDataPermissionRuleCustomizer(BusinessDataPermissionEntityScanner scanner) {
|
||||
return rule -> scanner.getEntityMetadata().forEach(metadata -> {
|
||||
if (metadata.hasCompanyColumn()) {
|
||||
rule.addCompanyColumn(metadata.getTableName(), metadata.getCompanyColumn());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Bean
|
||||
public DeptDataPermissionRuleCustomizer autoDeptDataPermissionRuleCustomizer(BusinessDataPermissionEntityScanner scanner) {
|
||||
return rule -> scanner.getEntityMetadata().forEach(metadata -> {
|
||||
if (metadata.hasDeptColumn()) {
|
||||
rule.addDeptColumn(metadata.getTableName(), metadata.getDeptColumn());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user