fix(practice): 修复分析报告重复插入错误
All checks were successful
continuous-integration/drone/push Build is passing

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
yuliang_guo
2026-02-04 15:38:53 +08:00
parent c6f64de4cc
commit e7202a6244

View File

@@ -828,19 +828,35 @@ async def analyze_practice_session(
# 解析分析结果
analysis_result = analysis_data.get("analysis", {})
# 保存分析报告
report = PracticeReport(
session_id=session_id,
total_score=analysis_result.get("total_score"),
score_breakdown=analysis_result.get("score_breakdown"),
ability_dimensions=analysis_result.get("ability_dimensions"),
dialogue_review=analysis_result.get("dialogue_annotations"),
suggestions=analysis_result.get("suggestions"),
workflow_run_id=f"{v2_result.ai_provider}_{v2_result.ai_latency_ms}ms",
task_id=None
# 检查报告是否已存在
existing_report = await db.execute(
select(PracticeReport).where(PracticeReport.session_id == session_id)
)
report = existing_report.scalar_one_or_none()
if report:
# 更新现有报告
report.total_score = analysis_result.get("total_score")
report.score_breakdown = analysis_result.get("score_breakdown")
report.ability_dimensions = analysis_result.get("ability_dimensions")
report.dialogue_review = analysis_result.get("dialogue_annotations")
report.suggestions = analysis_result.get("suggestions")
report.workflow_run_id = f"{v2_result.ai_provider}_{v2_result.ai_latency_ms}ms"
logger.info(f"更新现有分析报告: session_id={session_id}")
else:
# 创建新报告
report = PracticeReport(
session_id=session_id,
total_score=analysis_result.get("total_score"),
score_breakdown=analysis_result.get("score_breakdown"),
ability_dimensions=analysis_result.get("ability_dimensions"),
dialogue_review=analysis_result.get("dialogue_annotations"),
suggestions=analysis_result.get("suggestions"),
workflow_run_id=f"{v2_result.ai_provider}_{v2_result.ai_latency_ms}ms",
task_id=None
)
db.add(report)
db.add(report)
await db.commit()
logger.info(f"分析报告已保存: session_id={session_id}, total_score={report.total_score}")
@@ -917,7 +933,7 @@ async def get_practice_report(
]
# 调用分析服务
from app.services.practice_analysis_service import PracticeAnalysisService
from app.services.ai.practice_analysis_service import PracticeAnalysisService
import json
practice_analysis_service = PracticeAnalysisService()