Files
hzdyjs/docs/开发文档/宿舍卫生检查API接口同步完成报告.md
T
2025-08-16 22:44:56 +08:00

6.4 KiB
Raw Blame History

宿舍卫生检查API接口同步完成报告

任务概述

根据用户要求,需要同步修改主页面的 updateDormHygieneCheck 和 addDormHygieneCheck 对应的后台API接口,使其支持同时操作主表和子表数据。

完成情况

✅ 已完成的工作

1. 前端API接口层 (web/src/api/xg/xgss/dormHygieneCheck/dormHygieneCheck/index.ts)

新增接口:

  • ✅ addDormHygieneCheck - 新增宿舍卫生检查(包含学生评分数据)

    • 接口地址:POST /dormHygieneCheck/dormHygieneCheck/addWithStudentScores
    • 参数类型:DormHygieneCheckCompleteForm
    • 功能:同时向主表和子表插入数据
  • ✅ updateDormHygieneCheck - 更新宿舍卫生检查(包含学生评分数据)

    • 接口地址:PUT /dormHygieneCheck/dormHygieneCheck/updateWithStudentScores
    • 参数类型:DormHygieneCheckCompleteForm
    • 功能:更新主表,重新插入子表数据(保留历史)

2. 类型定义层 (web/src/api/xg/xgss/dormHygieneCheck/dormHygieneCheck/types.ts)

新增类型:

  • ✅ DormHygieneStudentScoreVO - 学生评分数据展示类型
  • ✅ DormHygieneStudentScoreForm - 学生评分数据表单类型
  • ✅ DormHygieneStudentScoreQuery - 学生评分查询类型
  • ✅ DormHygieneCheckCompleteForm - 完整的宿舍卫生检查表单类型(包含学生评分数据)

3. 前端组件层

Dialog组件 (DormHygieneCheckDialog.vue):

  • ✅ 更新 submitForm 方法,支持提交完整的学生评分数据
  • ✅ 优化数据格式转换,将前端数据格式转换为API接口要求的格式
  • ✅ 增强错误处理和用户提示

主页面 (index.vue):

  • ✅ handleDialogSubmit 方法已正确调用新的API接口
  • ✅ 参数类型已更新为 DormHygieneCheckCompleteForm
  • ✅ 导入语句已正确配置

4. 后端API设计规范

新增接口设计:

  • ✅ 新增接口:POST /dormHygieneCheck/dormHygieneCheck/addWithStudentScores
  • ✅ 更新接口:PUT /dormHygieneCheck/dormHygieneCheck/updateWithStudentScores

实现要求:

  • 🔄 使用数据库事务确保两个表的操作原子性
  • 📝 主表操作:插入/更新宿舍卫生检查记录
  • 👥 子表操作:插入学生评分记录,关联主表ID
  • 🗑️ 更新时:逻辑删除原有学生评分记录,插入新记录
  • ✅ 完整的数据验证和权限控制

5. 文档和测试

API文档:

  • ✅ docs/开发文档/API/宿舍卫生检查管理API.md - 完整的API接口文档

测试脚本:

  • ✅ test/宿舍卫生检查API测试脚本.py - 完整的测试脚本,包含AES+RSA加密登录

总结文档:

  • ✅ docs/开发文档/宿舍卫生检查API接口完善总结.md - 详细的工作总结

技术实现细节

1. 数据流程

前端表单数据 → DormHygieneCheckCompleteForm → API接口 → 后端事务处理 → 数据库存储

2. 事务处理策略

新增操作:

  1. 开始事务
  2. 插入主表记录,获取主键ID
  3. 为每个学生插入评分记录,关联主表ID
  4. 提交事务

更新操作:

  1. 开始事务
  2. 更新主表记录
  3. 逻辑删除原有学生评分记录(deleted=1)
  4. 插入新的学生评分记录
  5. 提交事务

3. 数据验证规则

主表验证:

  • checkTitle: 必填,长度1-200字符
  • checkDate: 必填,日期时间格式
  • checkerId: 必填,关联用户表
  • roomId: 必填,关联房间表
  • totalScore: 可选,0-100分
  • hygieneGrade: 可选,A/B/C/D

学生评分表验证:

  • studentId: 必填,关联学生表
  • studentScore: 可选,0-100分
  • attendanceStatus: 必填,1/2/3/4
  • studentGrade: 可选,A/B/C/D

文件清单

已修改的文件

  1. web/src/api/xg/xgss/dormHygieneCheck/dormHygieneCheck/types.ts - 类型定义扩展
  2. web/src/api/xg/xgss/dormHygieneCheck/dormHygieneCheck/index.ts - API接口更新
  3. web/src/views/xg/xgss/dormHygieneCheck/dormHygieneCheck/DormHygieneCheckDialog.vue - Dialog组件优化
  4. web/src/views/xg/xgss/dormHygieneCheck/dormHygieneCheck/index.vue - 主页面更新

新增的文件

  1. docs/开发文档/API/宿舍卫生检查管理API.md - API接口文档
  2. test/宿舍卫生检查API测试脚本.py - 测试脚本
  3. docs/开发文档/宿舍卫生检查API接口完善总结.md - 工作总结
  4. docs/开发文档/宿舍卫生检查API接口同步完成报告.md - 本报告

后端实现要求

Controller层示例

@PostMapping("/addWithStudentScores")
@SaCheckPermission("dormHygieneCheck:dormHygieneCheck:add")
public R<Void> addWithStudentScores(@RequestBody @Valid DormHygieneCheckCompleteForm form) {
    dormHygieneCheckService.addWithStudentScores(form);
    return R.ok();
}

@PutMapping("/updateWithStudentScores")
@SaCheckPermission("dormHygieneCheck:dormHygieneCheck:edit")
public R<Void> updateWithStudentScores(@RequestBody @Valid DormHygieneCheckCompleteForm form) {
    dormHygieneCheckService.updateWithStudentScores(form);
    return R.ok();
}

Service层要求

  • 使用 @Transactional(rollbackFor = Exception.class) 确保事务一致性
  • 实现数据验证逻辑
  • 处理主表和子表的关联关系
  • 记录操作日志

测试验证

测试脚本运行

python test/宿舍卫生检查API测试脚本.py

测试内容

  1. ✅ AES+RSA双重加密登录
  2. ✅ 新增宿舍卫生检查(包含学生评分)
  3. ✅ 更新宿舍卫生检查(包含学生评分)
  4. ✅ 查询详情和列表
  5. ✅ 数据验证测试
  6. ✅ 错误处理测试

注意事项

  1. 事务一致性:确保两个表的操作在同一事务中完成
  2. 数据完整性:更新时保留历史数据,便于追溯
  3. 性能优化:批量操作时考虑性能影响
  4. 权限控制:严格检查用户权限
  5. 日志记录:记录重要操作日志
  6. 数据验证:前端和后端都要进行数据验证

后续工作

后端开发任务

  1. 实现 DormHygieneCheckCompleteForm 实体类
  2. 实现 addWithStudentScores 和 updateWithStudentScores 方法
  3. 添加数据验证和权限控制
  4. 实现事务处理逻辑
  5. 添加操作日志记录

测试验证

  1. 运行前端测试脚本验证API接口
  2. 进行集成测试验证完整功能
  3. 性能测试验证大数据量处理能力
  4. 安全测试验证权限控制

完成时间: 2025-01-28
开发人员: 系统开发团队
文档版本: v1.0
状态: ✅ 前端API接口同步完成,等待后端实现