|
|
@@ -3,6 +3,7 @@ package cn.seecoder.data.server.service.Impl;
|
|
|
import cn.seecoder.data.server.domain.CoderDao;
|
|
|
import cn.seecoder.data.server.repository.CoderRepository;
|
|
|
import cn.seecoder.data.server.service.CoderService;
|
|
|
+import cn.seecoder.data.server.utils.Utils;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -27,18 +28,18 @@ public class CoderServiceImpl implements CoderService {
|
|
|
final double MAX_SCORE = 100;
|
|
|
|
|
|
@Override
|
|
|
- public double getCoderGrade(Integer userId) {
|
|
|
+ public double getCoderGrade(Integer userId, LocalDateTime start, LocalDateTime end) {
|
|
|
try {
|
|
|
AtomicReference<Double> grade = new AtomicReference<>(0.0);
|
|
|
AtomicReference<Double> sumGrade = new AtomicReference<>(0.0);
|
|
|
- List<CoderDao> coderInfoByUser = coderRepository.findByUserId(userId);
|
|
|
+ List<CoderDao> coderInfoByUser = coderRepository.findByUserIdAndLastCommitAtBetween(userId,start,end);
|
|
|
coderInfoByUser.forEach(info -> {
|
|
|
double weight = 1.0;
|
|
|
Integer score = info.getScore();
|
|
|
Integer problemId = info.getProblemId();
|
|
|
Integer examId = info.getExamId();
|
|
|
LocalDateTime lastCommitAt = info.getSubmitAt();
|
|
|
- List<CoderDao> coderDaoList = coderRepository.findByExamIdAndProblemIdOrderByLastCommitAt(examId, problemId);
|
|
|
+ List<CoderDao> coderDaoList = coderRepository.findByExamIdAndProblemIdAndLastCommitAtBetweenOrderByLastCommitAt(examId, problemId,start,end);
|
|
|
|
|
|
ArrayList<LocalDateTime> commitTimeQuartiles = new ArrayList<>(3);
|
|
|
commitTimeQuartiles.add(coderDaoList.get(coderDaoList.size()/4).getSubmitAt());
|
|
|
@@ -61,4 +62,9 @@ public class CoderServiceImpl implements CoderService {
|
|
|
return 0.0;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public double getCoderGrade(Integer userId) {
|
|
|
+ return getCoderGrade(userId, Utils.getSmallStartTime(),LocalDateTime.now());
|
|
|
+ }
|
|
|
}
|