瀏覽代碼

docs: 更新故事010.009 - 发现缺失功能,添加补充任务11-21

- 状态: Ready for Review -> In Progress
- 发现 unified-file-module 缺失大量路由功能(上传策略、分片上传、URL获取、下载、删除)
- 添加补充任务11-21来完善功能
- 更新路由设计规范,补充完整路由列表
- 更新 Change Log v1.2 和 Completion Notes

🤖 Generated with [Claude Code](https://claude.com/claude-code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
yourname 2 周之前
父節點
當前提交
ae8ca5f34f
共有 1 個文件被更改,包括 87 次插入4 次删除
  1. 87 4
      docs/stories/010.009.story.md

+ 87 - 4
docs/stories/010.009.story.md

@@ -1,7 +1,7 @@
 # Story 010.009: 创建统一文件后端模块
 
 ## Status
-Ready for Review
+In Progress
 
 ## Story
 
@@ -89,6 +89,69 @@ Ready for Review
 - [x] **任务10: 代码质量检查**
   - [x] 运行 `pnpm test` 确保所有测试通过 (8/8 通过)
 
+---
+
+## 补充任务(发现缺失功能后添加)
+
+- [ ] **任务11: 创建文件上传策略路由** (AC: 4)
+  - [ ] 创建 `src/routes/upload-policy/post.ts`,参考 `file-module` 对应文件
+  - [ ] 实现 MinIO 上传策略生成(含签名)
+  - [ ] 使用 `tenantAuthMiddleware` 中间件
+  - [ ] 定义 Schema 包含 uploadPolicy 响应结构
+
+- [ ] **任务12: 创建分片上传策略路由** (AC: 4)
+  - [ ] 创建 `src/routes/multipart-policy/post.ts`,参考 `file-module` 对应文件
+  - [ ] 实现分片上传策略生成
+  - [ ] 使用 `tenantAuthMiddleware` 中间件
+
+- [ ] **任务13: 创建分片上传完成路由** (AC: 4)
+  - [ ] 创建 `src/routes/multipart-complete/post.ts`,参考 `file-module` 对应文件
+  - [ ] 实现分片上传完成逻辑
+  - [ ] 使用 `tenantAuthMiddleware` 中间件
+
+- [ ] **任务14: 创建获取文件URL路由** (AC: 4)
+  - [ ] 创建 `src/routes/[id]/get-url.ts`,参考 `file-module` 对应文件
+  - [ ] 实现 `GET /:id/url` 端点
+  - [ ] 使用 `tenantAuthMiddleware` 中间件
+
+- [ ] **任务15: 创建文件删除路由** (AC: 4)
+  - [ ] 创建 `src/routes/[id]/delete.ts`,参考 `file-module` 对应文件
+  - [ ] 实现 `DELETE /:id` 端点
+  - [ ] 同时删除 MinIO 文件和数据库记录
+  - [ ] 使用 `tenantAuthMiddleware` 中间件
+
+- [ ] **任务16: 创建文件下载路由** (AC: 4)
+  - [ ] 创建 `src/routes/[id]/download.ts`,参考 `file-module` 对应文件
+  - [ ] 实现 `GET /:id/download` 端点(返回带 Content-Disposition 的 URL)
+  - [ ] 使用 `tenantAuthMiddleware` 中间件
+
+- [ ] **任务17: 更新路由入口文件** (AC: 4)
+  - [ ] 更新 `src/routes/index.ts`,聚合所有路由
+  - [ ] 添加 `createCrudRoutes` 生成基础 CRUD 路由
+  - [ ] 导出完整的 `unifiedFileRoutes` 路由集合
+
+- [ ] **任务18: 创建测试工具文件**
+  - [ ] 创建 `tests/utils/integration-test-utils.ts`,参考 `file-module` 对应文件
+  - [ ] 实现 `IntegrationTestAssertions` 类(expectFileToExist 等方法)
+  - [ ] 适配 `UnifiedFile` 实体
+
+- [ ] **任务19: 创建测试数据工厂**
+  - [ ] 创建 `tests/utils/integration-test-db.ts`,参考 `file-module` 对应文件
+  - [ ] 实现 `TestDataFactory` 类
+  - [ ] 适配 `UnifiedFile` 实体字段
+
+- [ ] **任务20: 补充集成测试**
+  - [ ] 为上传策略路由添加集成测试
+  - [ ] 为分片上传路由添加集成测试
+  - [ ] 为获取URL路由添加集成测试
+  - [ ] 为下载路由添加集成测试
+  - [ ] 为删除路由添加集成测试
+
+- [ ] **任务21: 完整回归测试**
+  - [ ] 运行 `pnpm test` 确保所有测试通过
+  - [ ] 运行 `pnpm typecheck` 确保无类型错误
+  - [ ] 更新 File List 列出所有新增文件
+
 ## Dev Notes
 
 ### 项目结构信息
@@ -138,12 +201,23 @@ packages/unified-file-module/
 
 ### 路由设计规范
 
-**管理员接口** (新增):
+**管理员接口** (完整列表):
 ```
-POST   /api/v1/admin/unified-files/upload       # 上传文件
+# 文件上传策略
+POST   /api/v1/admin/unified-files/upload-policy        # 生成MinIO上传策略
+POST   /api/v1/admin/unified-files/multipart-policy    # 生成分片上传策略
+POST   /api/v1/admin/unified-files/multipart-complete  # 完成分片上传
+
+# 文件操作(通过createCrudRoutes自动生成)
 GET    /api/v1/admin/unified-files              # 文件列表
+POST   /api/v1/admin/unified-files              # 创建文件记录
 GET    /api/v1/admin/unified-files/:id          # 获取文件详情
-DELETE /api/v1/admin/unified-files/:id          # 删除文件
+PUT    /api/v1/admin/unified-files/:id          # 更新文件记录
+
+# 文件专用操作
+GET    /api/v1/admin/unified-files/:id/url      # 获取文件访问URL
+GET    /api/v1/admin/unified-files/:id/download # 获取文件下载URL
+DELETE /api/v1/admin/unified-files/:id          # 删除文件(MinIO+DB)
 ```
 
 ### 中间件使用规范
@@ -210,6 +284,7 @@ pnpm typecheck
 |------|---------|-------------|--------|
 | 2026-01-03 | 1.0 | 初始故事创建 | James (Claude Code) |
 | 2026-01-04 | 1.1 | 修复阶段 - 修复vitest配置、Entity、Service、Schema、测试 | James (Claude Code) |
+| 2026-01-04 | 1.2 | **发现缺失功能** - 添加补充任务11-21,补充完整的路由功能(上传策略、分片上传、URL获取、下载、删除)和测试工具 | James (Claude Code) |
 
 ## Dev Agent Record
 
@@ -235,6 +310,14 @@ claude-opus-4-5-20251101 (via Happy)
    - 集成测试: 6/6 通过
    - 总计: 8/8 通过
 
+4. **🚨 发现严重问题 (2026-01-04)**:
+   - 原始 `file-module` 包含完整的文件上传功能(upload-policy, multipart-policy, multipart-complete)
+   - 原始 `file-module` 包含文件URL获取和下载功能(get-url, download)
+   - 原始 `file-module` 包含独立的删除路由(delete.ts)
+   - **unified-file-module 缺失上述所有路由功能!**
+   - 缺失测试工具文件:`integration-test-utils.ts`, `integration-test-db.ts`
+   - 已添加补充任务11-21来完善功能
+
 ### File List
 **新增文件**:
 - `package.json` - 包配置,依赖 @d8d/shared-crud, @d8d/shared-utils, @d8d/tenant-module-mt