refactor:将 ZulipAccountsModule 改为全局单例模块

- 在 AppModule 中统一导入 ZulipAccountsModule.forRoot()
- 移除 admin.module、auth.module、zulip.module 中的重复导入
- 添加数据库 charset: utf8mb4 配置,支持中文和 emoji
This commit is contained in:
moyin
2026-01-15 14:58:28 +08:00
parent cde20c6fd7
commit d92a078fc7
4 changed files with 8 additions and 8 deletions

View File

@@ -6,6 +6,7 @@ import { AppController } from './app.controller';
import { AppService } from './app.service'; import { AppService } from './app.service';
import { LoggerModule } from './core/utils/logger/logger.module'; import { LoggerModule } from './core/utils/logger/logger.module';
import { UsersModule } from './core/db/users/users.module'; import { UsersModule } from './core/db/users/users.module';
import { ZulipAccountsModule } from './core/db/zulip_accounts/zulip_accounts.module';
import { LoginCoreModule } from './core/login_core/login_core.module'; import { LoginCoreModule } from './core/login_core/login_core.module';
import { AuthGatewayModule } from './gateway/auth/auth.gateway.module'; import { AuthGatewayModule } from './gateway/auth/auth.gateway.module';
import { ChatGatewayModule } from './gateway/chat/chat.gateway.module'; import { ChatGatewayModule } from './gateway/chat/chat.gateway.module';
@@ -62,6 +63,8 @@ function isDatabaseConfigured(): boolean {
database: process.env.DB_NAME, database: process.env.DB_NAME,
entities: [__dirname + '/**/*.entity{.ts,.js}'], entities: [__dirname + '/**/*.entity{.ts,.js}'],
synchronize: false, synchronize: false,
// 字符集配置 - 支持中文和emoji
charset: 'utf8mb4',
// 添加连接超时和重试配置 // 添加连接超时和重试配置
connectTimeout: 10000, connectTimeout: 10000,
retryAttempts: 3, retryAttempts: 3,
@@ -70,6 +73,8 @@ function isDatabaseConfigured(): boolean {
] : []), ] : []),
// 根据数据库配置选择用户模块模式 // 根据数据库配置选择用户模块模式
isDatabaseConfigured() ? UsersModule.forDatabase() : UsersModule.forMemory(), isDatabaseConfigured() ? UsersModule.forDatabase() : UsersModule.forMemory(),
// Zulip账号关联模块 - 全局单例,其他模块无需重复导入
ZulipAccountsModule.forRoot(),
LoginCoreModule, LoginCoreModule,
AuthGatewayModule, // 认证网关模块 AuthGatewayModule, // 认证网关模块
ChatGatewayModule, // 聊天网关模块 ChatGatewayModule, // 聊天网关模块

View File

@@ -27,7 +27,6 @@ import { AdminCoreModule } from '../../core/admin_core/admin_core.module';
import { LoggerModule } from '../../core/utils/logger/logger.module'; import { LoggerModule } from '../../core/utils/logger/logger.module';
import { UsersModule } from '../../core/db/users/users.module'; import { UsersModule } from '../../core/db/users/users.module';
import { UserProfilesModule } from '../../core/db/user_profiles/user_profiles.module'; import { UserProfilesModule } from '../../core/db/user_profiles/user_profiles.module';
import { ZulipAccountsModule } from '../../core/db/zulip_accounts/zulip_accounts.module';
import { AdminController } from './admin.controller'; import { AdminController } from './admin.controller';
import { AdminService } from './admin.service'; import { AdminService } from './admin.service';
import { AdminDatabaseController } from './admin_database.controller'; import { AdminDatabaseController } from './admin_database.controller';
@@ -55,8 +54,7 @@ function isDatabaseConfigured(): boolean {
UsersModule, UsersModule,
// 根据数据库配置选择UserProfiles模块模式 // 根据数据库配置选择UserProfiles模块模式
isDatabaseConfigured() ? UserProfilesModule.forDatabase() : UserProfilesModule.forMemory(), isDatabaseConfigured() ? UserProfilesModule.forDatabase() : UserProfilesModule.forMemory(),
// 根据数据库配置选择ZulipAccounts模块模式 // 注意:ZulipAccountsModule 是全局模块,已在 AppModule 中导入,无需重复导入
isDatabaseConfigured() ? ZulipAccountsModule.forDatabase() : ZulipAccountsModule.forMemory(),
// 注册AdminOperationLog实体 // 注册AdminOperationLog实体
TypeOrmModule.forFeature([AdminOperationLog]) TypeOrmModule.forFeature([AdminOperationLog])
], ],

View File

@@ -36,7 +36,6 @@ import { LoginService } from './login.service';
import { RegisterService } from './register.service'; import { RegisterService } from './register.service';
import { LoginCoreModule } from '../../core/login_core/login_core.module'; import { LoginCoreModule } from '../../core/login_core/login_core.module';
import { ZulipCoreModule } from '../../core/zulip_core/zulip_core.module'; import { ZulipCoreModule } from '../../core/zulip_core/zulip_core.module';
import { ZulipAccountsModule } from '../../core/db/zulip_accounts/zulip_accounts.module';
import { UsersModule } from '../../core/db/users/users.module'; import { UsersModule } from '../../core/db/users/users.module';
@Module({ @Module({
@@ -44,7 +43,7 @@ import { UsersModule } from '../../core/db/users/users.module';
// 导入核心层模块 // 导入核心层模块
LoginCoreModule, LoginCoreModule,
ZulipCoreModule, ZulipCoreModule,
ZulipAccountsModule.forRoot(), // 注意:ZulipAccountsModule 是全局模块,已在 AppModule 中导入,无需重复导入
UsersModule, UsersModule,
], ],
providers: [ providers: [

View File

@@ -36,7 +36,6 @@ import { ZulipEventProcessorService } from './services/zulip_event_processor.ser
import { ZulipAccountsBusinessService } from './services/zulip_accounts_business.service'; import { ZulipAccountsBusinessService } from './services/zulip_accounts_business.service';
// 依赖模块 // 依赖模块
import { ZulipCoreModule } from '../../core/zulip_core/zulip_core.module'; import { ZulipCoreModule } from '../../core/zulip_core/zulip_core.module';
import { ZulipAccountsModule } from '../../core/db/zulip_accounts/zulip_accounts.module';
import { RedisModule } from '../../core/redis/redis.module'; import { RedisModule } from '../../core/redis/redis.module';
import { LoggerModule } from '../../core/utils/logger/logger.module'; import { LoggerModule } from '../../core/utils/logger/logger.module';
import { LoginCoreModule } from '../../core/login_core/login_core.module'; import { LoginCoreModule } from '../../core/login_core/login_core.module';
@@ -50,8 +49,7 @@ import { ChatModule } from '../chat/chat.module';
CacheModule.register(), CacheModule.register(),
// Zulip核心服务模块 // Zulip核心服务模块
ZulipCoreModule, ZulipCoreModule,
// Zulip账号关联模块 // 注意:ZulipAccountsModule 是全局模块,已在 AppModule 中导入,无需重复导入
ZulipAccountsModule.forRoot(),
// Redis模块 // Redis模块
RedisModule, RedisModule,
// 日志模块 // 日志模块