Skip to content

Commit 3675b05

Browse files
Fixing empty scores are count on classification.
1 parent 3becc15 commit 3675b05

File tree

7 files changed

+59
-14
lines changed

7 files changed

+59
-14
lines changed

backend/kendo-tournament-core/src/main/java/com/softwaremagico/kt/core/controller/AchievementController.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -818,10 +818,10 @@ private List<Achievement> generateTerminatorAchievement(Tournament tournament) {
818818
duels.forEach(duel -> competitors.addAll(duel.getCompetitors()));
819819

820820
duels.forEach(duel -> {
821-
if (duel.getCompetitor1Score().size() < Duel.POINTS_TO_WIN) {
821+
if (duel.getCompetitor1ScoreValue() < Duel.POINTS_TO_WIN) {
822822
competitors.remove(duel.getCompetitor1());
823823
}
824-
if (duel.getCompetitor2Score().size() < Duel.POINTS_TO_WIN) {
824+
if (duel.getCompetitor2ScoreValue() < Duel.POINTS_TO_WIN) {
825825
competitors.remove(duel.getCompetitor2());
826826
}
827827
});
@@ -876,19 +876,19 @@ private List<Achievement> generateJuggernautAchievement(Tournament tournament) {
876876

877877
duels.forEach(duel -> {
878878
//Max score competitor 1.
879-
if (duel.getCompetitor1Score().size() < Duel.POINTS_TO_WIN) {
879+
if (duel.getCompetitor1ScoreValue() < Duel.POINTS_TO_WIN) {
880880
competitors.remove(duel.getCompetitor1());
881881
}
882882
//No hits against him
883-
if (!duel.getCompetitor2Score().isEmpty()) {
883+
if (duel.getCompetitor2ScoreValue() > 0) {
884884
competitors.remove(duel.getCompetitor1());
885885
}
886886
//Max score competitor 2.
887-
if (duel.getCompetitor2Score().size() < Duel.POINTS_TO_WIN) {
887+
if (duel.getCompetitor2ScoreValue() < Duel.POINTS_TO_WIN) {
888888
competitors.remove(duel.getCompetitor2());
889889
}
890890
//No hits against him
891-
if (!duel.getCompetitor1Score().isEmpty()) {
891+
if (duel.getCompetitor1ScoreValue() > 0) {
892892
competitors.remove(duel.getCompetitor2());
893893
}
894894
});

backend/kendo-tournament-core/src/main/java/com/softwaremagico/kt/core/controller/FightController.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,4 +274,10 @@ public List<FightDTO> getBy(Participant participant) {
274274
return convertAll(getProvider().getBy(Collections.singletonList(participant)));
275275
}
276276

277+
public boolean scoresGoesFromCompetitorsNameToCenter(int tournamentId) {
278+
return getProvider().scoresGoesFromCompetitorsNameToCenter(tournamentProvider.get(tournamentId)
279+
.orElseThrow(() -> new TournamentNotFoundException(getClass(), "No tournament found with id '" + tournamentId + "',",
280+
ExceptionType.INFO)));
281+
}
282+
277283
}

backend/kendo-tournament-core/src/main/java/com/softwaremagico/kt/core/controller/models/FightDTO.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -183,9 +183,9 @@ public Integer getDrawDuels(ParticipantDTO competitor) {
183183
public Integer getScore(ParticipantDTO competitor) {
184184
int score = 0;
185185
score += getDuels().stream().filter(duel ->
186-
(Objects.equals(duel.getCompetitor1(), competitor))).mapToInt(duel -> duel.getCompetitor1Score().size()).sum();
186+
(Objects.equals(duel.getCompetitor1(), competitor))).mapToInt(DuelDTO::getCompetitor1ScoreValue).sum();
187187
score += getDuels().stream().filter(duel ->
188-
(Objects.equals(duel.getCompetitor2(), competitor))).mapToInt(duel -> duel.getCompetitor2Score().size()).sum();
188+
(Objects.equals(duel.getCompetitor2(), competitor))).mapToInt(DuelDTO::getCompetitor2ScoreValue).sum();
189189
return score;
190190
}
191191

@@ -200,11 +200,11 @@ public Integer getScore(TeamDTO team) {
200200
}
201201

202202
public Integer getScoreTeam1() {
203-
return getDuels().stream().mapToInt(duel -> duel.getCompetitor1Score().size()).sum();
203+
return getDuels().stream().mapToInt(DuelDTO::getCompetitor1ScoreValue).sum();
204204
}
205205

206206
public Integer getScoreTeam2() {
207-
return getDuels().stream().mapToInt(duel -> duel.getCompetitor2Score().size()).sum();
207+
return getDuels().stream().mapToInt(DuelDTO::getCompetitor2ScoreValue).sum();
208208
}
209209

210210
public Integer getDuelsWon(ParticipantDTO competitor) {

backend/kendo-tournament-core/src/main/java/com/softwaremagico/kt/core/providers/FightProvider.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import com.softwaremagico.kt.persistence.entities.Tournament;
2929
import com.softwaremagico.kt.persistence.repositories.FightRepository;
3030
import com.softwaremagico.kt.persistence.repositories.GroupRepository;
31+
import com.softwaremagico.kt.persistence.values.Score;
3132
import org.springframework.beans.factory.annotation.Autowired;
3233
import org.springframework.stereotype.Service;
3334

@@ -161,4 +162,31 @@ public List<Fight> findByTournamentAndShiaijo(Tournament tournament, int shiaijo
161162
return getRepository().findByTournamentAndShiaijo(tournament, shiaijo);
162163
}
163164

165+
public boolean scoresGoesFromCompetitorsNameToCenter(Tournament tournament) {
166+
final List<Fight> fights = getRepository().findByTournament(tournament);
167+
for (Fight fight : fights) {
168+
if (fight.getDuels() != null) {
169+
for (Duel duel : fight.getDuels()) {
170+
if (scoresGoesFromCompetitorsNameToCenter(duel.getCompetitor1Score())) {
171+
return true;
172+
}
173+
if (scoresGoesFromCompetitorsNameToCenter(duel.getCompetitor2Score())) {
174+
return true;
175+
}
176+
}
177+
}
178+
}
179+
return false;
180+
}
181+
182+
private boolean scoresGoesFromCompetitorsNameToCenter(List<Score> scores) {
183+
if (scores.size() == 1) {
184+
return false;
185+
}
186+
//Scores are set at index 1 before index 0;
187+
return (scores.size() > 1
188+
&& scores.get(0) == null
189+
&& scores.get(1) != null && scores.get(1) != Score.EMPTY);
190+
}
191+
164192
}

backend/kendo-tournament-persistence/src/main/java/com/softwaremagico/kt/persistence/entities/Duel.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import java.util.ArrayList;
4747
import java.util.HashSet;
4848
import java.util.List;
49+
import java.util.Objects;
4950
import java.util.Set;
5051

5152
@Entity

backend/kendo-tournament-persistence/src/main/java/com/softwaremagico/kt/persistence/entities/Fight.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -209,9 +209,9 @@ public void generateDuels(String createdBy) {
209209
public Integer getScore(Participant competitor) {
210210
int score = 0;
211211
score += getDuels().stream().filter(duel ->
212-
(Objects.equals(duel.getCompetitor1(), competitor))).mapToInt(duel -> duel.getCompetitor1Score().size()).sum();
212+
(Objects.equals(duel.getCompetitor1(), competitor))).mapToInt(Duel::getCompetitor1ScoreValue).sum();
213213
score += getDuels().stream().filter(duel ->
214-
(Objects.equals(duel.getCompetitor2(), competitor))).mapToInt(duel -> duel.getCompetitor2Score().size()).sum();
214+
(Objects.equals(duel.getCompetitor2(), competitor))).mapToInt(Duel::getCompetitor2ScoreValue).sum();
215215
return score;
216216
}
217217

@@ -272,11 +272,11 @@ public Integer getScore(Team team) {
272272
}
273273

274274
public Integer getScoreTeam1() {
275-
return getDuels().stream().mapToInt(duel -> duel.getCompetitor1Score().stream().filter(Objects::nonNull).toList().size()).sum();
275+
return getDuels().stream().mapToInt(Duel::getCompetitor1ScoreValue).sum();
276276
}
277277

278278
public Integer getScoreTeam2() {
279-
return getDuels().stream().mapToInt(duel -> duel.getCompetitor2Score().stream().filter(Objects::nonNull).toList().size()).sum();
279+
return getDuels().stream().mapToInt(Duel::getCompetitor2ScoreValue).sum();
280280
}
281281
}
282282

backend/kendo-tournament-rest/src/main/java/com/softwaremagico/kt/rest/services/FightServices.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,4 +202,14 @@ public List<FightDTO> getByCompetitor(@Parameter(description = "Id of the compet
202202
}
203203

204204

205+
@PreAuthorize("hasAnyAuthority(@securityService.viewerPrivilege, @securityService.editorPrivilege, @securityService.adminPrivilege,"
206+
+ " @securityService.participantPrivilege)")
207+
@Operation(summary = "Checks if the scores are added from the competitor's name, to the center of the sheet.", security = @SecurityRequirement(name = "bearerAuth"))
208+
@GetMapping(value = "/scores-from-name-to-center/tournaments/{tournamentId}", produces = MediaType.APPLICATION_JSON_VALUE)
209+
public boolean scoresGoesFromCompetitorsNameToCenter(@Parameter(description = "Id of an existing tournament", required = true)
210+
@PathVariable("tournamentId") Integer tournamentId,
211+
HttpServletRequest request) {
212+
return getController().scoresGoesFromCompetitorsNameToCenter(tournamentId);
213+
}
214+
205215
}

0 commit comments

Comments
 (0)