ebike-plus/ebike-operations/src/main/java/com/cdzy/operations/config/MyBatisFlexConfiguration.java

56 lines
2.0 KiB
Java
Raw Normal View History

2025-09-15 15:48:54 +08:00
package com.cdzy.operations.config;
2025-09-15 10:36:01 +08:00
import com.cdzy.common.enums.EbikeContents;
import com.cdzy.operations.component.EbikeTenantFactory;
2025-09-15 10:36:01 +08:00
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.core.FlexGlobalConfig;
import com.mybatisflex.core.audit.AuditManager;
import com.mybatisflex.core.dialect.DbType;
import com.mybatisflex.core.keygen.KeyGenerators;
import com.mybatisflex.core.tenant.TenantFactory;
import com.mybatisflex.core.tenant.TenantManager;
2025-11-27 16:58:22 +08:00
import jakarta.annotation.PostConstruct;
import lombok.extern.slf4j.Slf4j;
2025-09-15 10:36:01 +08:00
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
2025-11-27 16:58:22 +08:00
@Slf4j
2025-09-15 10:36:01 +08:00
@Configuration
public class MyBatisFlexConfiguration {
2025-11-27 16:58:22 +08:00
@PostConstruct
public void init() {
2025-09-15 10:36:01 +08:00
//开启审计功能
AuditManager.setAuditEnable(true);
AuditManager.setMessageCollector(auditMessage ->
2025-11-27 16:58:22 +08:00
log.info("{},{}ms", auditMessage.getFullSql(), auditMessage.getElapsedTime())
2025-09-15 10:36:01 +08:00
);
2025-11-27 16:58:22 +08:00
log.info("开始初始化mybatis-flex全局配置");
FlexGlobalConfig globalConfig = FlexGlobalConfig.getDefaultConfig();
2025-11-27 16:58:22 +08:00
2025-09-15 10:36:01 +08:00
//全局ID生成策略配置
FlexGlobalConfig.KeyConfig keyConfig = new FlexGlobalConfig.KeyConfig();
keyConfig.setKeyType(KeyType.Generator);
keyConfig.setValue(KeyGenerators.snowFlakeId);
2025-09-15 10:36:01 +08:00
keyConfig.setBefore(true);
2025-11-27 16:58:22 +08:00
globalConfig.setKeyConfig(keyConfig);
2025-09-15 10:36:01 +08:00
globalConfig.setTenantColumn(EbikeContents.TENANT_ID);
globalConfig.setLogicDeleteColumn(EbikeContents.LOGIC_DELETE);
2025-11-27 16:58:22 +08:00
globalConfig.setDbType(DbType.POSTGRE_SQL);
2025-09-15 10:36:01 +08:00
globalConfig.setNormalValueOfLogicDelete(Boolean.FALSE);
globalConfig.setDeletedValueOfLogicDelete(Boolean.TRUE);
2025-11-27 16:58:22 +08:00
log.info("MyBatis-Flex 全局配置完成");
2025-09-15 10:36:01 +08:00
}
@Bean
2025-11-27 16:58:22 +08:00
public TenantFactory tenantFactory() {
log.info("开始初始化租户工厂");
EbikeTenantFactory factory = new EbikeTenantFactory();
TenantManager.setTenantFactory(factory);
2025-11-27 16:58:22 +08:00
return factory;
}
2025-09-15 10:36:01 +08:00
}