diff --git a/app/api/resume_diagnose.py b/app/api/resume_diagnose.py index 98489e7..8c795f1 100644 --- a/app/api/resume_diagnose.py +++ b/app/api/resume_diagnose.py @@ -74,3 +74,16 @@ async def resolve_issue(issue_id: int, param: ResolveParam): async for session in get_db(): service = ResumeDiagnoseService(session) await service.resolve_issue(issue_id, user_id, param.user_feedback) + + +class FeedbackParam(BaseModel): + user_feedback: int = Field(..., alias="userFeedback") + + +@router.put("/issue/{issue_id}/feedback", summary="用户评价诊断问题") +async def feedback_issue(issue_id: int, param: FeedbackParam): + """单独更新用户评价(1=符合 2=不符合)""" + user_id = RequestContext.user_id.get() + async for session in get_db(): + service = ResumeDiagnoseService(session) + await service.update_feedback(issue_id, user_id, param.user_feedback) diff --git a/app/services/resume_diagnose_service.py b/app/services/resume_diagnose_service.py index b6353ef..56df13f 100644 --- a/app/services/resume_diagnose_service.py +++ b/app/services/resume_diagnose_service.py @@ -150,6 +150,17 @@ class ResumeDiagnoseService: issue.user_feedback = user_feedback await self.session.flush() + async def update_feedback(self, issue_id: int, user_id: int, user_feedback: int) -> None: + """单独更新用户评价""" + result = await self.session.execute( + select(ResumeDiagnosisIssue).where( + ResumeDiagnosisIssue.id == issue_id, ResumeDiagnosisIssue.user_id == user_id)) + issue = result.scalar_one_or_none() + if issue is None: + raise ValueError("诊断问题不存在") + issue.user_feedback = user_feedback + await self.session.flush() + # ===== 工具函数 =====