|
|
@@ -48,47 +48,88 @@ Draft
|
|
|
- [ ] 更新服务依赖注入配置
|
|
|
- [ ] 确保订单创建的事务逻辑完整迁移
|
|
|
|
|
|
-- [ ] Task 4: 创建订单路由 (AC: 3, 4)
|
|
|
- - [ ] 创建订单管理路由 packages/orders-module/src/routes/index.ts
|
|
|
- - [ ] 迁移订单的完整CRUD路由,使用 shared-crud 基础设施
|
|
|
- - [ ] 迁移订单商品路由
|
|
|
- - [ ] 迁移订单退款路由
|
|
|
- - [ ] 迁移订单创建专用路由
|
|
|
- - [ ] 集成认证中间件
|
|
|
+- [ ] Task 4: 创建管理员路由 (AC: 3, 4)
|
|
|
+ - [ ] 创建管理员路由目录 `packages/orders-module/src/routes/admin/`
|
|
|
+ - [ ] 创建管理员订单路由 `packages/orders-module/src/routes/admin/orders.ts`
|
|
|
+ - **迁移源**: `packages/server/src/api/orders/index.ts`
|
|
|
+ - **配置**: 无数据权限限制,完整CRUD功能
|
|
|
+ - **集成**: auth-module 认证中间件
|
|
|
+ - [ ] 创建管理员订单商品路由 `packages/orders-module/src/routes/admin/order-items.ts`
|
|
|
+ - **迁移源**: `packages/server/src/api/orders-goods/index.ts`
|
|
|
+ - **配置**: 无数据权限限制,完整CRUD功能
|
|
|
+ - **集成**: auth-module 认证中间件
|
|
|
+ - [ ] 创建管理员退款路由 `packages/orders-module/src/routes/admin/refunds.ts`
|
|
|
+ - **迁移源**: `packages/server/src/api/orders-refund/index.ts`
|
|
|
+ - **配置**: 无数据权限限制,完整CRUD功能
|
|
|
+ - **集成**: auth-module 认证中间件
|
|
|
+
|
|
|
+- [ ] Task 5: 创建用户路由 (AC: 3, 4, 6)
|
|
|
+ - [ ] 创建用户路由目录 `packages/orders-module/src/routes/user/`
|
|
|
+ - [ ] 创建用户订单路由 `packages/orders-module/src/routes/user/orders.ts`
|
|
|
+ - **迁移源**: `packages/server/src/api/orders/index.ts`
|
|
|
+ - **配置**: 数据权限 `{ userIdField: 'userId', autoInject: true }`
|
|
|
+ - **集成**: auth-module 认证中间件
|
|
|
+ - [ ] 创建用户订单商品路由 `packages/orders-module/src/routes/user/order-items.ts`
|
|
|
+ - **迁移源**: `packages/server/src/api/orders-goods/index.ts`
|
|
|
+ - **配置**: 数据权限 `{ userIdField: 'userId', autoInject: true }`
|
|
|
+ - **集成**: auth-module 认证中间件
|
|
|
+ - [ ] 创建用户退款路由 `packages/orders-module/src/routes/user/refunds.ts`
|
|
|
+ - **迁移源**: `packages/server/src/api/orders-refund/index.ts`
|
|
|
+ - **配置**: 数据权限 `{ userIdField: 'userId', autoInject: true }`
|
|
|
+ - **集成**: auth-module 认证中间件
|
|
|
+
|
|
|
+- [ ] Task 6: 创建订单创建专用路由 (AC: 3, 4)
|
|
|
+ - [ ] 创建订单创建路由 `packages/orders-module/src/routes/create-order.ts`
|
|
|
+ - **迁移源**: `packages/server/src/api/orders/create-order.ts`
|
|
|
+ - **配置**: 自动注入当前用户ID,仅限用户使用
|
|
|
+ - **集成**: auth-module 认证中间件
|
|
|
+
|
|
|
+- [ ] Task 7: 创建统一路由导出 (AC: 3, 4, 6)
|
|
|
+ - [ ] 创建统一路由导出 `packages/orders-module/src/routes/index.ts`
|
|
|
+ - 导出管理员路由组 `/admin/*`
|
|
|
+ - 导出用户路由组 `/user/*`
|
|
|
+ - 导出订单创建路由 `/create-order`
|
|
|
- [ ] 配置用户追踪字段
|
|
|
-
|
|
|
-- [ ] Task 5: 创建当前用户权限API路由文件 (AC: 3, 4, 6)
|
|
|
- - [ ] 创建 packages/orders-module/src/schemas/user-order.schema.ts - 用户专用schema
|
|
|
- - [ ] 移除userId字段,自动使用当前登录用户权限
|
|
|
- - [ ] 创建 packages/orders-module/src/schemas/admin-order.schema.ts - 管理员专用schema
|
|
|
- - [ ] 保留userId字段,允许管理员指定用户
|
|
|
- - [ ] 创建 packages/orders-module/src/routes/user-routes.ts - 仅限当前用户使用的路由
|
|
|
- - [ ] 配置数据权限控制,使用 shared-crud 的 dataPermission 配置 [Source: docs/stories/006.001.shared-crud-data-permission.story.md#L21-L50]
|
|
|
- - [ ] 设置 userIdField: 'userId',确保用户只能操作自己的数据
|
|
|
- - [ ] 使用用户专用schema
|
|
|
- - [ ] 创建 packages/orders-module/src/routes/admin-routes.ts - 管理员使用的完整权限路由
|
|
|
- - [ ] 配置管理员路由不使用数据权限控制,保持完整CRUD功能
|
|
|
- - [ ] 使用管理员专用schema
|
|
|
- - [ ] 更新 packages/orders-module/src/routes/index.ts 导出两个路由集合
|
|
|
- - [ ] 验证用户路由只能访问和操作当前用户的数据
|
|
|
- - [ ] 验证管理员路由可以访问所有用户的数据
|
|
|
-
|
|
|
-- [ ] Task 6: 创建测试套件 (AC: 7)
|
|
|
- - [ ] 创建用户路由集成测试 packages/orders-module/tests/integration/user-routes.integration.test.ts
|
|
|
- - [ ] 测试用户路由只能访问和操作当前用户的数据
|
|
|
- - [ ] 验证用户创建订单时自动使用当前用户ID
|
|
|
- - [ ] 验证用户无法访问其他用户的数据
|
|
|
- - [ ] 创建管理员路由集成测试 packages/orders-module/tests/integration/admin-routes.integration.test.ts
|
|
|
- - [ ] 测试管理员路由可以访问所有用户的数据
|
|
|
- - [ ] 验证管理员可以为其他用户创建订单
|
|
|
- - [ ] 验证管理员可以更新和删除任何用户的订单
|
|
|
+ - [ ] 验证权限控制逻辑
|
|
|
+
|
|
|
+- [ ] Task 8: 创建测试套件 (AC: 7)
|
|
|
+ - [ ] 创建用户订单路由集成测试 packages/orders-module/tests/integration/user-orders.integration.test.ts
|
|
|
+ - **参考**: `packages/goods-module/tests/integration/user-goods-routes.integration.test.ts`
|
|
|
+ - 测试用户订单路由只能访问和操作当前用户的数据
|
|
|
+ - 验证用户创建订单时自动使用当前用户ID
|
|
|
+ - 验证用户无法访问其他用户的订单
|
|
|
+ - [ ] 创建用户订单商品路由集成测试 packages/orders-module/tests/integration/user-order-items.integration.test.ts
|
|
|
+ - **参考**: `packages/goods-module/tests/integration/user-goods-routes.integration.test.ts`
|
|
|
+ - 测试用户只能查看自己订单的商品
|
|
|
+ - 验证用户无法访问其他用户订单的商品
|
|
|
+ - [ ] 创建用户退款路由集成测试 packages/orders-module/tests/integration/user-refunds.integration.test.ts
|
|
|
+ - **参考**: `packages/goods-module/tests/integration/user-goods-routes.integration.test.ts`
|
|
|
+ - 测试用户只能申请自己订单的退款
|
|
|
+ - 验证用户无法访问其他用户的退款记录
|
|
|
+ - [ ] 创建管理员订单路由集成测试 packages/orders-module/tests/integration/admin-orders.integration.test.ts
|
|
|
+ - **参考**: `packages/goods-module/tests/integration/admin-goods-routes.integration.test.ts`
|
|
|
+ - 测试管理员可以访问所有用户的订单数据
|
|
|
+ - 验证管理员可以为其他用户创建订单
|
|
|
+ - 验证管理员可以更新和删除任何用户的订单
|
|
|
+ - [ ] 创建管理员订单商品路由集成测试 packages/orders-module/tests/integration/admin-order-items.integration.test.ts
|
|
|
+ - **参考**: `packages/goods-module/tests/integration/admin-goods-routes.integration.test.ts`
|
|
|
+ - 测试管理员可以访问所有订单的商品数据
|
|
|
+ - 验证管理员可以管理任何订单的商品
|
|
|
+ - [ ] 创建管理员退款路由集成测试 packages/orders-module/tests/integration/admin-refunds.integration.test.ts
|
|
|
+ - **参考**: `packages/goods-module/tests/integration/admin-goods-routes.integration.test.ts`
|
|
|
+ - 测试管理员可以访问所有用户的退款记录
|
|
|
+ - 验证管理员可以处理任何用户的退款申请
|
|
|
+ - [ ] 创建订单创建路由集成测试 packages/orders-module/tests/integration/create-order.integration.test.ts
|
|
|
+ - **参考**: `packages/goods-module/tests/integration/admin-goods-routes.integration.test.ts`
|
|
|
+ - 测试订单创建功能正常工作
|
|
|
+ - 验证订单创建时自动注入当前用户ID
|
|
|
+ - 测试订单创建的事务逻辑
|
|
|
- [ ] 配置测试数据库连接,使用 shared-test-util [Source: packages/shared-test-util/src/integration-test-db.ts#L1-L30]
|
|
|
- [ ] 添加订单状态管理测试场景
|
|
|
- - [ ] 测试订单创建的事务逻辑
|
|
|
- [ ] 测试库存更新功能
|
|
|
- [ ] 确保测试覆盖率满足要求
|
|
|
|
|
|
-- [ ] Task 7: 集成到现有系统 (AC: 5, 6, 8)
|
|
|
+- [ ] Task 9: 集成到现有系统 (AC: 5, 6, 8)
|
|
|
- [ ] 更新 server package 依赖,添加 @d8d/orders-module
|
|
|
- [ ] 在 server 中注册订单路由
|
|
|
- [ ] 验证与用户模块的集成
|
|
|
@@ -98,7 +139,7 @@ Draft
|
|
|
- [ ] 验证与供应商模块的集成
|
|
|
- [ ] 确保订单创建功能正常工作
|
|
|
|
|
|
-- [ ] Task 8: 验证和文档 (AC: 4, 6)
|
|
|
+- [ ] Task 10: 验证和文档 (AC: 4, 6)
|
|
|
- [ ] 运行所有测试验证功能
|
|
|
- [ ] 更新 docs/architecture/source-tree.md 文档
|
|
|
- [ ] 验证向后兼容性
|
|
|
@@ -186,11 +227,17 @@ Draft
|
|
|
- **vitest.config.ts**: 参考商户模块配置 [Source: packages/merchant-module/vitest.config.ts#L1-L21]
|
|
|
- **shared-test-util**: 测试基础设施包,提供统一的测试工具 [Source: packages/shared-test-util/package.json#L1-L16]
|
|
|
|
|
|
-### 当前用户权限API路由设计
|
|
|
-- **用户路由**: `packages/orders-module/src/routes/user-routes.ts` - 仅限当前用户使用 [Source: docs/stories/006.001.shared-crud-data-permission.story.md#L21-L50]
|
|
|
-- **管理员路由**: `packages/orders-module/src/routes/admin-routes.ts` - 管理员使用的完整权限路由 [Source: docs/stories/006.001.shared-crud-data-permission.story.md#L21-L50]
|
|
|
-- **用户专用Schema**: `packages/orders-module/src/schemas/user-order.schema.ts` - 移除请求schema中的用户权限相关字段,自动使用当前登录用户权限(响应schema保持完整字段)
|
|
|
-- **管理员专用Schema**: `packages/orders-module/src/schemas/admin-order.schema.ts` - 保留完整权限字段,允许管理员指定权限
|
|
|
+### 管理员/用户权限路由设计
|
|
|
+- **管理员路由**: `packages/orders-module/src/routes/admin/` - 管理员使用的完整权限路由
|
|
|
+ - `orders.ts` - 管理员订单管理(无数据权限限制)
|
|
|
+ - `order-items.ts` - 管理员订单商品管理(无数据权限限制)
|
|
|
+ - `refunds.ts` - 管理员退款管理(无数据权限限制)
|
|
|
+- **用户路由**: `packages/orders-module/src/routes/user/` - 仅限当前用户使用的路由
|
|
|
+ - `orders.ts` - 用户订单操作(数据权限:userIdField: 'userId')
|
|
|
+ - `order-items.ts` - 用户订单商品查看(数据权限:userIdField: 'userId')
|
|
|
+ - `refunds.ts` - 用户退款申请(数据权限:userIdField: 'userId')
|
|
|
+- **订单创建路由**: `packages/orders-module/src/routes/create-order.ts` - 专用订单创建路由
|
|
|
+- **认证集成**: 使用 auth-module 认证中间件 [Source: packages/auth-module/src/middleware/auth.middleware.ts]
|
|
|
- **数据权限配置**: 使用 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]
|
|
|
|
|
|
@@ -220,15 +267,30 @@ Draft
|
|
|
- 订单创建的事务逻辑
|
|
|
- 库存更新功能
|
|
|
- 认证和权限验证
|
|
|
-- **用户路由权限测试**:
|
|
|
- - 验证用户只能访问和操作授权的数据
|
|
|
- - 验证用户创建订单时自动使用当前用户权限
|
|
|
- - 验证用户无法访问其他权限的数据
|
|
|
-- **管理员路由权限测试**:
|
|
|
- - 验证管理员可以访问所有数据
|
|
|
- - 验证管理员可以为其他权限创建订单
|
|
|
- - 验证管理员可以更新任何订单
|
|
|
- - 验证管理员可以删除任何订单
|
|
|
+- **用户订单路由权限测试**:
|
|
|
+ - 验证用户只能访问和操作自己的订单数据
|
|
|
+ - 验证用户创建订单时自动使用当前用户ID
|
|
|
+ - 验证用户无法访问其他用户的订单
|
|
|
+- **用户订单商品路由权限测试**:
|
|
|
+ - 验证用户只能查看自己订单的商品
|
|
|
+ - 验证用户无法访问其他用户订单的商品
|
|
|
+- **用户退款路由权限测试**:
|
|
|
+ - 验证用户只能申请自己订单的退款
|
|
|
+ - 验证用户无法访问其他用户的退款记录
|
|
|
+- **管理员订单路由权限测试**:
|
|
|
+ - 验证管理员可以访问所有用户的订单数据
|
|
|
+ - 验证管理员可以为其他用户创建订单
|
|
|
+ - 验证管理员可以更新和删除任何用户的订单
|
|
|
+- **管理员订单商品路由权限测试**:
|
|
|
+ - 验证管理员可以访问所有订单的商品数据
|
|
|
+ - 验证管理员可以管理任何订单的商品
|
|
|
+- **管理员退款路由权限测试**:
|
|
|
+ - 验证管理员可以访问所有用户的退款记录
|
|
|
+ - 验证管理员可以处理任何用户的退款申请
|
|
|
+- **订单创建路由测试**:
|
|
|
+ - 验证订单创建功能正常工作
|
|
|
+ - 验证订单创建时自动注入当前用户ID
|
|
|
+ - 测试订单创建的事务逻辑
|
|
|
- **数据权限配置测试**: 验证 dataPermission 配置正确工作
|
|
|
- **订单创建事务测试**: 验证订单创建、商品明细创建、库存更新的原子性
|
|
|
|