|
|
@@ -83,28 +83,50 @@ Draft
|
|
|
- [ ] 添加认证中间件集成
|
|
|
- **参考**: `packages/auth-module/src/middleware/auth.middleware.ts`
|
|
|
- [ ] 配置OpenAPI文档和参数验证
|
|
|
+ - [ ] 聚合自定义路由和CRUD路由
|
|
|
+ - **参考文件**: `packages/core-module/system-config-module/src/routes/system-config.routes.ts`
|
|
|
+ - **聚合模式**: 使用`new OpenAPIHono().route()`聚合多个路由实例
|
|
|
+ - **步骤**:
|
|
|
+ 1. 创建`channel-custom.routes.ts`(自定义业务逻辑路由)
|
|
|
+ 2. 创建`channel-crud.routes.ts`(使用`createCrudRoutes`生成的CRUD路由)
|
|
|
+ 3. 在主路由文件中聚合两者:`.route('/', customRoutes).route('/', crudRoutes)`
|
|
|
- [ ] 实现自定义路由处理(适配业务逻辑) (AC: 4.1)
|
|
|
+ - [ ] 创建自定义路由文件`src/routes/channel-custom.routes.ts`
|
|
|
+ - **参考文件**: `packages/core-module/user-module/src/routes/custom.routes.ts`
|
|
|
+ - **参考文件**: `packages/core-module/system-config-module/src/routes/custom/create-system-config.ts`
|
|
|
+ - **架构模式**: 使用`createRoute`定义路由,`OpenAPIHono`实例处理请求
|
|
|
- [ ] 自定义`POST /createChannel`路由:处理布尔返回值
|
|
|
- **返回格式**: 成功返回`{ success: true }`,失败返回`{ success: false, message: "渠道名称已存在" }`
|
|
|
- **源逻辑**: `channel.controller.ts:11-14`,`channel.service.ts:14-37`
|
|
|
+ - **参考模式**: `user-module/custom.routes.ts:11-42`中的`createUserRoute`
|
|
|
- [ ] 自定义`POST /deleteChannel`路由:处理布尔返回值
|
|
|
- **返回格式**: 成功返回`{ success: true }`,失败返回`{ success: false }`
|
|
|
- **源逻辑**: `channel.controller.ts:16-19`,`channel.service.ts:39-42`
|
|
|
+ - **参考模式**: `user-module/custom.routes.ts:89-118`中的`deleteUserRoute`
|
|
|
- [ ] 自定义`POST /updateChannel`路由:处理布尔返回值
|
|
|
- **返回格式**: 成功返回`{ success: true }`,失败返回`{ success: false, message: "渠道不存在或名称重复" }`
|
|
|
- **源逻辑**: `channel.controller.ts:21-24`,`channel.service.ts:69-93`
|
|
|
+ - **参考模式**: `user-module/custom.routes.ts:44-87`中的`updateUserRoute`
|
|
|
- [ ] 自定义`GET /getAllChannels`路由:处理分页参数和返回格式
|
|
|
- **参数**: `skip`, `take`查询参数
|
|
|
- **返回格式**: `{ data: Channel[], total: number }`
|
|
|
- **源逻辑**: `channel.controller.ts:26-29`,`channel.service.ts:44-51`
|
|
|
+ - **参考模式**: 自定义分页查询路由,参考`system-config-module`中的查询模式
|
|
|
- [ ] 自定义`GET /searchChannels`路由:处理搜索功能
|
|
|
- **参数**: `name`(搜索关键词),`skip`, `take`(分页参数)
|
|
|
- **返回格式**: `{ data: Channel[], total: number }`
|
|
|
- **源逻辑**: `channel.controller.ts:31-34`,`channel.service.ts:53-63`
|
|
|
+ - **参考模式**: 自定义搜索路由,参考`shared-crud`中的搜索参数处理
|
|
|
- [ ] 自定义`GET /getChannel/:id`路由:处理单个渠道查询
|
|
|
- **参数**: `id`路径参数
|
|
|
- **返回格式**: `Channel`对象或`null`
|
|
|
- **源逻辑**: `channel.controller.ts:36-39`,`channel.service.ts:65-67`
|
|
|
+ - **参考模式**: `user-module/custom.routes.ts`中的参数验证和错误处理
|
|
|
+ - [ ] 创建CRUD路由文件`src/routes/channel-crud.routes.ts`
|
|
|
+ - **参考文件**: `packages/advertisements-module/src/routes/advertisements.ts`
|
|
|
+ - **架构**: 使用`createCrudRoutes`生成标准CRUD路由
|
|
|
+ - **配置**: 配置`entity`, `createSchema`, `updateSchema`, `getSchema`, `listSchema`, `searchFields`等参数
|
|
|
+ - **注意**: 设置`readOnly: true`,因为创建、更新、删除操作通过自定义路由处理
|
|
|
- [ ] 完成验证系统转换:从class-validator DTO转换为Zod Schema (AC: 5)
|
|
|
- [ ] 分析源DTO`allin_system-master/server/src/channel_info/channel.dto.ts`
|
|
|
- **源文件**: `allin_system-master/server/src/channel_info/channel.dto.ts`
|
|
|
@@ -230,8 +252,16 @@ Draft
|
|
|
- **参考文件**: `packages/advertisements-module/src/entities/advertisement.entity.ts`
|
|
|
- **服务文件**: `src/services/channel.service.ts`
|
|
|
- **参考文件**: `packages/advertisements-module/src/services/advertisement.service.ts`
|
|
|
- - **路由文件**: `src/routes/channel.routes.ts`
|
|
|
+ - **主路由文件**: `src/routes/channel.routes.ts`
|
|
|
+ - **参考文件**: `packages/core-module/system-config-module/src/routes/system-config.routes.ts`
|
|
|
+ - **功能**: 聚合自定义路由和CRUD路由
|
|
|
+ - **自定义路由文件**: `src/routes/channel-custom.routes.ts`
|
|
|
+ - **参考文件**: `packages/core-module/user-module/src/routes/custom.routes.ts`
|
|
|
+ - **参考文件**: `packages/core-module/system-config-module/src/routes/custom/create-system-config.ts`
|
|
|
+ - **功能**: 处理自定义业务逻辑(布尔返回值、分页参数、搜索功能)
|
|
|
+ - **CRUD路由文件**: `src/routes/channel-crud.routes.ts`
|
|
|
- **参考文件**: `packages/advertisements-module/src/routes/advertisements.ts`
|
|
|
+ - **功能**: 使用`createCrudRoutes`生成标准CRUD路由,设置`readOnly: true`
|
|
|
- **Schema文件**: `src/schemas/channel.schema.ts`
|
|
|
- **参考文件**: `packages/advertisements-module/src/schemas/advertisement.schema.ts`
|
|
|
- **测试文件**: `tests/integration/channel.integration.test.ts`
|