From 871b4baadcae4e8e358d9037067cea0201d1e0a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E6=BD=AE?= Date: Thu, 30 Oct 2025 00:34:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B1=95=E7=A4=BA=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 268 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 265 insertions(+), 3 deletions(-) diff --git a/main.py b/main.py index c7f2070..0b521be 100644 --- a/main.py +++ b/main.py @@ -471,7 +471,7 @@ async def quiz_page(session_id: str, request: Request): cursor = conn.cursor() cursor.execute(''' - SELECT s.*, qs.questions_config, qs.status + SELECT s.*, qs.questions_config, qs.status, qs.total_score, qs.completed_at FROM students s JOIN quiz_sessions qs ON s.id = qs.student_id WHERE qs.id = ? @@ -483,8 +483,13 @@ async def quiz_page(session_id: str, request: Request): if not session_data: raise HTTPException(status_code=404, detail="Session not found") - # 生成答题页面HTML - html_content = generate_quiz_page(session_data, session_id) + # 检查会话状态 + if session_data['status'] in ['completed', 'can_regenerate']: + # 显示完成状态页面 + html_content = generate_completion_page(session_data, session_id) + else: + # 显示答题页面 + html_content = generate_quiz_page(session_data, session_id) return Response(content=html_content, media_type="text/html; charset=utf-8") @@ -1095,6 +1100,263 @@ async def report_callback(request: ReportCallbackRequest): print(f"❌ 回调处理失败: {e}") raise HTTPException(status_code=500, detail=f"回调处理失败: {str(e)}") +def generate_completion_page(session_data: sqlite3.Row, session_id: str) -> str: + """生成答题完成页面HTML""" + student_name = session_data['name'] + school = session_data['school'] + grade = session_data['grade'] + total_score = session_data['total_score'] or 0 + completed_at = session_data['completed_at'] or '未知时间' + + return f''' + + + + + {student_name} - 测评已完成 + + + +
+
+

测评已完成!

+ +
+
+ 姓名: + {student_name} +
+
+ 学校: + {school} +
+
+ 年级: + {grade} +
+
+ 完成时间: + {completed_at} +
+
+ +
+
{total_score} 分
+
本次测评得分
+
+ +
+ 恭喜您完成了本次学科能力测评!
+ 系统正在为您生成详细的个性化报告,请稍后查看。 +
+ +
+ 返回首页 + +
+ + + + +
+ +''' + if __name__ == "__main__": import uvicorn uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=True) \ No newline at end of file