6.5 KiB
6.5 KiB
Implementation Plan: 测评记录管理 & 业务介绍页内容管理
Overview
基于已有项目架构模式,为两个遗漏的后台管理模块实现完整的后端功能。测评记录模块基于已有数据库表提供只读查询和导出,业务介绍页模块新建数据库表并提供完整 CRUD。所有实现遵循现有的 Controller → Service → DbContext 分层架构和 RPC 风格接口规范。
Tasks
-
1. 创建实体类和数据库上下文扩展
- 1.1 创建 AssessmentRecord、AssessmentAnswer、AssessmentResult 实体类
- 在
Entities/目录下创建三个实体类,使用[Table]属性映射到已有的assessment_records、assessment_answers、assessment_results表 - 字段类型和约束参照数据库设计文档
- Requirements: 1.1, 2.1, 2.2, 2.3
- 在
- 1.2 创建 BusinessPage 实体类
- 在
Entities/目录下创建 BusinessPage 实体类,映射到business_pages表 - Requirements: 5.1, 9.1
- 在
- 1.3 扩展 AdminBusinessDbContext
- 在
Data/AdminBusinessDbContext.cs中注册四个新的 DbSet - 在
OnModelCreating中配置 AssessmentResult 的 decimal 精度和 AssessmentAnswer 的复合唯一索引 - Requirements: 9.1, 9.2
- 在
- 1.1 创建 AssessmentRecord、AssessmentAnswer、AssessmentResult 实体类
-
2. 创建错误码和权限常量
- 2.1 扩展 ErrorCodes 常量类
- 在
Models/Common/ErrorCodes.cs中添加测评记录错误码 (3241-3243) 和业务介绍页错误码 (3701) - Requirements: 2.4, 3.3, 4.3, 7.4
- 在
- 2.2 扩展 BusinessPermissions 常量类
- 在
Constants/BusinessPermissions.cs中添加 AssessmentRecord 和 BusinessPage 权限定义 - Requirements: 10.1, 10.2, 10.3
- 在
- 2.1 扩展 ErrorCodes 常量类
-
3. 创建 DTO 模型
- 3.1 创建测评记录模块 DTO
- 在
Models/AssessmentRecord/目录下创建: AssessmentRecordQueryRequest, AssessmentRecordDto, AssessmentRecordDetailDto, AnswerDetailDto, ResultDetailDto, AssessmentReportDto, ReportCategoryGroup, ReportCategoryItem - Requirements: 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.1, 2.2, 2.3, 2.5, 3.1, 3.2, 3.4
- 在
- 3.2 创建业务介绍页模块 DTO
- 在
Models/BusinessPage/目录下创建: BusinessPageQueryRequest, BusinessPageDto, CreateBusinessPageRequest, UpdateBusinessPageRequest - Requirements: 5.1, 5.2, 6.1, 6.2, 6.3, 7.1, 7.2
- 在
- 3.1 创建测评记录模块 DTO
-
4. 实现测评记录服务
- 4.1 创建 IAssessmentRecordService 接口
- 在
Services/Interfaces/目录下创建接口,定义 GetRecordListAsync、GetRecordDetailAsync、GetRecordReportAsync、ExportRecordsAsync 四个方法 - Requirements: 1.1, 2.1, 3.1, 4.1
- 在
- 4.2 实现 AssessmentRecordService — 列表查询
- 实现 GetRecordListAsync,包含分页、多条件筛选、关联查询(User、AssessmentType、Order)、枚举映射
- Requirements: 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7
- 4.3 实现 AssessmentRecordService — 详情和报告
- 实现 GetRecordDetailAsync(含答案和结果关联查询)和 GetRecordReportAsync(含分类分组和结论关联)
- Requirements: 2.1, 2.2, 2.3, 2.4, 2.5, 3.1, 3.2, 3.3, 3.4
- 4.4 实现 AssessmentRecordService — 导出
- 安装 ClosedXML NuGet 包,实现 ExportRecordsAsync,生成 Excel 文件字节数组
- 包含导出数量上限校验(10000条)
- Requirements: 4.1, 4.2, 4.3, 4.4
- 4.5 编写测评记录服务属性测试
- Property 1: 分页查询返回记录数不超过 PageSize
- Property 2: 筛选条件一致性
- Property 4: 枚举显示名称映射正确性
- Validates: Requirements 1.1, 1.2, 1.4, 1.5, 1.6, 1.7
- 4.6 编写测评记录服务单元测试
- 测试记录不存在返回错误 (Requirements 2.4)
- 测试未完成记录请求报告返回错误 (Requirements 3.3)
- 测试导出超限返回错误 (Requirements 4.3)
- 4.1 创建 IAssessmentRecordService 接口
-
5. Checkpoint — 测评记录模块验证
- Ensure all tests pass, ask the user if questions arise.
-
6. 实现业务介绍页服务
- 6.1 创建 IBusinessPageService 接口
- 在
Services/Interfaces/目录下创建接口,定义列表查询、详情、创建、更新、删除、状态更新、排序更新七个方法 - Requirements: 5.1, 6.1, 7.1, 8.1, 8.2, 8.4
- 在
- 6.2 实现 BusinessPageService
- 实现完整 CRUD 功能,包含验证逻辑(Title/ImageUrl 必填、ActionButton 条件验证)、软删除、状态管理、排序管理
- Requirements: 5.1, 5.2, 5.3, 5.4, 6.1, 6.2, 6.3, 7.1, 7.2, 7.3, 7.4, 8.1, 8.2, 8.3, 8.4
- 6.3 编写业务介绍页服务属性测试
- Property 10: 业务介绍页验证规则
- Property 11: 业务介绍页创建默认值
- Property 15: 业务介绍页 CRUD 往返一致性
- Validates: Requirements 5.1, 5.2, 5.3, 5.4, 7.1, 7.2, 6.3
- 6.4 编写业务介绍页服务单元测试
- 测试页面不存在返回错误 (Requirements 7.4, 8.3)
- 测试软删除后不出现在列表中 (Requirements 8.1)
- 6.1 创建 IBusinessPageService 接口
-
7. 实现控制器层
- 7.1 创建 AssessmentRecordController
- 在
Controllers/目录下创建控制器,实现 GetList、GetDetail、GetReport、Export 四个接口 - 使用
[BusinessPermission]特性控制权限 - Export 接口返回 FileContentResult (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)
- Requirements: 1.1, 2.1, 3.1, 4.1, 10.1
- 在
- 7.2 创建 BusinessPageController
- 在
Controllers/目录下创建控制器,实现 GetList、GetDetail、Create、Update、Delete、UpdateStatus、UpdateSort 七个接口 - 使用
[BusinessPermission]特性控制权限 - Requirements: 5.1, 6.1, 7.1, 8.1, 8.2, 8.4, 10.2
- 在
- 7.1 创建 AssessmentRecordController
-
8. 注册依赖注入和数据库迁移
- 8.1 注册服务到 DI 容器
- 在服务注册扩展方法中添加 IAssessmentRecordService 和 IBusinessPageService 的注册
- Requirements: 1.1, 5.1
- 8.2 创建 business_pages 表 SQL 迁移脚本
- 在
scripts/目录下创建 SQL 脚本,包含建表和索引语句 - Requirements: 9.1, 9.2
- 在
- 8.1 注册服务到 DI 容器
-
[~] 9. Final checkpoint — 全部模块验证
- Ensure all tests pass, ask the user if questions arise.
Notes
- All tasks including tests are required for comprehensive coverage
- 测评记录模块为只读模块,不涉及数据创建和修改
- 业务介绍页模块需要先执行 SQL 迁移脚本创建数据库表
- 所有实现遵循现有项目的编码规范(中文注释、XML 文档注释、RPC 风格路由)
- ClosedXML 是 Excel 导出的依赖包,需要通过 NuGet 安装