Skip to content

数据分析 API

数据分析模块提供了全面的学习数据统计和分析功能。

📋 接口概览

方法路径描述权限
GET/api/analytics/overview获取总体概览所有用户
GET/api/analytics/trends获取学习趋势所有用户
GET/api/analytics/projects获取项目分析所有用户
GET/api/analytics/calendar获取日历热力图所有用户
GET/api/analytics/efficiency获取效率分析所有用户
GET/api/analytics/reports生成分析报告所有用户
GET/api/analytics/achievements获取成就分析所有用户
GET/api/analytics/points获取积分分析所有用户

📊 获取总体概览

http
GET /api/analytics/overview?period=month
Authorization: Bearer <token>

响应示例:

json
{
  "success": true,
  "data": {
    "total_hours": 67.5,
    "total_sessions": 45,
    "study_days": 23,
    "average_daily_hours": 2.18,
    "longest_streak": 12,
    "current_streak": 5,
    "completion_rate": 76.7
  }
}

📈 获取学习趋势

http
GET /api/analytics/trends?period=30&type=daily
Authorization: Bearer <token>

响应示例:

json
{
  "success": true,
  "data": {
    "trends": [
      {
        "date": "2024-01-01",
        "hours": 2.5,
        "sessions": 2,
        "efficiency_score": 85.2
      }
    ],
    "summary": {
      "total_hours": 67.5,
      "average_daily_hours": 2.25,
      "consistency_score": 76.7
    }
  }
}

📋 获取项目分析

http
GET /api/analytics/projects
Authorization: Bearer <token>

响应示例:

json
{
  "success": true,
  "data": {
    "projects": [
      {
        "id": 1,
        "name": "数学学习",
        "total_hours": 25.5,
        "efficiency_score": 88.5,
        "progress_trend": "increasing"
      }
    ]
  }
}

📅 获取日历热力图

http
GET /api/analytics/calendar?year=2024&month=1
Authorization: Bearer <token>

响应示例:

json
{
  "success": true,
  "data": {
    "calendar_data": {
      "2024-01-01": {
        "hours": 2.5,
        "intensity": "medium"
      }
    }
  }
}

⚡ 获取效率分析

http
GET /api/analytics/efficiency?period=month
Authorization: Bearer <token>

响应示例:

json
{
  "success": true,
  "data": {
    "overall_efficiency": 85.2,
    "consistency_score": 76.7,
    "focus_score": 92.1,
    "recommendations": [
      "建议增加学习时长以提高整体效率"
    ]
  }
}

📄 生成分析报告

http
GET /api/analytics/reports?type=comprehensive
Authorization: Bearer <token>

响应示例:

json
{
  "success": true,
  "data": {
    "report_id": "report_20240115_001",
    "summary": {
      "total_hours": 67.5,
      "efficiency_score": 85.2
    },
    "recommendations": [
      "建议每天保持2小时以上的学习时间"
    ]
  }
}

🏆 获取成就分析

http
GET /api/analytics/achievements?period=month
Authorization: Bearer <token>

响应示例:

json
{
  "success": true,
  "data": {
    "total_achievements": 15,
    "completed_achievements": 12,
    "completion_rate": 80.0,
    "recent_achievements": [
      {
        "id": 1,
        "name": "学习新手",
        "completed_at": "2024-01-15T10:30:00Z",
        "points_earned": 50
      }
    ],
    "achievement_categories": {
      "study_duration": 5,
      "project_completion": 4,
      "continuous_study": 3
    }
  }
}

💰 获取积分分析

http
GET /api/analytics/points?period=month
Authorization: Bearer <token>

响应示例:

json
{
  "success": true,
  "data": {
    "current_balance": 1250,
    "total_earned": 1500,
    "total_spent": 250,
    "monthly_earned": 300,
    "earning_sources": {
      "study_duration": 150,
      "project_completion": 100,
      "achievements": 50
    },
    "spending_breakdown": {
      "virtual_products": 200,
      "premium_features": 50
    },
    "earning_trend": [
      {
        "date": "2024-01-01",
        "earned": 25,
        "spent": 10
      }
    ]
  }
}

🚀 使用示例

JavaScript 示例

javascript
// 获取总体概览
async function getAnalyticsOverview(token) {
  const response = await fetch('/api/analytics/overview?period=month', {
    headers: {
      'Authorization': `Bearer ${token}`
    }
  });
  return await response.json();
}

// 获取学习趋势
async function getAnalyticsTrends(token) {
  const response = await fetch('/api/analytics/trends?period=30', {
    headers: {
      'Authorization': `Bearer ${token}`
    }
  });
  return await response.json();
}

cURL 示例

bash
# 获取总体概览
curl -k -X GET "https://localhost:3001/api/analytics/overview?period=month" \
  -H "Authorization: Bearer YOUR_TOKEN"

# 获取学习趋势
curl -k -X GET "https://localhost:3001/api/analytics/trends?period=30" \
  -H "Authorization: Bearer YOUR_TOKEN"

📝 注意事项

  1. 数据范围: 所有统计数据基于用户的学习记录
  2. 实时性: 统计数据会实时更新
  3. 权限控制: 用户只能查看自己的分析数据
  4. 数据隐私: 所有数据都经过脱敏处理

💡 提示

定期查看分析报告可以帮助您了解学习模式,优化学习策略,提高学习效率。

Released under the MIT License.