Files
whale-town-end/src/business/chat/chat.module.ts
moyin cf1b37af78 feat(chat): 实现登录时自动初始化Zulip客户端
范围: src/business/chat/
涉及文件:
- chat.module.ts
- chat.service.ts

主要功能:
- 添加ZulipAccountsModule依赖,支持查询用户Zulip账号
- 实现initializeZulipClientForUser方法,登录时自动初始化Zulip客户端
- 从数据库获取用户Zulip账号信息和API Key
- 优化会话创建流程,使用已创建的Zulip客户端队列ID
- 移除登出时的API Key删除逻辑,保持持久化
- 支持基于目标地图的消息发送(mapId参数)

技术改进:
- 分离Zulip客户端初始化逻辑,提高代码可维护性
- 添加完整的错误处理和日志记录
- 支持用户没有Zulip账号的场景(优雅降级)
2026-01-19 18:29:53 +08:00

77 lines
2.4 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.
/**
* 聊天业务模块
*
* 功能描述:
* - 整合聊天相关的业务逻辑服务
* - 提供会话管理、消息过滤、清理等功能
* - 通过 SESSION_QUERY_SERVICE 接口向其他模块提供会话查询能力
*
* 架构层级Business Layer业务层
*
* 依赖关系:
* - 依赖 ZulipCoreModule核心层提供Zulip技术服务
* - 依赖 RedisModule核心层提供缓存服务
* - 依赖 LoginCoreModule核心层提供Token验证
* - 依赖 ZulipAccountsModule核心层提供Zulip账号数据访问
*
* 导出接口:
* - SESSION_QUERY_SERVICE: 会话查询接口(供其他 Business 模块使用)
*
* 最近修改:
* - 2026-01-15: 功能完善 - 添加ZulipAccountsModule依赖支持登录时初始化Zulip客户端 (修改者: AI)
* - 2026-01-14: 代码规范优化 - 完善文件头注释规范 (修改者: moyin)
*
* @author moyin
* @version 1.2.0
* @since 2026-01-14
* @lastModified 2026-01-15
*/
import { Module } from '@nestjs/common';
import { ChatService } from './chat.service';
import { ChatSessionService } from './services/chat_session.service';
import { ChatFilterService } from './services/chat_filter.service';
import { ChatCleanupService } from './services/chat_cleanup.service';
import { ZulipCoreModule } from '../../core/zulip_core/zulip_core.module';
import { RedisModule } from '../../core/redis/redis.module';
import { LoginCoreModule } from '../../core/login_core/login_core.module';
import { ZulipAccountsModule } from '../../core/db/zulip_accounts/zulip_accounts.module';
import { SESSION_QUERY_SERVICE } from '../../core/session_core/session_core.interfaces';
@Module({
imports: [
// Zulip核心服务模块
ZulipCoreModule,
// Redis缓存模块
RedisModule,
// 登录核心模块
LoginCoreModule,
// Zulip账号数据库模块
ZulipAccountsModule.forRoot(),
],
providers: [
// 主聊天服务
ChatService,
// 会话管理服务
ChatSessionService,
// 消息过滤服务
ChatFilterService,
// 会话清理服务
ChatCleanupService,
// 会话查询接口(供其他模块依赖)
{
provide: SESSION_QUERY_SERVICE,
useExisting: ChatSessionService,
},
],
exports: [
ChatService,
ChatSessionService,
ChatFilterService,
ChatCleanupService,
// 导出会话查询接口
SESSION_QUERY_SERVICE,
],
})
export class ChatModule {}