返回提交id

This commit is contained in:
2026-01-04 10:32:02 +08:00
parent bcf24085f9
commit ea92a24f82

View File

@@ -10,7 +10,7 @@ from django.db.models import Count, Q
def get_real_name(username, class_name): def get_real_name(username, class_name):
if class_name and username.startswith("ks"): if class_name and username.startswith("ks"):
return username[len(f"ks{class_name}"):] return username[len(f"ks{class_name}") :]
return username return username
@@ -104,6 +104,20 @@ class SubmissionStatisticsAPI(APIView):
else: else:
submitted_users_dict = {} submitted_users_dict = {}
# 预先收集每个用户的提交ID和结果按时间倒序
submission_items_by_user = {}
for submission in submissions.values("username", "id", "result").order_by(
"-create_time"
):
username_key = submission["username"]
submission_id = str(submission["id"])
submission_items_by_user.setdefault(username_key, []).append(
{
"id": submission_id,
"result": submission["result"],
}
)
# 处理有提交记录的用户 # 处理有提交记录的用户
accepted = [] accepted = []
@@ -119,6 +133,9 @@ class SubmissionStatisticsAPI(APIView):
"submission_count": item["submission_count"], "submission_count": item["submission_count"],
"accepted_count": item["accepted_count"], "accepted_count": item["accepted_count"],
"correct_rate": f"{rate}%", "correct_rate": f"{rate}%",
"submission_items": submission_items_by_user.get(
username_key, []
),
} }
) )