From 4187fe6891b9605d5b2dc2017589f64dc1a4bd61 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Mon, 25 May 2026 20:46:11 -0600 Subject: [PATCH] feat: update ai/views/oj.py query filters to treat AST_CHECK_FAILED as accepted --- ai/views/oj.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ai/views/oj.py b/ai/views/oj.py index dc0117b..5c108e3 100644 --- a/ai/views/oj.py +++ b/ai/views/oj.py @@ -126,7 +126,7 @@ def get_user_first_ac_submissions( # 用户自己的 AC 记录按时间范围过滤 user_first_ac = list( Submission.objects.filter( - result=JudgeStatus.ACCEPTED, + result__in=[JudgeStatus.ACCEPTED, JudgeStatus.AST_CHECK_FAILED], user_id=user_id, create_time__gte=start, create_time__lte=end, @@ -144,7 +144,7 @@ def get_user_first_ac_submissions( # 排名基于全局数据(不限时间),后注册的学生与所有人公平竞争 rank_qs = Submission.objects.filter( - result=JudgeStatus.ACCEPTED, + result__in=[JudgeStatus.ACCEPTED, JudgeStatus.AST_CHECK_FAILED], problem_id__in=problem_ids, ) if use_class_scope and class_user_ids: @@ -250,7 +250,7 @@ class AIDetailDataAPI(APIView): by_problem_period = defaultdict(list) if problem_ids: period_qs = Submission.objects.filter( - result=JudgeStatus.ACCEPTED, + result__in=[JudgeStatus.ACCEPTED, JudgeStatus.AST_CHECK_FAILED], problem_id__in=problem_ids, create_time__gte=start, create_time__lte=end, @@ -487,7 +487,7 @@ class AIDurationDataAPI(APIView): period_data["problem_count"] = len(problem_ids) by_problem_period = defaultdict(list) period_qs = Submission.objects.filter( - result=JudgeStatus.ACCEPTED, + result__in=[JudgeStatus.ACCEPTED, JudgeStatus.AST_CHECK_FAILED], problem_id__in=problem_ids, create_time__gte=start, create_time__lte=period_end, @@ -570,9 +570,9 @@ class AILoginSummaryAPI(APIView): user_id=user.id, create_time__gte=start_time, create_time__lte=end_time ) submission_count = submissions_qs.count() - accepted_count = submissions_qs.filter(result=JudgeStatus.ACCEPTED).count() + accepted_count = submissions_qs.filter(result__in=[JudgeStatus.ACCEPTED, JudgeStatus.AST_CHECK_FAILED]).count() solved_count = ( - submissions_qs.filter(result=JudgeStatus.ACCEPTED) + submissions_qs.filter(result__in=[JudgeStatus.ACCEPTED, JudgeStatus.AST_CHECK_FAILED]) .values("problem_id") .distinct() .count()