mi-assessment/.kiro/specs/admin-missing-modules/tasks.md
2026-02-08 11:31:08 +08:00

6.5 KiB
Raw Blame History

Implementation Plan: 测评记录管理 & 业务介绍页内容管理

Overview

基于已有项目架构模式,为两个遗漏的后台管理模块实现完整的后端功能。测评记录模块基于已有数据库表提供只读查询和导出,业务介绍页模块新建数据库表并提供完整 CRUD。所有实现遵循现有的 Controller → Service → DbContext 分层架构和 RPC 风格接口规范。

Tasks

  • 1. 创建实体类和数据库上下文扩展

    • 1.1 创建 AssessmentRecord、AssessmentAnswer、AssessmentResult 实体类
      • Entities/ 目录下创建三个实体类,使用 [Table] 属性映射到已有的 assessment_recordsassessment_answersassessment_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
  • 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
  • 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
  • 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)
  • 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)
  • 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
  • 8. 注册依赖注入和数据库迁移

    • 8.1 注册服务到 DI 容器
      • 在服务注册扩展方法中添加 IAssessmentRecordService 和 IBusinessPageService 的注册
      • Requirements: 1.1, 5.1
    • 8.2 创建 business_pages 表 SQL 迁移脚本
      • scripts/ 目录下创建 SQL 脚本,包含建表和索引语句
      • Requirements: 9.1, 9.2
  • [~] 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 安装