- W26: NestJS API + Next.js Web + Prisma + SQLite scaffold - W26: Lead 模型 + Crawler + 询价发布助手 (线索池 + 一键发布) - W29.x: MCP 集成 (Integration 模型 + connectMcp + publish_rfq 5 工具端到端跑通) - W30: 3 字段补充 (notes / quotationType / quotationDemand) - W31 P1: 自动填 enterpriseId / userId (Prisma companyUserId 字段 + get_app_identity tool + lead.service.ts publishArgs) - W31: detail 详情页 + admin UI 集成管理 (OpenAppListView + AuditLogListView) 关联: ~/Documents/02-平台开发/产品开发/F002-W31-交接文档.md GIT-AUDIT-REPORT-2026-06-24.md
56 lines
2.0 KiB
Markdown
56 lines
2.0 KiB
Markdown
# apps/api — NestJS 10 后端
|
||
|
||
**生成:** 2026-06-05
|
||
**分支:** main
|
||
|
||
## OVERVIEW
|
||
|
||
NestJS 10 后端,Prisma ORM + SQLite,提供 RESTful API。端口 4000。JWT 认证。
|
||
|
||
## STRUCTURE
|
||
|
||
```
|
||
api/
|
||
├── src/
|
||
│ ├── admin/ # 管理后台(租户/用户/配置/计划)
|
||
│ ├── auth/ # JWT + Passport 认证
|
||
│ ├── audit-log/ # 审计日志
|
||
│ ├── comparison/ # 比价模块
|
||
│ ├── crawler/ # 采集器调度 + execSync 调用脚本
|
||
│ ├── image/ # 三阶段生图(图库→Bing→AI)
|
||
│ ├── inquiry/ # 询价
|
||
│ ├── lead/ # 线索(核心,评分/状态流转/跟进)
|
||
│ ├── product/ # 商品
|
||
│ ├── reports/ # 报表
|
||
│ ├── rules/ # 规则中心
|
||
│ ├── users/ # 用户管理
|
||
│ ├── prisma/ # Prisma 服务封装
|
||
│ ├── common/ # 公共装饰器/过滤器
|
||
│ ├── app.module.ts # 根模块(导入所有子模块)
|
||
│ └── main.ts # 启动入口
|
||
└── prisma/
|
||
└── schema.prisma # 数据模型(~15 个模型)
|
||
```
|
||
|
||
## WHERE TO LOOK
|
||
|
||
| 任务 | 位置 | Notes |
|
||
|------|------|-------|
|
||
| 新增 API 端点 | `src/xxx/xxx.controller.ts` | ValidationPipe 全局自动转换 |
|
||
| 修改数据库模型 | `prisma/schema.prisma` | 改后必须 `npm run db:init` |
|
||
| 采集器调度 | `src/crawler/` | execSync 调用 scripts/tender-fetcher/ |
|
||
| 图片生成 | `src/image/image.service.ts` | 三阶段流水线 |
|
||
|
||
## CONVENTIONS
|
||
|
||
- Prisma 变更三步:generate → migrate → seed(`db:init` 一站式)
|
||
- 采集器脚本路径:`scripts/tender-fetcher/`
|
||
- 无测试框架
|
||
- 端口 4000,CORS 白名单 localhost:3000/3001 + direv.cloud
|
||
- 静态文件 `/uploads` → `public/uploads`
|
||
|
||
## ANTI-PATTERNS
|
||
|
||
- 不要在代码中硬编码脚本路径以外的文件路径
|
||
- 采集器 state 文件不要手动删除(中电建用 `systemId_招采公告` 作 key)
|