forked from datawhale/whale-town-end
refactor:重构业务层服务架构
- 重构共享模块,移除冗余DTO定义 - 优化Zulip服务模块,重新组织控制器结构 - 更新用户管理和认证服务 - 移除过时的登录服务测试文件
This commit is contained in:
@@ -10,9 +10,13 @@
|
|||||||
* - 属性 13: Zulip账号创建一致性
|
* - 属性 13: Zulip账号创建一致性
|
||||||
* - 验证需求: 账号创建成功率和数据一致性
|
* - 验证需求: 账号创建成功率和数据一致性
|
||||||
*
|
*
|
||||||
|
* 最近修改:
|
||||||
|
* - 2026-01-08: 文件重命名 - 修正kebab-case为snake_case命名规范 (修改者: moyin)
|
||||||
|
*
|
||||||
* @author angjustinl
|
* @author angjustinl
|
||||||
* @version 1.0.0
|
* @version 1.0.1
|
||||||
* @since 2025-01-05
|
* @since 2025-01-05
|
||||||
|
* @lastModified 2026-01-08
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { Test, TestingModule } from '@nestjs/testing';
|
import { Test, TestingModule } from '@nestjs/testing';
|
||||||
@@ -11,12 +11,13 @@
|
|||||||
* - 文档生成:提供Swagger API文档支持
|
* - 文档生成:提供Swagger API文档支持
|
||||||
*
|
*
|
||||||
* 最近修改:
|
* 最近修改:
|
||||||
|
* - 2026-01-08: 文件夹扁平化 - 从dto/子文件夹移动到上级目录 (修改者: moyin)
|
||||||
* - 2026-01-07: 代码规范优化 - 更新注释规范、修正属性命名(storage_mode->storageMode)和作者信息
|
* - 2026-01-07: 代码规范优化 - 更新注释规范、修正属性命名(storage_mode->storageMode)和作者信息
|
||||||
*
|
*
|
||||||
* @author moyin
|
* @author moyin
|
||||||
* @version 1.0.1
|
* @version 1.0.2
|
||||||
* @since 2025-12-17
|
* @since 2025-12-17
|
||||||
* @lastModified 2026-01-07
|
* @lastModified 2026-01-08
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { ApiProperty } from '@nestjs/swagger';
|
import { ApiProperty } from '@nestjs/swagger';
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
/**
|
|
||||||
* 共享 DTO 统一导出
|
|
||||||
*
|
|
||||||
* 功能描述:
|
|
||||||
* - 导出所有共享的 DTO 类
|
|
||||||
* - 提供统一的导入入口
|
|
||||||
* - 简化DTO类的导入路径
|
|
||||||
*
|
|
||||||
* 职责分离:
|
|
||||||
* - 模块导出:统一管理DTO类的导出
|
|
||||||
* - 路径简化:提供简洁的导入接口
|
|
||||||
*
|
|
||||||
* 最近修改:
|
|
||||||
* - 2026-01-07: 代码规范优化 - 更新注释规范和作者信息
|
|
||||||
*
|
|
||||||
* @author moyin
|
|
||||||
* @version 1.0.1
|
|
||||||
* @since 2025-12-24
|
|
||||||
* @lastModified 2026-01-07
|
|
||||||
*/
|
|
||||||
|
|
||||||
// 应用状态相关
|
|
||||||
export * from './app_status.dto';
|
|
||||||
|
|
||||||
// 错误响应相关
|
|
||||||
export * from './error_response.dto';
|
|
||||||
@@ -11,12 +11,13 @@
|
|||||||
* - 文档生成:提供Swagger错误响应文档
|
* - 文档生成:提供Swagger错误响应文档
|
||||||
*
|
*
|
||||||
* 最近修改:
|
* 最近修改:
|
||||||
|
* - 2026-01-08: 文件夹扁平化 - 从dto/子文件夹移动到上级目录 (修改者: moyin)
|
||||||
* - 2026-01-07: 代码规范优化 - 更新注释规范和作者信息
|
* - 2026-01-07: 代码规范优化 - 更新注释规范和作者信息
|
||||||
*
|
*
|
||||||
* @author moyin
|
* @author moyin
|
||||||
* @version 1.0.1
|
* @version 1.0.2
|
||||||
* @since 2025-12-17
|
* @since 2025-12-17
|
||||||
* @lastModified 2026-01-07
|
* @lastModified 2026-01-08
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { ApiProperty } from '@nestjs/swagger';
|
import { ApiProperty } from '@nestjs/swagger';
|
||||||
@@ -11,13 +11,17 @@
|
|||||||
* - 模块封装:隐藏内部文件结构细节
|
* - 模块封装:隐藏内部文件结构细节
|
||||||
*
|
*
|
||||||
* 最近修改:
|
* 最近修改:
|
||||||
|
* - 2026-01-08: 文件夹扁平化 - 更新导入路径,移除dto/子文件夹 (修改者: moyin)
|
||||||
* - 2026-01-07: 代码规范优化 - 更新注释规范和作者信息
|
* - 2026-01-07: 代码规范优化 - 更新注释规范和作者信息
|
||||||
*
|
*
|
||||||
* @author moyin
|
* @author moyin
|
||||||
* @version 1.0.1
|
* @version 1.0.2
|
||||||
* @since 2025-12-24
|
* @since 2025-12-24
|
||||||
* @lastModified 2026-01-07
|
* @lastModified 2026-01-08
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// DTO
|
// 应用状态相关
|
||||||
export * from './dto';
|
export * from './app_status.dto';
|
||||||
|
|
||||||
|
// 错误响应相关
|
||||||
|
export * from './error_response.dto';
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
import { Body, Controller, Get, HttpCode, HttpStatus, Param, Put, Post, UseGuards, ValidationPipe, UsePipes, Logger } from '@nestjs/common';
|
import { Body, Controller, Get, HttpCode, HttpStatus, Param, Put, Post, UseGuards, ValidationPipe, UsePipes, Logger } from '@nestjs/common';
|
||||||
import { ApiBearerAuth, ApiBody, ApiOperation, ApiParam, ApiResponse, ApiTags } from '@nestjs/swagger';
|
import { ApiBearerAuth, ApiBody, ApiOperation, ApiParam, ApiResponse, ApiTags } from '@nestjs/swagger';
|
||||||
import { AdminGuard } from '../admin/guards/admin.guard';
|
import { AdminGuard } from '../admin/admin.guard';
|
||||||
import { UserManagementService } from './user_management.service';
|
import { UserManagementService } from './user_management.service';
|
||||||
import { Throttle, ThrottlePresets } from '../../core/security_core/throttle.decorator';
|
import { Throttle, ThrottlePresets } from '../../core/security_core/throttle.decorator';
|
||||||
import { Timeout, TimeoutPresets } from '../../core/security_core/timeout.decorator';
|
import { Timeout, TimeoutPresets } from '../../core/security_core/timeout.decorator';
|
||||||
|
|||||||
@@ -40,16 +40,16 @@ import {
|
|||||||
ApiBearerAuth,
|
ApiBearerAuth,
|
||||||
ApiQuery,
|
ApiQuery,
|
||||||
} from '@nestjs/swagger';
|
} from '@nestjs/swagger';
|
||||||
import { JwtAuthGuard } from '../../auth/jwt_auth.guard';
|
import { JwtAuthGuard } from '../auth/jwt_auth.guard';
|
||||||
import { ZulipService } from '../zulip.service';
|
import { ZulipService } from './zulip.service';
|
||||||
import { ZulipWebSocketGateway } from '../zulip_websocket.gateway';
|
import { ZulipWebSocketGateway } from './zulip_websocket.gateway';
|
||||||
import {
|
import {
|
||||||
SendChatMessageDto,
|
SendChatMessageDto,
|
||||||
ChatMessageResponseDto,
|
ChatMessageResponseDto,
|
||||||
GetChatHistoryDto,
|
GetChatHistoryDto,
|
||||||
ChatHistoryResponseDto,
|
ChatHistoryResponseDto,
|
||||||
SystemStatusResponseDto,
|
SystemStatusResponseDto,
|
||||||
} from '../chat.dto';
|
} from './chat.dto';
|
||||||
|
|
||||||
@ApiTags('chat')
|
@ApiTags('chat')
|
||||||
@Controller('chat')
|
@Controller('chat')
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
|
|
||||||
import { Injectable, Logger, Inject } from '@nestjs/common';
|
import { Injectable, Logger, Inject } from '@nestjs/common';
|
||||||
import { IRedisService } from '../../../core/redis/redis.interface';
|
import { IRedisService } from '../../../core/redis/redis.interface';
|
||||||
import { IZulipConfigService } from '../../../core/zulip_core/interfaces/zulip_core.interfaces';
|
import { IZulipConfigService } from '../../../core/zulip_core/zulip_core.interfaces';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 内容过滤结果接口
|
* 内容过滤结果接口
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
import { Injectable, Logger, OnModuleInit, OnModuleDestroy, Inject } from '@nestjs/common';
|
import { Injectable, Logger, OnModuleInit, OnModuleDestroy, Inject } from '@nestjs/common';
|
||||||
import { SessionManagerService } from './session_manager.service';
|
import { SessionManagerService } from './session_manager.service';
|
||||||
import { IZulipClientPoolService } from '../../../core/zulip_core/interfaces/zulip_core.interfaces';
|
import { IZulipClientPoolService } from '../../../core/zulip_core/zulip_core.interfaces';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 清理任务配置接口
|
* 清理任务配置接口
|
||||||
|
|||||||
@@ -46,8 +46,8 @@
|
|||||||
|
|
||||||
import { Injectable, Logger, Inject } from '@nestjs/common';
|
import { Injectable, Logger, Inject } from '@nestjs/common';
|
||||||
import { IRedisService } from '../../../core/redis/redis.interface';
|
import { IRedisService } from '../../../core/redis/redis.interface';
|
||||||
import { IZulipConfigService } from '../../../core/zulip_core/interfaces/zulip_core.interfaces';
|
import { IZulipConfigService } from '../../../core/zulip_core/zulip_core.interfaces';
|
||||||
import { Internal, Constants } from '../../../core/zulip_core/interfaces/zulip.interfaces';
|
import { Internal, Constants } from '../../../core/zulip_core/zulip.interfaces';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 游戏会话接口 - 重新导出以保持向后兼容
|
* 游戏会话接口 - 重新导出以保持向后兼容
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
import { Injectable, OnModuleDestroy, Inject, forwardRef, Logger } from '@nestjs/common';
|
import { Injectable, OnModuleDestroy, Inject, forwardRef, Logger } from '@nestjs/common';
|
||||||
import { SessionManagerService } from './session_manager.service';
|
import { SessionManagerService } from './session_manager.service';
|
||||||
import { IZulipConfigService, IZulipClientPoolService } from '../../../core/zulip_core/interfaces/zulip_core.interfaces';
|
import { IZulipConfigService, IZulipClientPoolService } from '../../../core/zulip_core/zulip_core.interfaces';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Zulip消息接口
|
* Zulip消息接口
|
||||||
|
|||||||
@@ -49,9 +49,9 @@ import { SessionManagerService } from './services/session_manager.service';
|
|||||||
import { MessageFilterService } from './services/message_filter.service';
|
import { MessageFilterService } from './services/message_filter.service';
|
||||||
import { ZulipEventProcessorService } from './services/zulip_event_processor.service';
|
import { ZulipEventProcessorService } from './services/zulip_event_processor.service';
|
||||||
import { SessionCleanupService } from './services/session_cleanup.service';
|
import { SessionCleanupService } from './services/session_cleanup.service';
|
||||||
import { ChatController } from './controllers/chat.controller';
|
import { ChatController } from './chat.controller';
|
||||||
import { WebSocketDocsController } from './controllers/websocket_docs.controller';
|
import { WebSocketDocsController } from './websocket_docs.controller';
|
||||||
import { ZulipAccountsController } from './controllers/zulip_accounts.controller';
|
import { ZulipAccountsController } from './zulip_accounts.controller';
|
||||||
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 { ZulipAccountsModule } from '../../core/db/zulip_accounts/zulip_accounts.module';
|
||||||
import { RedisModule } from '../../core/redis/redis.module';
|
import { RedisModule } from '../../core/redis/redis.module';
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ import {
|
|||||||
IZulipConfigService,
|
IZulipConfigService,
|
||||||
ZulipClientInstance,
|
ZulipClientInstance,
|
||||||
SendMessageResult,
|
SendMessageResult,
|
||||||
} from '../../core/zulip_core/interfaces/zulip_core.interfaces';
|
} from '../../core/zulip_core/zulip_core.interfaces';
|
||||||
import { ApiKeySecurityService } from '../../core/zulip_core/services/api_key_security.service';
|
import { ApiKeySecurityService } from '../../core/zulip_core/services/api_key_security.service';
|
||||||
import { LoginCoreService } from '../../core/login_core/login_core.service';
|
import { LoginCoreService } from '../../core/login_core/login_core.service';
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ import {
|
|||||||
IZulipClientPoolService,
|
IZulipClientPoolService,
|
||||||
IZulipConfigService,
|
IZulipConfigService,
|
||||||
IApiKeySecurityService,
|
IApiKeySecurityService,
|
||||||
} from '../../core/zulip_core/interfaces/zulip_core.interfaces';
|
} from '../../core/zulip_core/zulip_core.interfaces';
|
||||||
import { LoginCoreService } from '../../core/login_core/login_core.service';
|
import { LoginCoreService } from '../../core/login_core/login_core.service';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -33,9 +33,9 @@ import {
|
|||||||
ApiParam,
|
ApiParam,
|
||||||
ApiQuery,
|
ApiQuery,
|
||||||
} from '@nestjs/swagger';
|
} from '@nestjs/swagger';
|
||||||
import { JwtAuthGuard } from '../../auth/jwt_auth.guard';
|
import { JwtAuthGuard } from '../auth/jwt_auth.guard';
|
||||||
import { ZulipAccountsService } from '../../../core/db/zulip_accounts/zulip_accounts.service';
|
import { ZulipAccountsService } from '../../core/db/zulip_accounts/zulip_accounts.service';
|
||||||
import { ZulipAccountsMemoryService } from '../../../core/db/zulip_accounts/zulip_accounts_memory.service';
|
import { ZulipAccountsMemoryService } from '../../core/db/zulip_accounts/zulip_accounts_memory.service';
|
||||||
import {
|
import {
|
||||||
CreateZulipAccountDto,
|
CreateZulipAccountDto,
|
||||||
UpdateZulipAccountDto,
|
UpdateZulipAccountDto,
|
||||||
@@ -47,7 +47,7 @@ import {
|
|||||||
BatchUpdateResponseDto,
|
BatchUpdateResponseDto,
|
||||||
VerifyAccountDto,
|
VerifyAccountDto,
|
||||||
VerifyAccountResponseDto,
|
VerifyAccountResponseDto,
|
||||||
} from '../../../core/db/zulip_accounts/zulip_accounts.dto';
|
} from '../../core/db/zulip_accounts/zulip_accounts.dto';
|
||||||
|
|
||||||
@ApiTags('zulip-accounts')
|
@ApiTags('zulip-accounts')
|
||||||
@Controller('zulip-accounts')
|
@Controller('zulip-accounts')
|
||||||
Reference in New Issue
Block a user