|
|
@@ -43,9 +43,9 @@
|
|
|
4. 人才扩展API:工作历史查询、薪资历史查询、个人征信信息查询、视频关联查询
|
|
|
5. 订单统计API:打卡数据统计、视频统计、企业维度订单查询
|
|
|
6. 数据统计API:残疾类型分布、性别分布、年龄分布、户籍分布、在职状态统计、薪资分布
|
|
|
-7. 视频管理API:视频分类管理、企业/个人维度视频查询、批量下载功能
|
|
|
-8. 系统设置API:账号信息管理、安全设置、消息通知设置
|
|
|
-9. API文档与测试:OpenAPI文档、TypeScript类型定义、单元测试
|
|
|
+7. 视频管理API:视频分类管理、企业维度视频查询(个人维度已在故事012-03实现)、批量下载功能
|
|
|
+8. 系统设置API:账号信息管理、安全设置、消息通知设置(P2 - 延期,后期优化)
|
|
|
+9. API文档与测试:OpenAPI文档、TypeScript类型定义、单元测试(冗余 - 基础设施已覆盖)
|
|
|
|
|
|
**API路径约定:**
|
|
|
所有用人方小程序的API路径统一使用 `api/v1/yongren` 前缀,与现有管理后台的API路径做区分。例如:
|
|
|
@@ -165,73 +165,75 @@
|
|
|
- [ ] 所有接口通过单元测试和集成测试
|
|
|
|
|
|
### 故事012-05:视频管理API扩展
|
|
|
-**背景:** 企业需要管理各类工作视频,现有file-module需要扩展以支持视频分类管理和批量下载。
|
|
|
+**背景:** 企业需要管理各类工作视频,视频作为订单附件存储在`order_person_asset`表中(关联`files`表)。个人维度视频查询已在故事012-03中实现(`GET /disability-person/{id}/videos`),本故事主要实现企业维度视频查询和批量下载功能。
|
|
|
+
|
|
|
+**技术说明:** 视频作为订单人员资产(`order_person_asset`表)存储,`asset_type`枚举已扩展支持:`salary_video`(工资视频)、`tax_video`(个税视频)、`checkin_video`(打卡视频)、`work_video`(工作视频)。不需要修改file-module,视频文件通过`file_id`关联`files`表。
|
|
|
|
|
|
**任务列表:**
|
|
|
-1. 扩展file-module或创建视频管理模块:
|
|
|
- - 视频分类管理:支持按扩展的asset_type枚举分类查询
|
|
|
- - 企业维度视频查询:基于企业ID查询关联的所有视频(通过`employment_order`→`order_person`→`order_person_asset`关联链)
|
|
|
- - 个人维度视频查询:基于人员ID查询关联的视频
|
|
|
- - 批量下载功能:支持按企业或个人维度批量下载视频文件
|
|
|
-
|
|
|
-2. 添加视频元数据管理(上传时间、类型、关联订单/人员等)
|
|
|
-3. 优化视频查询性能,添加适当的数据库索引
|
|
|
-4. 实现视频文件流式下载,支持大文件高效传输
|
|
|
+1. **企业维度视频查询API**(在order-module或company-module中实现):
|
|
|
+ - 基于企业ID查询关联的所有视频(通过`employment_order`→`order_person`→`order_person_asset`关联链)
|
|
|
+ - 支持按`asset_type`视频类型过滤查询
|
|
|
+ - 支持分页和排序(按上传时间、视频类型等)
|
|
|
+
|
|
|
+2. **批量下载功能**:
|
|
|
+ - 支持按企业维度批量下载视频文件(返回文件URL列表或生成临时打包文件)
|
|
|
+ - 支持按个人维度批量下载个人关联的视频
|
|
|
+ - 实现批量下载接口,支持选择多个视频文件下载
|
|
|
+
|
|
|
+3. **视频状态管理增强**:
|
|
|
+ - 在`order_person_asset`表添加`status`字段(枚举:`pending`待审核、`verified`已验证、`rejected`已拒绝)
|
|
|
+ - 添加视频审核状态查询和更新接口(如需要)
|
|
|
+
|
|
|
+4. **性能优化**:
|
|
|
+ - 添加企业维度视频查询的数据库索引优化
|
|
|
+ - 优化批量下载查询性能
|
|
|
+
|
|
|
5. 编写单元测试和集成测试
|
|
|
|
|
|
**验收标准:**
|
|
|
-- [ ] 视频分类查询接口支持按asset_type过滤
|
|
|
-- [ ] 企业维度视频查询接口返回企业关联的所有视频
|
|
|
-- [ ] 个人维度视频查询接口返回个人关联的视频
|
|
|
-- [ ] 批量下载功能支持按企业或个人维度下载多个视频文件
|
|
|
-- [ ] 视频元数据管理完整,包含上传时间、类型等
|
|
|
+- [ ] 企业维度视频查询接口返回企业关联的所有视频,支持按视频类型过滤
|
|
|
+- [ ] 批量下载功能支持按企业或个人维度下载多个视频文件(返回文件URL列表)
|
|
|
+- [ ] 视频状态管理功能完整(如实现状态字段)
|
|
|
- [ ] 视频查询性能优化,添加必要的数据索引
|
|
|
- [ ] 所有接口通过单元测试和集成测试
|
|
|
|
|
|
-### 故事012-06:系统设置API
|
|
|
-**背景:** 企业用户需要管理账号设置、安全设置和消息通知,需要添加企业用户专属的设置接口。
|
|
|
+### 故事012-06:系统设置API(P2 - 后期优化)
|
|
|
+**背景:** 企业用户账号信息在管理后台配置,用户无需自助修改手机号、密码等。登录设备管理、登录日志查询、消息通知设置等功能不是当前用人方小程序MVP必需功能,可延期到后期优化阶段实现。
|
|
|
+
|
|
|
+**优先级说明:** P2优先级,非当前MVP必需功能。企业账号由管理员在管理后台创建和维护,用户使用固定账号登录。安全设置和消息通知功能可在后续版本中根据用户反馈逐步添加。
|
|
|
|
|
|
**任务列表:**
|
|
|
-1. 添加企业用户专属的设置接口:
|
|
|
+1. (延期)添加企业用户专属的设置接口:
|
|
|
- 账号信息管理:修改手机号、密码等
|
|
|
- 安全设置:登录设备管理、登录日志查询
|
|
|
- 消息通知设置:订单状态通知、人才分配通知等开关设置
|
|
|
|
|
|
-2. 创建或扩展现有的设置模块
|
|
|
-3. 实现设置数据的持久化存储
|
|
|
-4. 添加设置变更的历史记录
|
|
|
-5. 编写单元测试和集成测试
|
|
|
-
|
|
|
-**验收标准:**
|
|
|
-- [ ] 账号信息管理接口支持修改手机号、密码等
|
|
|
-- [ ] 安全设置接口提供登录设备管理和登录日志查询
|
|
|
-- [ ] 消息通知设置接口支持各类通知的开关控制
|
|
|
-- [ ] 设置数据正确持久化存储
|
|
|
-- [ ] 设置变更历史记录完整
|
|
|
-- [ ] 所有接口通过单元测试和集成测试
|
|
|
-
|
|
|
-### 故事012-07:API文档与测试完善
|
|
|
-**背景:** 所有新增API需要完整的文档和测试覆盖,确保代码质量和可维护性。
|
|
|
-
|
|
|
-**任务列表:**
|
|
|
-1. 为所有新增API编写完整的OpenAPI文档
|
|
|
-2. 生成TypeScript类型定义文件,供前端使用
|
|
|
-3. 编写全面的单元测试,覆盖正常流程和异常情况
|
|
|
-4. 编写集成测试,验证API与数据库的集成
|
|
|
-5. 添加API性能测试,确保响应时间符合要求
|
|
|
-6. 更新模块的README文档,说明新增功能
|
|
|
-7. 验证所有测试通过,代码覆盖率达标
|
|
|
+2. (延期)创建或扩展现有的设置模块
|
|
|
+3. (延期)实现设置数据的持久化存储
|
|
|
+4. (延期)添加设置变更的历史记录
|
|
|
+5. (延期)编写单元测试和集成测试
|
|
|
|
|
|
**验收标准:**
|
|
|
-- [ ] 所有新增API都有完整的OpenAPI文档
|
|
|
-- [ ] TypeScript类型定义文件生成完成
|
|
|
-- [ ] 单元测试覆盖率达标(建议80%以上)
|
|
|
-- [ ] 集成测试覆盖主要业务场景
|
|
|
-- [ ] API性能测试通过,响应时间符合要求
|
|
|
-- [ ] 模块README文档更新完成
|
|
|
-- [ ] 所有测试通过,代码质量检查通过
|
|
|
-
|
|
|
-### 故事012-08:路由路径规范修复
|
|
|
+- [ ] (延期)账号信息管理接口支持修改手机号、密码等
|
|
|
+- [ ] (延期)安全设置接口提供登录设备管理和登录日志查询
|
|
|
+- [ ] (延期)消息通知设置接口支持各类通知的开关控制
|
|
|
+- [ ] (延期)设置数据正确持久化存储
|
|
|
+- [ ] (延期)设置变更历史记录完整
|
|
|
+- [ ] (延期)所有接口通过单元测试和集成测试
|
|
|
+
|
|
|
+### 故事012-07:API文档与测试完善(冗余 - 基础设施已覆盖)
|
|
|
+**背景:** 项目使用`@hono/zod-openapi`实现OpenAPI文档自动生成,在路由定义时通过Zod Schema添加OpenAPI元数据,文档在server包中自动聚合。各故事已包含测试要求(单元测试≥80%,集成测试≥60%),无需专门的故事进行文档和测试完善。
|
|
|
+
|
|
|
+**冗余说明:**
|
|
|
+1. **OpenAPI文档**:使用`@hono/zod-openapi`自动生成,路由定义时通过`.openapi()`方法添加文档元数据
|
|
|
+2. **TypeScript类型**:自动从Zod Schema生成,供前端使用
|
|
|
+3. **单元测试/集成测试**:每个故事都有明确的测试要求和覆盖率标准
|
|
|
+4. **API性能测试**:可在相关故事中实现(如故事012-04的统计查询性能测试)
|
|
|
+5. **模块README**:可在各故事的任务列表中包含文档更新
|
|
|
+
|
|
|
+**建议:** 此故事作为基础设施任务已由各故事分别覆盖,无需单独实现。保持各故事的文档和测试要求即可。
|
|
|
+
|
|
|
+### 故事012-08:路由路径规范修复(已完成)
|
|
|
**背景:** 故事012-02和012-03实现的企业用户认证API、企业统计与人才扩展API中,路由路径在模块包内包含了`/api/v1/yongren`前缀,违反了架构规范。根据项目标准,模块包内路由定义不应包含API前缀,前缀应在server包注册时统一添加。
|
|
|
|
|
|
**任务列表:**
|
|
|
@@ -243,12 +245,12 @@
|
|
|
6. 确保遵循模块包内不需要basepath的架构规范
|
|
|
|
|
|
**验收标准:**
|
|
|
-- [ ] 企业用户认证API路由路径移除`/api/v1/yongren`前缀,改为`/auth/login`、`/auth/logout`、`/auth/me`
|
|
|
-- [ ] 企业统计API路由路径移除`/api/v1/yongren`前缀,改为`/company/overview`和`/company/{id}/talents`
|
|
|
-- [ ] 人才扩展API路由路径移除`/api/v1/yongren`前缀,改为`/disability-person/{id}/*`格式
|
|
|
-- [ ] server包中的路由注册正确使用`api.route('/api/v1/yongren/...', ...)`
|
|
|
-- [ ] 所有集成测试通过,验证路由路径正确性
|
|
|
-- [ ] 遵循模块包内不需要basepath的架构规范
|
|
|
+- [x] 企业用户认证API路由路径移除`/api/v1/yongren`前缀,改为`/auth/login`、`/auth/logout`、`/auth/me`
|
|
|
+- [x] 企业统计API路由路径移除`/api/v1/yongren`前缀,改为`/company/overview`和`/company/{id}/talents`
|
|
|
+- [x] 人才扩展API路由路径移除`/api/v1/yongren`前缀,改为`/disability-person/{id}/*`格式
|
|
|
+- [x] server包中的路由注册正确使用`api.route('/api/v1/yongren/...', ...)`
|
|
|
+- [x] 所有集成测试通过,验证路由路径正确性
|
|
|
+- [x] 遵循模块包内不需要basepath的架构规范
|
|
|
|
|
|
## 史诗进度
|
|
|
|
|
|
@@ -258,15 +260,16 @@
|
|
|
- [x] **故事012-01**:数据库schema扩展 - **已完成**(故事012.001已实现)
|
|
|
- [x] **故事012-02**:企业用户认证API扩展 - **已完成**(故事012.002已实现)
|
|
|
- [x] **故事012-03**:企业统计与人才扩展API - **已完成**(故事012.003已实现)
|
|
|
-- [ ] **故事012-04**:订单统计与数据统计API - 待开始
|
|
|
-- [ ] **故事012-05**:视频管理API扩展 - 待开始
|
|
|
-- [ ] **故事012-06**:系统设置API - 待开始
|
|
|
-- [ ] **故事012-07**:API文档与测试完善 - 待开始
|
|
|
-- [ ] **故事012-08**:路由路径规范修复 - 待开始
|
|
|
+- [x] **故事012-08**:路由路径规范修复 - **已完成**(故事012.008已实现)
|
|
|
+- [ ] **故事012-04**:订单统计与数据统计API - 待开始(P1优先级)
|
|
|
+- [ ] **故事012-05**:视频管理API扩展 - 待开始(P1优先级)
|
|
|
+- [ ] **故事012-06**:系统设置API - **P2 - 延期**(后期优化)
|
|
|
+- [ ] **故事012-07**:API文档与测试完善 - **冗余**(基础设施已覆盖)
|
|
|
|
|
|
-**总体进度**:3/8 故事完成(38%)
|
|
|
+**总体进度**:4/8 故事完成(50%)
|
|
|
+**MVP进度**:4/6 核心故事完成(67%,排除012-06延期和012-07冗余)
|
|
|
|
|
|
-**最近更新**:2025-12-16 - 故事012.003完成,企业统计与人才扩展API已实现;故事012.008创建,用于修复路由路径规范问题;故事012.002集成测试修复,解决headers参数传递问题。
|
|
|
+**最近更新**:2025-12-16 - 史诗012故事优先级调整:故事012-08标记为已完成;故事012-06调整为P2延期(系统设置API);故事012-07标记为冗余(API文档与测试完善);故事012-05重新设计(基于order_person_asset实体)。故事012.003完成,企业统计与人才扩展API已实现;故事012.008创建并完成,路由路径规范修复。
|
|
|
|
|
|
---
|
|
|
|
|
|
@@ -313,7 +316,7 @@
|
|
|
|
|
|
## 完成定义
|
|
|
|
|
|
-- [ ] 所有7个故事完成,验收标准全部满足
|
|
|
+- [ ] 所有6个核心故事完成(排除012-06延期和012-07冗余),验收标准全部满足
|
|
|
- [x] 数据库schema扩展完成,不影响现有数据(故事012-01已实现)
|
|
|
- [ ] 所有补充API功能完整,符合用人方小程序需求
|
|
|
- [ ] API与现有allin系统移植模块无缝集成
|
|
|
@@ -327,7 +330,7 @@
|
|
|
- 依赖史诗7,8,9,10移植的API模块作为基础
|
|
|
- 依赖现有数据库schema,在基础上进行扩展
|
|
|
- 故事012-01(数据库schema扩展)是其他故事的基础依赖
|
|
|
-- 故事012-07(API文档与测试)依赖其他所有故事完成
|
|
|
+- (移除)故事012-07(API文档与测试)作为基础设施任务已由各故事分别覆盖
|
|
|
- 史诗011(用人方小程序功能实现)依赖本史诗完成
|
|
|
|
|
|
## 测试策略
|
|
|
@@ -341,10 +344,12 @@
|
|
|
|
|
|
## 执行顺序建议
|
|
|
|
|
|
-1. **先完成故事012-01**:数据库schema扩展是基础,其他故事依赖
|
|
|
-2. **然后并行执行故事012-02至012-06**:这些故事相对独立,可并行开发
|
|
|
-3. **最后完成故事012-07**:在所有API实现完成后进行文档和测试完善
|
|
|
-4. **按模块分组**:同一模块的扩展建议由同一开发者完成,确保一致性
|
|
|
+1. **先完成故事012-01**:数据库schema扩展是基础,其他故事依赖(已完成)
|
|
|
+2. **然后完成故事012-02、012-03、012-08**:企业用户认证、统计、路由规范修复(已完成)
|
|
|
+3. **下一步完成故事012-04和012-05**:订单统计与数据统计API、视频管理API扩展(P1优先级)
|
|
|
+4. **延期故事012-06**:系统设置API(P2优先级,后期优化)
|
|
|
+5. **基础设施故事012-07**:API文档与测试完善(冗余,基础设施已覆盖)
|
|
|
+6. **按模块分组**:同一模块的扩展建议由同一开发者完成,确保一致性
|
|
|
|
|
|
---
|
|
|
|