|
@@ -26,6 +26,7 @@ import org.dromara.system.service.score.IScoreDataService;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 成绩Service业务层处理
|
|
* 成绩Service业务层处理
|
|
@@ -125,6 +126,19 @@ public class ScoreDataServiceImpl implements IScoreDataService {
|
|
scoreDataStudentBo.setAvg(String.valueOf(zf / scoreDataDetailBoList.size()));
|
|
scoreDataStudentBo.setAvg(String.valueOf(zf / scoreDataDetailBoList.size()));
|
|
ScoreDataStudent scoreDataStudent = MapstructUtils.convert(scoreDataStudentBo, ScoreDataStudent.class);
|
|
ScoreDataStudent scoreDataStudent = MapstructUtils.convert(scoreDataStudentBo, ScoreDataStudent.class);
|
|
scoreDataStudent.setScoreId(scoreId);
|
|
scoreDataStudent.setScoreId(scoreId);
|
|
|
|
+ //成绩排序
|
|
|
|
+ scoreDataStudentBoList = scoreDataStudentBoList.stream().sorted(Comparator.comparingLong(ScoreDataStudentBo::getZongfen).reversed()).collect(Collectors.toList());
|
|
|
|
+ int index = 0;// 排名
|
|
|
|
+ double lastScore = -1;// 最近一次的分
|
|
|
|
+ for (int i = 0; i < scoreDataStudentBoList.size(); i++) {
|
|
|
|
+ ScoreDataStudentBo studentBo = scoreDataStudentBoList.get(i);
|
|
|
|
+ if (Double.compare(lastScore, studentBo.getZongfen())!=0){
|
|
|
|
+ // 如果成绩和上一名的成绩不相同,那么排名+1
|
|
|
|
+ lastScore = studentBo.getZongfen();
|
|
|
|
+ index++;
|
|
|
|
+ }
|
|
|
|
+ studentBo.setScoreSort(index+"");
|
|
|
|
+ }
|
|
scoreDataStudentMapper.insert(scoreDataStudent);
|
|
scoreDataStudentMapper.insert(scoreDataStudent);
|
|
scoreDataDetailMapper.insertBatch(MapstructUtils.convert(scoreDataDetailBoList, ScoreDataDetail.class));
|
|
scoreDataDetailMapper.insertBatch(MapstructUtils.convert(scoreDataDetailBoList, ScoreDataDetail.class));
|
|
}
|
|
}
|