Files
whale-town-end/src/business/zulip/zulip.module.ts
moyin d92a078fc7 refactor:将 ZulipAccountsModule 改为全局单例模块
- 在 AppModule 中统一导入 ZulipAccountsModule.forRoot()
- 移除 admin.module、auth.module、zulip.module 中的重复导入
- 添加数据库 charset: utf8mb4 配置,支持中文和 emoji
2026-01-15 14:58:28 +08:00

81 lines
3.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* Zulip集成业务模块
*
* 功能描述:
* - 提供Zulip账号关联管理业务逻辑
* - 提供Zulip事件处理业务逻辑
* - 通过 SESSION_QUERY_SERVICE 接口与 ChatModule 解耦
*
* 架构说明:
* - Business层专注业务逻辑处理不包含HTTP协议处理
* - Controller已迁移到Gateway层src/gateway/zulip/
* - 通过 Core 层接口解耦,不直接依赖其他模块的具体实现
*
* 迁移记录:
* - 2026-01-14: 架构优化 - 将所有Controller迁移到Gateway层符合四层架构规范 (修改者: moyin)
* - 2026-01-14: 架构优化 - 移除冗余的DynamicConfigManagerService声明该服务已由ZulipCoreModule提供 (修改者: moyin)
* - 2026-01-14: 聊天功能迁移到新的四层架构模块
* - CleanWebSocketGateway -> gateway/chat/chat.gateway.ts
* - ZulipService(聊天部分) -> business/chat/chat.service.ts
* - SessionManagerService -> business/chat/services/chat_session.service.ts
* - MessageFilterService -> business/chat/services/chat_filter.service.ts
* - SessionCleanupService -> business/chat/services/chat_cleanup.service.ts
* - ChatController -> gateway/chat/chat.controller.ts
* - 2026-01-14: 通过 Core 层接口解耦,不再直接依赖 ChatModule 的具体实现
*
* @author angjustinl
* @version 3.0.0
* @since 2026-01-06
* @lastModified 2026-01-14
*/
import { Module } from '@nestjs/common';
import { CacheModule } from '@nestjs/cache-manager';
// 业务服务
import { ZulipEventProcessorService } from './services/zulip_event_processor.service';
import { ZulipAccountsBusinessService } from './services/zulip_accounts_business.service';
// 依赖模块
import { ZulipCoreModule } from '../../core/zulip_core/zulip_core.module';
import { RedisModule } from '../../core/redis/redis.module';
import { LoggerModule } from '../../core/utils/logger/logger.module';
import { LoginCoreModule } from '../../core/login_core/login_core.module';
import { AuthModule } from '../auth/auth.module';
// 通过接口依赖 ChatModule解耦
import { ChatModule } from '../chat/chat.module';
@Module({
imports: [
// 缓存模块
CacheModule.register(),
// Zulip核心服务模块
ZulipCoreModule,
// 注意ZulipAccountsModule 是全局模块,已在 AppModule 中导入,无需重复导入
// Redis模块
RedisModule,
// 日志模块
LoggerModule,
// 登录模块
LoginCoreModule,
// 认证模块
AuthModule,
// 聊天模块 - 通过 SESSION_QUERY_SERVICE 接口提供会话查询能力
// ZulipEventProcessorService 依赖接口而非具体实现,实现解耦
ChatModule,
],
providers: [
// Zulip事件处理服务 - 处理Zulip事件队列消息
ZulipEventProcessorService,
// Zulip账号业务服务 - 账号关联管理
ZulipAccountsBusinessService,
],
exports: [
// 导出事件处理服务
ZulipEventProcessorService,
// 导出账号业务服务
ZulipAccountsBusinessService,
// 重新导出ZulipCoreModule包含DynamicConfigManagerService
ZulipCoreModule,
],
})
export class ZulipModule {}