Initial commit of akmon project

This commit is contained in:
2026-01-20 08:04:15 +08:00
commit 77a2bab985
1309 changed files with 343305 additions and 0 deletions

View File

@@ -0,0 +1,150 @@
# 快速解决 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 功能将正常工作,显示测试数据,为后续真实数据集成做好准备。