From b1fb83530b7105e4aa73e4101727dea945eb01c2 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 29 八月 2025 21:48:15 +0800
Subject: [PATCH] bug修改
---
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java | 64 ++++++++++++++++++++++++++++---
1 files changed, 57 insertions(+), 7 deletions(-)
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java
index b22c1d7..0b03835 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java
@@ -30,6 +30,7 @@
import java.math.MathContext;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
+import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
@@ -193,6 +194,7 @@
Integer winIntegral = Integer.valueOf(null == map.get("winIntegral") ? "0" : map.get("winIntegral").toString());
Integer drawIntegral = Integer.valueOf(null == map.get("drawIntegral") ? "0" : map.get("drawIntegral").toString());
Integer loseIntegral = Integer.valueOf(null == map.get("loseIntegral") ? "0" : map.get("loseIntegral").toString());
+ Integer participationIntegral = Integer.valueOf(null == map.get("participationIntegral") ? "0" : map.get("participationIntegral").toString());
//学员
if(participantType == 1){
TStudent tStudent = studentClient.queryById(participantId.intValue());
@@ -208,7 +210,7 @@
}
}
map.put("totalSession", num);
- map.put("totalIntegral", winIntegral+drawIntegral+loseIntegral);
+ map.put("totalIntegral", winIntegral+drawIntegral+loseIntegral+participationIntegral);
map.put("winRate", "0");
for (Map<String, Object> objectMap : lists1) {
Integer participantType1 = Integer.valueOf(objectMap.get("participantType").toString());
@@ -244,7 +246,6 @@
// }
// });
// }
-
List<WorldCupRankVo> list = new ArrayList<>();
for (int i = 0; i < mapList.size(); i++) {
@@ -301,6 +302,7 @@
if(i == 19 && b){
break;
}
+
//排名前20的数据添加完成后且包含自己,需要将自己找出来后添加到21位
if(i > 19 && !b){
if(worldCupRank.getIsStudent().compareTo(participantType) == 0 && worldCupRank.getId().compareTo(participantId) == 0){
@@ -341,6 +343,11 @@
}
// 排序
list= list.stream().sorted(Comparator.comparing(WorldCupRankVo::getIntegral).reversed().thenComparing(WorldCupRankVo::getTotalSession).reversed().thenComparing(WorldCupRankVo::getWinRate).reversed()).collect(Collectors.toList());
+ int a=1;
+ for (WorldCupRankVo worldCupRankVo : list) {
+ worldCupRankVo.setRank(a);
+ a++;
+ }
return list;
}
@@ -666,7 +673,7 @@
}
map.put("startTime", sdf.format(cupCompetitor.getStartTime()));
map.put("score", cupCompetitor.getOurScore() + ":" + cupCompetitor.getOpponentScore());
- map.put("matchResult", cupCompetitor.getMatchResult() == 1 ? "胜" : cupCompetitor.getMatchResult() == 0 ? "平" : "负");
+ map.put("matchResult", cupCompetitor.getMatchResult() == 1 ? "胜" : (cupCompetitor.getMatchResult() == 0 ? "平" : "负"));
map.put("blue", cupCompetitor.getParticipant() == 1 ? cupCompetitor.getOurScore() : cupCompetitor.getOpponentScore());
map.put("red", cupCompetitor.getParticipant() == 2 ? cupCompetitor.getOurScore() : cupCompetitor.getOpponentScore());
mapList.add(map);
@@ -796,7 +803,7 @@
cupCompetitor.setLoseIntegral(worldCup.getLoseIntegral());
}
//如果之前平了,现在赢了,需要扣减积分
- if(cupCompetitor.getMatchResult() == 0 && blue.compareTo(red) >0){
+ if(cupCompetitor.getMatchResult() == 0 && blue>red){
//先扣除
SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo();
vo1.setAppUserId(cupCompetitor.getAppUserId());
@@ -1044,19 +1051,62 @@
@Override
public List<WorldCupCodeListVo> getWorldCupCodeListId(Integer worldCupId) {
List<WorldCupCompetitor> worldCupCompetitors = this.baseMapper.selectList(new LambdaQueryWrapper<WorldCupCompetitor>().eq(WorldCupCompetitor::getWorldCupId, worldCupId)
- .le(WorldCupCompetitor::getStartTime, new Date()).ge(WorldCupCompetitor::getEndTime, new Date()));
+ .and(w->w.isNull(WorldCupCompetitor::getEndTime).or(s->s.le(WorldCupCompetitor::getStartTime, new Date()).ge(WorldCupCompetitor::getEndTime, new Date()))))
+ ;
List<WorldCupCodeListVo> worldCupCodeListVos = new ArrayList<>();
// worldCupCompetitors 通过code分组
Map<String, List<WorldCupCompetitor>> map = worldCupCompetitors.stream().collect(Collectors.groupingBy(WorldCupCompetitor::getCode));
-
+ LocalDate now = LocalDate.now();
for (Map.Entry<String, List<WorldCupCompetitor>> entry : map.entrySet()) {
WorldCupCodeListVo worldCupCodeListVo = new WorldCupCodeListVo();
String code = entry.getKey();
List<WorldCupCompetitor> value = entry.getValue();
+ // 蓝队
+ List<WorldCupCompetitor> collect1 = value.stream().filter(item -> item.getParticipant() == 1).collect(Collectors.toList());
+ ArrayList<UserVo> objects = new ArrayList<>();
+ for (WorldCupCompetitor competitor : collect1) {
+ UserVo userVo = new UserVo();
+ TStudent tStudent = studentClient.queryById(competitor.getParticipantId().intValue());
+ userVo.setUserName(tStudent.getName());
+ userVo.setAvatar(tStudent.getHeadImg());
+ // 当前日期和生日计算年龄
+ Date birthday = tStudent.getBirthday();
+
+ if(birthday!=null){
+ int age = now.getYear() - birthday.getYear();
+ userVo.setAge(age);
+ }
+ objects.add(userVo);
+ }
+ worldCupCodeListVo.setBlue(objects);
+ // 红队
+ List<WorldCupCompetitor> collect2 = value.stream().filter(item -> item.getParticipant() == 2).collect(Collectors.toList());
+ ArrayList<UserVo> objects1 = new ArrayList<>();
+ for (WorldCupCompetitor competitor : collect2) {
+ UserVo userVo = new UserVo();
+ TStudent tStudent = studentClient.queryById(competitor.getParticipantId().intValue());
+ userVo.setUserName(tStudent.getName());
+ userVo.setAvatar(tStudent.getHeadImg());
+ // 当前日期和生日计算年龄
+ Date birthday = tStudent.getBirthday();
+
+ if(birthday!=null){
+ int age = now.getYear() - birthday.getYear();
+ userVo.setAge(age);
+ }
+ objects1.add(userVo);
+ }
+ worldCupCodeListVo.setRed(objects1);
+
worldCupCodeListVo.setCode(code);
worldCupCodeListVo.setStartTime(value.get(0).getStartTime());
- worldCupCodeListVo.setWorldCupId(value.get(0).getWorldCupId());
+ Integer worldCupId1 = value.get(0).getWorldCupId();
+ WorldCup byId = worldCupService.getById(worldCupId1);
+ worldCupCodeListVo.setWorldCupId(worldCupId1);
+ if(byId!=null){
+ worldCupCodeListVo.setName(byId.getName());
+ }
List<Long> collect = value.stream().map(WorldCupCompetitor::getId).collect(Collectors.toList());
worldCupCodeListVo.setCustoms(collect);
worldCupCodeListVos.add(worldCupCodeListVo);
--
Gitblit v1.7.1