api-server/src/modules/document-import/document-import.controller.ts
WangDL 35de65e99b feat: 重构 api-server 为模块化单体架构,接入 MySQL + Redis
- 按 BACKEND-PLAN.md 将项目重构为 4 层架构:
  config/ -> common/ -> infrastructure/ -> modules/
- 15 个业务模块,遵循 Controller → Service → Repository 分层
- infrastructure: PrismaService / RedisService / QueueService / AiService / StorageService
- common: guards / interceptors / filters / pipes / decorators / dto / types / utils
- Prisma schema 含 27 张表,MySQL 8.0 服务器 db push 成功
- Redis 7 接入: 限流/任务状态/分布式锁/队列预留
- ai-analysis 模块: 每日 50 次限流 + 重复提交锁 + 异步任务状态追踪
- document-import 模块: 异步导入流程 + 进度追踪
- notifications 模块: BullMQ notification 队列预留
- /health 端点实时返回 database + redis 连接状态
- Swagger 注册 15 个 tag,67 个路由全部映射
2026-05-09 18:25:04 +08:00

23 lines
720 B
TypeScript

import { Controller, Get, Post, Param, HttpCode, HttpStatus, Body } from '@nestjs/common';
import { ApiTags, ApiOperation } from '@nestjs/swagger';
import { DocumentImportService } from './document-import.service';
@ApiTags('document-import')
@Controller('imports')
export class DocumentImportController {
constructor(private readonly service: DocumentImportService) {}
@Post()
@HttpCode(HttpStatus.CREATED)
@ApiOperation({ summary: '创建导入任务' })
async createImport(@Body() body: any) {
return this.service.createImport(body);
}
@Get(':id/status')
@ApiOperation({ summary: '查询导入状态' })
async getStatus(@Param('id') id: string) {
return this.service.getStatus(id);
}
}