Files
Exam/competition/rank_views.py
2026-01-09 18:28:10 +08:00

32 lines
998 B
Python

# -*- coding: utf-8 -*-
from account.models import Profile
from competition.models import CompetitionKindInfo
from utils.response import json_response
from utils.decorators import check_login
from utils.redis.rrank import get_user_rank, get_rank
from utils.errors import UserError, CompetitionError
@check_login
def get_my_rank(request):
uid = request.GET.get('uid', '')
kind_id = request.GET.get('kind_id', '')
try:
profile = Profile.objects.get(uid=uid)
except Profile.DoesNotExist:
return json_response(*UserError.UserNotFound)
try:
kind_info = CompetitionKindInfo.objects.get(kind_id=kind_id)
except CompetitionKindInfo.DoesNotExist:
return json_response(*CompetitionError.CompetitionNotFound)
return json_response(200, 'OK', {
'time': get_user_rank(kind_id, uid).get('time', 0),
'score': get_user_rank(kind_id, uid).get('score', 0),
'rank': get_rank(kind_id, uid)
})