forked from datawhale/whale-town-end
范围: src/business/chat/ 涉及文件: - chat.module.ts - chat.service.ts 主要功能: - 添加ZulipAccountsModule依赖,支持查询用户Zulip账号 - 实现initializeZulipClientForUser方法,登录时自动初始化Zulip客户端 - 从数据库获取用户Zulip账号信息和API Key - 优化会话创建流程,使用已创建的Zulip客户端队列ID - 移除登出时的API Key删除逻辑,保持持久化 - 支持基于目标地图的消息发送(mapId参数) 技术改进: - 分离Zulip客户端初始化逻辑,提高代码可维护性 - 添加完整的错误处理和日志记录 - 支持用户没有Zulip账号的场景(优雅降级)
77 lines
2.4 KiB
TypeScript
77 lines
2.4 KiB
TypeScript
/**
|
||
* 聊天业务模块
|
||
*
|
||
* 功能描述:
|
||
* - 整合聊天相关的业务逻辑服务
|
||
* - 提供会话管理、消息过滤、清理等功能
|
||
* - 通过 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 {}
|