feat: update ai/views/oj.py query filters to treat AST_CHECK_FAILED as accepted

This commit is contained in:
2026-05-25 20:46:11 -06:00
parent 980b803517
commit 4187fe6891

View File

@@ -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()