فهرست منبع

📝 docs(goods-module): update task documentation for route file renaming

- rename goods.ts route to admin-goods-categories.ts in Task 4
- rename random.ts route to public-goods-random.ts in Task 4.1
- rename user-routes.ts to user-goods-routes.ts in Task 5
- rename admin-routes.ts to admin-goods-routes.ts in Task 5
- update test file names to match new route file structure
- add test references to supplier-module integration tests
- update key test scenarios with specific references to supplier-module test implementations
yourname 1 ماه پیش
والد
کامیت
46ac32e07f
1فایلهای تغییر یافته به همراه46 افزوده شده و 27 حذف شده
  1. 46 27
      docs/stories/005.010.goods-module.story.md

+ 46 - 27
docs/stories/005.010.goods-module.story.md

@@ -45,15 +45,14 @@ Draft
   - [x] 更新服务依赖注入配置
 
 - [x] Task 4: 创建商品路由 (AC: 3, 4)
-  - [x] 创建商品管理路由 packages/goods-module/src/routes/goods.ts
-  - [x] 创建商品分类管理路由 packages/goods-module/src/routes/goods-categories.ts
+  - [x] 创建商品分类管理路由 packages/goods-module/src/routes/admin-goods-categories.ts
   - [x] 集成认证中间件
   - [x] 配置用户追踪字段
   - [x] 配置关联关系(分类、供应商、商户、文件) [Source: packages/server/src/modules/goods/goods.entity.ts#L104-L114]
 
 - [x] Task 4.1: 创建随机商品功能 (AC: 3, 4)
   - [x] 迁移随机商品查询Schema packages/goods-module/src/schemas/random.schema.ts
-  - [x] 创建随机商品路由 packages/goods-module/src/routes/random.ts
+  - [x] 创建随机商品路由 packages/goods-module/src/routes/public-goods-random.ts
   - [x] 实现随机商品查询逻辑(支持分类过滤和图片包含选项)
   - [x] 配置随机排序和状态过滤
   - [x] 验证关联数据加载(图片、分类、供应商、商户等) [Source: packages/server/src/modules/goods/goods.entity.ts#L104-L114]
@@ -61,17 +60,26 @@ Draft
 - [x] Task 5: 创建用户权限API路由文件 (AC: 3, 4)
   - [x] 创建用户专用schema packages/goods-module/src/schemas/user-goods.schema.ts
   - [x] 创建管理员专用schema packages/goods-module/src/schemas/admin-goods.schema.ts
-  - [x] 创建用户路由 packages/goods-module/src/routes/user-routes.ts
-  - [x] 创建管理员路由 packages/goods-module/src/routes/admin-routes.ts
+  - [x] 创建用户路由 packages/goods-module/src/routes/user-goods-routes.ts
+  - [x] 创建管理员路由 packages/goods-module/src/routes/admin-goods-routes.ts
   - [x] 配置数据权限控制,使用 shared-crud 的 dataPermission 配置
   - [ ] 验证用户路由只能访问和操作授权的数据
   - [ ] 验证管理员路由可以访问所有数据
 
+- [ ] Task 6: 创建公开商品路由 (AC: 3, 4)
+  - [ ] 创建公开商品schema packages/goods-module/src/schemas/public-goods.schema.ts
+  - [ ] 创建公开商品路由 packages/goods-module/src/routes/public-goods-routes.ts
+  - [ ] 配置只读权限,仅支持查询操作
+  - [ ] 配置状态过滤,只返回可用状态的商品
+  - [ ] 配置关联关系加载(分类、图片等)
+  - [ ] 验证公开路由无需认证即可访问
+
 - [ ] Task 7: 创建测试套件 (AC: 7)
-  - [ ] 创建商品分类路由集成测试 packages/goods-module/tests/integration/goods-categories.integration.test.ts
-  - [ ] 创建随机商品路由集成测试 packages/goods-module/tests/integration/random.integration.test.ts
-  - [ ] 创建用户路由集成测试 packages/goods-module/tests/integration/user-routes.integration.test.ts
-  - [ ] 创建管理员路由集成测试 packages/goods-module/tests/integration/admin-routes.integration.test.ts
+  - [ ] 创建商品分类路由集成测试 packages/goods-module/tests/integration/admin-goods-categories.integration.test.ts [参考: packages/supplier-module/tests/integration/admin-routes.integration.test.ts]
+  - [ ] 创建随机商品路由集成测试 packages/goods-module/tests/integration/public-goods-random.integration.test.ts
+  - [ ] 创建用户路由集成测试 packages/goods-module/tests/integration/user-goods-routes.integration.test.ts [参考: packages/supplier-module/tests/integration/user-routes.integration.test.ts]
+  - [ ] 创建管理员路由集成测试 packages/goods-module/tests/integration/admin-goods-routes.integration.test.ts [参考: packages/supplier-module/tests/integration/admin-routes.integration.test.ts]
+  - [ ] 创建公开商品路由集成测试 packages/goods-module/tests/integration/public-goods-routes.integration.test.ts
   - [ ] 配置测试数据库连接,使用 shared-test-util
   - [ ] 添加关联关系测试场景(分类、供应商、商户、文件) [Source: packages/server/src/modules/goods/goods.entity.ts#L104-L114]
   - [ ] 测试商品状态管理逻辑
@@ -162,10 +170,14 @@ Draft
 - **shared-test-util**: 测试基础设施包,提供统一的测试工具 [Source: packages/shared-test-util/package.json#L1-L16]
 
 ### 当前用户权限API路由设计
-- **用户路由**: `packages/goods-module/src/routes/user-routes.ts` - 仅限当前用户使用 [Source: docs/stories/006.001.shared-crud-data-permission.story.md#L21-L50]
-- **管理员路由**: `packages/goods-module/src/routes/admin-routes.ts` - 管理员使用的完整权限路由 [Source: docs/stories/006.001.shared-crud-data-permission.story.md#L21-L50]
+- **用户路由**: `packages/goods-module/src/routes/user-goods-routes.ts` - 仅限当前用户使用 [Source: docs/stories/006.001.shared-crud-data-permission.story.md#L21-L50]
+- **管理员路由**: `packages/goods-module/src/routes/admin-goods-routes.ts` - 管理员使用的完整权限路由 [Source: docs/stories/006.001.shared-crud-data-permission.story.md#L21-L50]
+- **公开商品路由**: `packages/goods-module/src/routes/public-goods-routes.ts` - 公开只读商品查询路由
+- **商品分类路由**: `packages/goods-module/src/routes/admin-goods-categories.ts` - 商品分类管理路由
+- **随机商品路由**: `packages/goods-module/src/routes/public-goods-random.ts` - 公开随机商品查询路由
 - **用户专用Schema**: `packages/goods-module/src/schemas/user-goods.schema.ts` - 移除请求schema中的用户权限相关字段,自动使用当前登录用户权限(响应schema保持完整字段)
 - **管理员专用Schema**: `packages/goods-module/src/schemas/admin-goods.schema.ts` - 保留完整权限字段,允许管理员指定权限
+- **公开商品Schema**: `packages/goods-module/src/schemas/public-goods.schema.ts` - 公开只读商品查询schema
 - **数据权限配置**: 使用 shared-crud 的 `dataPermission` 配置 [Source: docs/stories/006.001.shared-crud-data-permission.story.md#L22-L25]
 - **权限验证**: 查询、创建、更新、删除操作都会验证用户权限 [Source: docs/stories/006.001.shared-crud-data-permission.story.md#L26-L41]
 
@@ -186,25 +198,31 @@ Draft
 - **覆盖率目标**: 单元测试 ≥ 80%,集成测试 ≥ 60% [Source: architecture/testing-strategy.md#L166-L171]
 - **测试数据库**: 使用专用测试数据库,事务回滚 [Source: architecture/testing-strategy.md#L200-L202]
 - **测试模式**: 遵循测试金字塔策略 [Source: architecture/testing-strategy.md#L33-L64]
+- **测试参考**: 参考供应商模块的集成测试模式 [Source: packages/supplier-module/tests/integration/admin-routes.integration.test.ts]
 
 ### 关键测试场景
-- 商品CRUD操作
+- 商品CRUD操作 [参考: packages/supplier-module/tests/integration/admin-routes.integration.test.ts#L53-L283]
 - 商品分类CRUD操作
 - 随机商品列表查询
-- 商品状态管理
+- 商品状态管理 [参考: packages/supplier-module/tests/integration/admin-routes.integration.test.ts#L498-L539]
 - 商品库存管理
 - 商品分类树形结构
-- 认证和权限验证
+- 认证和权限验证 [参考: packages/supplier-module/tests/integration/admin-routes.integration.test.ts#L73-L78]
 - 图片文件关联验证
-- **用户路由权限测试**:
+- **公开商品路由测试**:
+  - 验证公开路由无需认证即可访问
+  - 验证只返回可用状态的商品
+  - 验证只支持查询操作,不支持创建、更新、删除
+  - 验证关联关系正确加载(分类、图片等)
+- **用户路由权限测试**: [参考: packages/supplier-module/tests/integration/user-routes.integration.test.ts#L455-L543]
   - 验证用户只能访问和操作授权的数据
-  - 验证用户创建商品时自动使用当前用户权限
-  - 验证用户无法访问其他权限的数据
-- **管理员路由权限测试**:
-  - 验证管理员可以访问所有数据
-  - 验证管理员可以为其他权限创建商品
-  - 验证管理员可以更新任何商品
-  - 验证管理员可以删除任何商品
+  - 验证用户创建商品时自动使用当前用户权限 [参考: packages/supplier-module/tests/integration/user-routes.integration.test.ts#L148-L179]
+  - 验证用户无法访问其他权限的数据 [参考: packages/supplier-module/tests/integration/user-routes.integration.test.ts#L246-L277]
+- **管理员路由权限测试**: [参考: packages/supplier-module/tests/integration/admin-routes.integration.test.ts#L285-L496]
+  - 验证管理员可以访问所有数据 [参考: packages/supplier-module/tests/integration/admin-routes.integration.test.ts#L315-L367]
+  - 验证管理员可以为其他权限创建商品 [参考: packages/supplier-module/tests/integration/admin-routes.integration.test.ts#L286-L313]
+  - 验证管理员可以更新任何商品 [参考: packages/supplier-module/tests/integration/admin-routes.integration.test.ts#L369-L413]
+  - 验证管理员可以删除任何商品 [参考: packages/supplier-module/tests/integration/admin-routes.integration.test.ts#L415-L451]
 - **数据权限配置测试**: 验证 dataPermission 配置正确工作
 
 ## Change Log
@@ -246,12 +264,13 @@ Draft
 - packages/goods-module/src/schemas/random.schema.ts
 - packages/goods-module/src/schemas/user-goods.schema.ts
 - packages/goods-module/src/schemas/admin-goods.schema.ts
+- packages/goods-module/src/schemas/public-goods.schema.ts
 - packages/goods-module/src/schemas/index.ts
-- packages/goods-module/src/routes/goods.ts
-- packages/goods-module/src/routes/goods-categories.ts
-- packages/goods-module/src/routes/random.ts
-- packages/goods-module/src/routes/user-routes.ts
-- packages/goods-module/src/routes/admin-routes.ts
+- packages/goods-module/src/routes/admin-goods-categories.ts
+- packages/goods-module/src/routes/public-goods-random.ts
+- packages/goods-module/src/routes/user-goods-routes.ts
+- packages/goods-module/src/routes/admin-goods-routes.ts
+- packages/goods-module/src/routes/public-goods-routes.ts
 - packages/goods-module/src/routes/index.ts
 - packages/goods-module/src/types/goods.types.ts
 - packages/goods-module/src/types/index.ts