|
@@ -421,40 +421,42 @@ public class TaskService extends Thread {
|
|
|
memberAssessmentInfoListNew.add(memberAssessmentInf);
|
|
|
}
|
|
|
List<MemberAssessmentInfo> collect = memberAssessmentInfoListNew.stream().sorted(Comparator.comparing(MemberAssessmentInfo::getTotalScore).reversed()).collect(Collectors.toList());
|
|
|
+ //计算排名
|
|
|
+ int index = 0;
|
|
|
+ //最近的一次分数
|
|
|
+ Long lastScore = -1L;
|
|
|
+ //执行任务
|
|
|
+ for (int i = 0; i < collect.size(); i++) {
|
|
|
+ MemberAssessmentInfo memberAssessmentInfoNew = collect.get(i);
|
|
|
+ Long totalScore = memberAssessmentInfoNew.getTotalScore();
|
|
|
+ if (!lastScore.equals(totalScore)) {
|
|
|
+ lastScore = totalScore;
|
|
|
+ index++;
|
|
|
+ }
|
|
|
+ memberAssessmentInfoNew.setRank(String.valueOf(index));
|
|
|
+ }
|
|
|
//开启多线程处理
|
|
|
//获取线程池中的@bean
|
|
|
ThreadPoolTaskExecutor executor = SpringUtils.getBean("threadPoolTaskExecutor");
|
|
|
//定义每个线程处理多少用户
|
|
|
- Integer count = 50;
|
|
|
+ int count = 50;
|
|
|
//根据用户数确定需要多少个线程
|
|
|
List<List<MemberAssessmentInfo>> lists = BranchThreadUtils.splitList(collect, count);
|
|
|
for (List<MemberAssessmentInfo> list : lists) {
|
|
|
executor.execute(() -> {
|
|
|
System.out.println("线程" + Thread.currentThread().getId() + "启动");
|
|
|
- //计算排名
|
|
|
- int index = 0;
|
|
|
- //最近的一次分数
|
|
|
- Long lastScore = 0L;
|
|
|
- //执行任务
|
|
|
- for (int i = 0; i < list.size(); i++) {
|
|
|
- MemberAssessmentInfo memberAssessmentInfoNew = list.get(i);
|
|
|
- Long totalScore = memberAssessmentInfoNew.getTotalScore();
|
|
|
- if (!lastScore.equals(totalScore)) {
|
|
|
- lastScore = totalScore;
|
|
|
- index++;
|
|
|
- }
|
|
|
- memberAssessmentInfoNew.setRank(String.valueOf(index));
|
|
|
+ for (MemberAssessmentInfo assessmentInfo : list) {
|
|
|
//判断是更新还是新增
|
|
|
if (memberAssessmentInfoList != null && memberAssessmentInfoList.size() > 0) {
|
|
|
//更新
|
|
|
- memberAssessmentInfoMapper.updateMemberAssessmentInfo(memberAssessmentInfoNew);
|
|
|
+ memberAssessmentInfoMapper.updateMemberAssessmentInfo(assessmentInfo);
|
|
|
} else {
|
|
|
- memberAssessmentInfoMapper.insertMemberAssessmentInfo(memberAssessmentInfoNew);
|
|
|
+ memberAssessmentInfoMapper.insertMemberAssessmentInfo(assessmentInfo);
|
|
|
}
|
|
|
MemberInfo memberInfo = new MemberInfo();
|
|
|
- memberInfo.setUserId(memberAssessmentInfoNew.getUserId());
|
|
|
- memberInfo.setScore(memberAssessmentInfoNew.getTotalScore());
|
|
|
- memberInfo.setRanking(memberAssessmentInfoNew.getRank());
|
|
|
+ memberInfo.setUserId(assessmentInfo.getUserId());
|
|
|
+ memberInfo.setScore(assessmentInfo.getTotalScore());
|
|
|
+ memberInfo.setRanking(assessmentInfo.getRank());
|
|
|
//更新委员主表
|
|
|
memberInfoMapper.updateMemberInfoByUserId(memberInfo);
|
|
|
}
|