Files
akmon/doc_zhipao/ANALYTICS_QUICK_FIX.md
2026-01-20 08:04:15 +08:00

151 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 快速解决 Analytics RPC 函数问题
## 🚨 当前问题
```
Searched for the function public.get_teacher_analytics with parameters columns, end_date, limit, start_date, teacher_id or with a single unnamed json/jsonb parameter, but no matches were found in the schema cache.
```
## ✅ 立即解决方案
### 步骤 1: 在 Supabase SQL Editor 中执行简化版函数
1. 打开 Supabase 项目控制台
2. 进入 **SQL Editor**
3. 复制并执行 `analytics_rpc_simple.sql` 文件中的所有内容
### 步骤 2: 验证函数创建成功
在 SQL Editor 中运行:
```sql
-- 检查函数是否创建成功
SELECT routine_name, routine_type
FROM information_schema.routines
WHERE routine_schema = 'public'
AND routine_name IN ('get_teacher_analytics', 'get_top_performers', 'get_chart_data')
ORDER BY routine_name;
```
应该看到 3 个函数都存在。
### 步骤 3: 测试函数调用
```sql
-- 测试各个函数
SELECT public.get_teacher_analytics();
SELECT public.get_top_performers();
SELECT public.get_chart_data();
```
### 步骤 4: 在 Supabase API 文档中测试
1. 进入项目的 **API** 页面
2.**RPC** 部分找到新创建的函数
3. 测试调用
### 步骤 5: 刷新应用并测试
重新加载 Analytics 页面,应该能够看到测试数据。
## 📊 返回的测试数据
### get_teacher_analytics 返回:
```json
{
"total_students": 28,
"total_assignments": 12,
"completion_rate": 87.5,
"average_score": 82.3,
"active_classes": 4,
"total_submissions": 285,
"pending_reviews": 15,
"graded_submissions": 270
}
```
### get_top_performers 返回:
```json
[
{
"student_id": "550e8400-e29b-41d4-a716-446655440001",
"name": "王小明",
"username": "wangxiaoming",
"score": 96.8,
"submission_count": 12,
"completion_rate": 100.0,
"class_name": "高三(1)班",
"rank_position": 1
},
// ... 更多学员数据
]
```
### get_chart_data 返回:
```json
[
{
"date_key": "2024-06-01",
"value": 75.5,
"label": "完成率",
"count": 15
},
// ... 更多图表数据
]
```
## 🔧 前端调试
已更新 Analytics 页面的数据处理函数:
1. **更好的错误处理**: 显示具体错误信息
2. **数据格式兼容**: 正确处理 RPC 返回的数据格式
3. **调试信息**: 在控制台输出详细的调试信息
## 🚀 后续升级
当基础功能正常工作后,可以:
1. **替换为真实数据**: 使用 `analytics_rpc_functions.sql` 中的完整版本
2. **连接真实数据库**: 确保数据表结构正确
3. **优化性能**: 添加索引和查询优化
## 🔍 故障排除
### 如果仍然出现错误:
1. **检查 Supabase 连接**
```sql
SELECT current_user, current_database();
```
2. **检查函数权限**
```sql
SELECT routine_name, security_type
FROM information_schema.routines
WHERE routine_name = 'get_teacher_analytics';
```
3. **检查 RLS 策略**
```sql
SELECT tablename, policyname, permissive
FROM pg_policies
WHERE tablename LIKE 'ak_%';
```
4. **重新授权函数**
```sql
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO authenticated;
```
## ✅ 预期结果
执行上述步骤后Analytics 页面应该:
1. ✅ 正常加载,不显示错误信息
2. ✅ 显示概览统计卡片(学员总数、作业总数等)
3. ✅ 显示优秀学员排行榜
4. ✅ 显示图表占位符(显示数据数量)
5. ✅ 显示近期活动列表
Analytics 功能将正常工作,显示测试数据,为后续真实数据集成做好准备。