更新总排名计算方式

This commit is contained in:
caoqianming 2021-06-23 11:20:43 +08:00
parent a13c3fd55e
commit 8c99202755
1 changed files with 6 additions and 2 deletions

View File

@ -21,7 +21,7 @@ from django.contrib.auth.hashers import check_password, make_password
from django.contrib.sessions.models import Session
from django.core import serializers
from django.core.serializers.json import DjangoJSONEncoder
from django.db.models import Avg, Count, F, Q, Sum
from django.db.models import Avg, Count, F, Q, Sum, Max
from django.forms.models import model_to_dict
from django.http import (HttpResponse, HttpResponseRedirect, JsonResponse,
request)
@ -6710,7 +6710,11 @@ def apiexamtestrate(req):
companyid = req.GET.get('companyid')
alltest = ExamTest.objects.filter(usecomps__contains=','+str(companyid)+',').exclude(nousecomps__contains=','+str(companyid)+',')
allexamtestdetail = ExamTestDetail.objects.filter(examtest__in=alltest,testnum__gte=1)
objs = allexamtestdetail.values('user__userid','user__name','user__headimgurl','user__ubelongpart__partname').annotate(totalscore=Sum('score'),totaltook=Sum('took'),testnum=Count('user__userid')).order_by('-totalscore','totaltook')
objs = allexamtestdetail.values('user__userid','user__name','user__headimgurl','user__ubelongpart__partname').annotate(totalscore=Sum('score'),totaltook=Sum('took'),testnum=Count('user__userid'), maxscore = Max('score'))
# if req.GET.get('type', None) == 'max':
objs = objs.order_by('-maxscore','testnum', '-totalscore')
# else:
# objs = objs.order_by('-totalscore','totaltook')
total = objs.count()
objslist = list(objs)
for i in objslist: