API 参考

进度接口

进度模块提供学习数据统计、可视化数据获取、AI 分析和目标管理功能,挂载于 /api/progress所有接口均需认证。

获取统计摘要

GET /api/progress/summary

返回当前用户的整体学习统计数据,用于仪表盘展示。

成功响应 200

{
  "success": true,
  "data": {
    "totalPractice": 256,        // 总练习题数
    "correctCount": 198,         // 答对题数
    "correctRate": "77.3",       // 正确率(%)
    "avgScore": "82.5",          // 平均分
    "studyDays": 30,             // 学习天数
    "totalMinutes": 1440,        // 总学习分钟
    "quizCount": 12,             // 完成测验数
    "masteredTopics": 8,         // 已掌握知识点(≥80%)
    "weakTopics": 3,             // 薄弱知识点(<40%)
    "weekQuestions": 45,         // 本周练习题数
    "weekMinutes": 210,          // 本周学习分钟
    "weekAvgScore": "85.2"       // 本周平均分
  }
}

获取知识点掌握度

GET /api/progress/mastery

返回用户各知识点的掌握度数据,用于雷达图可视化。

Query 参数

参数说明
subject可选,按科目筛选

成功响应 200

{
  "success": true,
  "data": [
    {
      "id": "uuid",
      "user_id": "uuid",
      "subject": "数学",
      "topic": "二次函数",
      "mastery_level": 85.3,      // 掌握度 0-100
      "practice_count": 20,
      "correct_count": 16,
      "last_practiced": "2024-01-15T08:00:00.000Z"
    }
  ]
}

获取每日学习统计

GET /api/progress/daily-stats

返回近 N 天的每日统计数据,用于折线图展示。

Query 参数

参数默认值说明
days30查询最近几天的数据

成功响应 200

{
  "success": true,
  "data": [
    {
      "date": "2024-01-15",
      "study_minutes": 60,
      "questions_practiced": 20,
      "correct_answers": 16,
      "avg_score": 82.5
    }
  ]
}

获取薄弱知识点

GET /api/progress/weaknesses

返回掌握度低于 60% 的知识点列表,按掌握度升序排列(最多 20 条)。

获取学科分布

GET /api/progress/subject-distribution

返回各学科练习题数分布,用于饼图展示。

成功响应 200

{
  "success": true,
  "data": [
    { "subject": "数学", "count": 100, "avg_score": 82.5, "correct_count": 75 },
    { "subject": "物理", "count": 60, "avg_score": 75.0, "correct_count": 42 }
  ]
}

AI 分析薄弱环节

POST /api/progress/analyze 🤖 AI · 限速 20次/分钟

基于用户的知识点掌握度数据,调用 AI 生成个性化改进建议,并保存到数据库(7天有效期)。无需请求体。

成功响应 200

{
  "success": true,
  "data": [
    {
      "type": "weakness_improvement",
      "content": "建议重点复习二次函数的顶点式与标准式转换...",
      "priority": "high",
      "subject": "数学",
      "topic": "二次函数"
    },
    {
      "type": "practice_more",
      "content": "物理中的牛顿定律应用题练习次数较少...",
      "priority": "medium",
      "subject": "物理",
      "topic": "牛顿定律"
    }
  ]
}

生成评估报告

POST /api/progress/assessment-report 🤖 AI · 限速 20次/分钟

基于近 30 天的学习数据,生成 Markdown 格式的综合评估报告。无需请求体。

成功响应 200

{
  "success": true,
  "data": {
    "report": "# 学习评估报告\n\n## 总体评价\n\n张三同学在近30天内...\n\n## 优势分析\n\n..."
  }
}

获取学习建议列表

GET /api/progress/suggestions

返回有效期内的学习建议(最多 10 条),按优先级降序排列。

标记建议已读

PUT /api/progress/suggestions/:id/read

学习目标管理

获取目标列表

GET /api/progress/goals

创建学习目标

POST /api/progress/goals

请求体

{
  "title": "本月完成100道数学题",  // 必填
  "targetType": "questions",       // 必填:questions/minutes/score/mastery
  "targetValue": 100,              // 必填:目标值
  "description": "每天至少做5道", // 可选
  "subject": "数学",               // 可选
  "deadline": "2024-01-31"        // 可选:截止日期
}

更新目标进度

PUT /api/progress/goals/:id

请求体

{
  "currentValue": 45,      // 当前完成值
  "status": "active"       // active / completed / abandoned
}