修复题目ac计数器重复计算的问题

This commit is contained in:
virusdefender 2016-06-11 23:43:31 +08:00
parent e040f3141c
commit 61fe5675e0
No known key found for this signature in database
GPG Key ID: 1686FB5677979E61
2 changed files with 8 additions and 0 deletions

View File

@ -82,5 +82,9 @@ class UserProfile(models.Model):
self.submission_number += 1
self.save(update_fields=["submission_number"])
def minus_accepted_problem_number(self):
self.accepted_problem_number -= 1
self.save(update_fields=["accepted_problem_number"])
class Meta:
db_table = "user_profile"

View File

@ -138,6 +138,10 @@ class JudgeDispatcher(object):
if problems_status["problems"].get(str(problem.id), -1) != 1 and self.submission.result == result["accepted"]:
user.userprofile.add_accepted_problem_number()
# 之前状态是ac, 现在不是ac了 需要用户ac题目数量计数器-1, 否则上一个逻辑胡重复增加ac计数器
if problems_status["problems"].get(str(problem.id), -1) == 1 and self.submission.result != result["accepted"]:
user.userprofile.minus_accepted_problem_number()
if self.submission.result == result["accepted"]:
problem.add_ac_number()
problems_status["problems"][str(problem.id)] = 1