fix: club guest mixing in result #111
@ -615,21 +615,32 @@ public class ResultService {
|
|||||||
new ArrayList<>(), membreModel)
|
new ArrayList<>(), membreModel)
|
||||||
)));
|
)));
|
||||||
} else {
|
} else {
|
||||||
return clubRepository.findById(id).chain(clubModel ->
|
return cardRepository.list("competition.uuid = ?1", uuid)
|
||||||
|
.chain(cards -> clubRepository.findById(id).chain(clubModel ->
|
||||||
registerRepository.list("competition.uuid = ?1 AND membre.club = ?2", uuid, clubModel)
|
registerRepository.list("competition.uuid = ?1 AND membre.club = ?2", uuid, clubModel)
|
||||||
.chain(registers -> matchRepository.list(
|
.chain(registers -> matchRepository.list(
|
||||||
"SELECT DISTINCT m FROM MatchModel m LEFT JOIN m.c1_guest.comb c1g LEFT JOIN m.c2_guest.comb c2g " +
|
"SELECT DISTINCT m FROM MatchModel m LEFT JOIN m.c1_guest.comb c1g LEFT JOIN m.c2_guest.comb c2g " +
|
||||||
"WHERE m.category.compet.uuid = ?1 AND (m.c1_id IN ?2 OR m.c2_id IN ?2 OR c1g IN ?2 OR c2g IN ?2)",
|
"WHERE m.category.compet.uuid = ?1 AND (m.c1_id IN ?2 OR m.c2_id IN ?2 OR c1g IN ?2 OR c2g IN ?2)",
|
||||||
uuid, registers.stream().map(RegisterModel::getMembre).toList())
|
uuid, registers.stream().map(RegisterModel::getMembre).toList())
|
||||||
.chain(matchModels -> cardRepository.list("competition.uuid = ?1", uuid)
|
.map(matchModels -> matchModels.stream()
|
||||||
.map(cards ->
|
.map(m -> new MatchModelExtend(m, cards)))
|
||||||
|
.chain(s -> competitionGuestRepository.list(
|
||||||
|
"competition.uuid = ?1 AND club = ?2", uuid, clubModel.getName())
|
||||||
|
.chain(guests -> matchRepository.list(
|
||||||
|
"SELECT DISTINCT m FROM MatchModel m LEFT JOIN m.c1_guest.guest c1g LEFT JOIN m.c2_guest.guest c2g " +
|
||||||
|
"WHERE m.category.compet.uuid = ?1 AND (m.c1_guest IN ?2 OR m.c2_guest IN ?2 OR c1g IN ?2 OR c2g IN ?2)",
|
||||||
|
uuid, guests)
|
||||||
|
.map(mm -> new Pair<>(guests, Stream.concat(s, mm.stream()
|
||||||
|
.map(m -> new MatchModelExtend(m, cards)))
|
||||||
|
.distinct().toList()))
|
||||||
|
))
|
||||||
|
.map(p ->
|
||||||
getClubArray2(clubModel.getName(),
|
getClubArray2(clubModel.getName(),
|
||||||
registers.stream().map(o -> (CombModel) o.getMembre())
|
Stream.concat(
|
||||||
.toList(),
|
registers.stream().map(RegisterModel::getMembre),
|
||||||
matchModels.stream()
|
p.getKey().stream()
|
||||||
.map(m -> new MatchModelExtend(m, cards)).toList(),
|
).toList(),
|
||||||
registers, membreModel)
|
p.getValue(), registers, membreModel)
|
||||||
|
|
||||||
))));
|
))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -776,27 +787,38 @@ public class ResultService {
|
|||||||
.collect().asList();
|
.collect().asList();
|
||||||
})
|
})
|
||||||
.map(categoryData -> {
|
.map(categoryData -> {
|
||||||
HashMap<Long, ClubClassement> clubMap = new HashMap<>();
|
HashMap<String, ClubClassement> clubMap = new HashMap<>();
|
||||||
|
|
||||||
|
categoryData.forEach(c -> c.getClassement().stream().map(ResultCategoryData.ClassementData::comb)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.distinct()
|
||||||
|
.map(comb -> {
|
||||||
|
if (comb instanceof MembreModel membreModel2) {
|
||||||
|
return (membreModel2.getClub() != null) ? membreModel2.getClub().getName() : "";
|
||||||
|
} else if (comb instanceof CompetitionGuestModel guestModel) {
|
||||||
|
return guestModel.getClub();
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
})
|
||||||
|
.filter(s -> s != null && !s.isBlank() && !s.equals("Team"))
|
||||||
|
.distinct()
|
||||||
|
.forEach(clubName -> clubMap.putIfAbsent(clubName, new ClubClassement(clubName))));
|
||||||
|
|
||||||
categoryData.forEach(c -> c.getClassement().forEach(classementData -> {
|
categoryData.forEach(c -> c.getClassement().forEach(classementData -> {
|
||||||
if (classementData.rank() > 3)
|
if (classementData.rank() > 3)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (classementData.comb() != null) {
|
if (classementData.comb() != null) {
|
||||||
long clubId = 0L;
|
|
||||||
String clubName = "";
|
String clubName = "";
|
||||||
if (classementData.comb() instanceof MembreModel membreModel2) {
|
if (classementData.comb() instanceof MembreModel membreModel2) {
|
||||||
clubId = (membreModel2.getClub() != null) ? membreModel2.getClub().getId() : 0;
|
|
||||||
clubName = (membreModel2.getClub() != null) ? membreModel2.getClub().getName() : "";
|
clubName = (membreModel2.getClub() != null) ? membreModel2.getClub().getName() : "";
|
||||||
} else if (classementData.comb() instanceof CompetitionGuestModel guestModel) {
|
} else if (classementData.comb() instanceof CompetitionGuestModel guestModel) {
|
||||||
if (guestModel.getClub() != null && !guestModel.getClub().isBlank())
|
|
||||||
clubId = getClubTempId(guestModel.getClub());
|
|
||||||
clubName = guestModel.getClub();
|
clubName = guestModel.getClub();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (clubId != 0) {
|
if (clubName != null && !clubName.isBlank()
|
||||||
clubMap.putIfAbsent(clubId, new ClubClassement(clubName));
|
&& !clubName.equals("Team") && clubMap.containsKey(clubName)) {
|
||||||
ClubClassement entity = clubMap.get(clubId);
|
ClubClassement entity = clubMap.get(clubName);
|
||||||
entity.score[classementData.rank() - 1]++;
|
entity.score[classementData.rank() - 1]++;
|
||||||
entity.tt_score += 4 - classementData.rank();
|
entity.tt_score += 4 - classementData.rank();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
"chargement": "Chargement",
|
"chargement": "Chargement",
|
||||||
"classement": "Classement",
|
"classement": "Classement",
|
||||||
"classementClub": "Classement club",
|
"classementClub": "Classement club",
|
||||||
"classementDesClub": "Classement des club",
|
"classementDesClub": "Classement des clubs",
|
||||||
"classementFinal": "Classement final",
|
"classementFinal": "Classement final",
|
||||||
"club": "Club",
|
"club": "Club",
|
||||||
"combattant": "Combattant",
|
"combattant": "Combattant",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user