Initial commit of akmon project
This commit is contained in:
132
doc_zhipao/SCORING_CRITERIA_MIGRATION_STATUS.md
Normal file
132
doc_zhipao/SCORING_CRITERIA_MIGRATION_STATUS.md
Normal file
@@ -0,0 +1,132 @@
|
||||
# 评分标准JSON迁移状态报告
|
||||
|
||||
## ✅ 已完成的工作
|
||||
|
||||
### 1. 修复了导入错误
|
||||
- **问题**: `pages/sport/teacher/create-assignment.uvue` 中 `getDifficultyClass` 函数缺失
|
||||
- **解决方案**: 在 `pages/sport/types.uts` 中添加了 `getDifficultyClass` 函数
|
||||
- **功能**: 返回基于项目难度级别的CSS类名(difficulty-easy, difficulty-medium, difficulty-hard, difficulty-expert)
|
||||
|
||||
### 2. 更新了前端代码实现JSON结构
|
||||
|
||||
#### Teacher端已更新的文件:
|
||||
✅ `pages/sport/teacher/project-create.uvue`
|
||||
- 修改了 `saveDraft()` 和 `submitProject()` 函数
|
||||
- 实现新的JSON结构:`{criteria: [{min_score, max_score, description}], scoring_method, weight_distribution}`
|
||||
- 添加了 `supaClient` 导入
|
||||
- 替换API调用为直接数据库操作
|
||||
|
||||
✅ `pages/sport/teacher/project-edit.uvue`
|
||||
- 已在之前会话中更新(根据对话历史)
|
||||
- 支持新JSON格式加载和保存
|
||||
- 具备向后兼容性
|
||||
|
||||
✅ `pages/sport/teacher/project-detail.uvue`
|
||||
- 已在之前会话中更新(根据对话历史)
|
||||
- `getScoringCriteria()` 函数支持新JSON格式显示
|
||||
|
||||
#### Student端已更新的文件:
|
||||
✅ `pages/sport/student/assignment-detail.uvue`
|
||||
- 更新了 `getScoringCriteria()` 函数
|
||||
- 支持新JSON结构解析和显示
|
||||
- 保持与旧格式的兼容性
|
||||
|
||||
### 3. 数据库迁移脚本
|
||||
✅ `migrate_scoring_criteria_to_json.sql`
|
||||
- 包含完整的数据迁移逻辑
|
||||
- 备份现有数据
|
||||
- 转换 `instructions` 字段内容为结构化JSON
|
||||
- 添加数据验证和约束
|
||||
|
||||
## 🔄 待执行的任务
|
||||
|
||||
### 1. 数据库迁移执行
|
||||
需要在开发环境中执行数据库迁移脚本:
|
||||
|
||||
```bash
|
||||
# 连接到PostgreSQL数据库并执行迁移
|
||||
psql -U [username] -d [database_name] -f migrate_scoring_criteria_to_json.sql
|
||||
```
|
||||
|
||||
### 2. 测试验证
|
||||
需要测试以下功能:
|
||||
|
||||
#### Teacher端测试:
|
||||
- [ ] 创建新项目时评分标准的保存
|
||||
- [ ] 编辑现有项目时数据的加载和保存
|
||||
- [ ] 项目详情页面评分标准的正确显示
|
||||
|
||||
#### Student端测试:
|
||||
- [ ] 作业详情页面评分标准的正确显示
|
||||
- [ ] 新JSON格式数据的解析
|
||||
- [ ] 旧格式数据的兼容性
|
||||
|
||||
### 3. 数据验证
|
||||
执行迁移后需要验证:
|
||||
- [ ] 所有项目的评分标准数据完整性
|
||||
- [ ] JSON结构的正确性
|
||||
- [ ] 前端页面显示的准确性
|
||||
|
||||
## 📋 新的JSON数据结构
|
||||
|
||||
```json
|
||||
{
|
||||
"criteria": [
|
||||
{
|
||||
"min_score": 90,
|
||||
"max_score": 100,
|
||||
"description": "优秀:动作标准,技术熟练,表现卓越"
|
||||
},
|
||||
{
|
||||
"min_score": 80,
|
||||
"max_score": 89,
|
||||
"description": "良好:动作较为标准,技术控制良好"
|
||||
},
|
||||
{
|
||||
"min_score": 70,
|
||||
"max_score": 79,
|
||||
"description": "及格:基本掌握动作要领,需要改进"
|
||||
},
|
||||
{
|
||||
"min_score": 0,
|
||||
"max_score": 69,
|
||||
"description": "不及格:动作不标准,需要重新练习"
|
||||
}
|
||||
],
|
||||
"scoring_method": "comprehensive",
|
||||
"weight_distribution": {
|
||||
"technique": 0.4,
|
||||
"effort": 0.3,
|
||||
"improvement": 0.3
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 🎯 迁移的核心优势
|
||||
|
||||
1. **数据完整性**: 保留了 `min_score` 和 `max_score` 信息
|
||||
2. **结构化存储**: 使用JSONB提供高效查询和索引
|
||||
3. **向后兼容**: 代码同时支持新旧数据格式
|
||||
4. **扩展性**: 支持未来添加更多评分维度和方法
|
||||
5. **AI友好**: 结构化数据更适合AI系统理解和处理
|
||||
|
||||
## ⚠️ 注意事项
|
||||
|
||||
1. **备份**: 迁移脚本会自动创建备份表 `ak_training_projects_backup_20250609`
|
||||
2. **测试**: 建议先在开发环境测试完整的迁移流程
|
||||
3. **监控**: 执行迁移后需要监控应用运行状态
|
||||
4. **回滚**: 如有问题可从备份表恢复数据
|
||||
|
||||
## 📈 下一步建议
|
||||
|
||||
1. **立即执行**: 在开发环境运行数据库迁移脚本
|
||||
2. **功能测试**: 验证所有相关页面的功能正常
|
||||
3. **性能测试**: 确认JSON查询性能满足要求
|
||||
4. **用户培训**: 如需要,为用户提供新功能的使用指导
|
||||
5. **生产部署**: 在测试通过后安排生产环境的迁移
|
||||
|
||||
---
|
||||
|
||||
**状态**: 代码层面迁移完成 ✅ | 数据库迁移待执行 🔄
|
||||
**更新时间**: 2025-06-11
|
||||
**负责人**: GitHub Copilot
|
||||
Reference in New Issue
Block a user