Registreer TournamentPlayer gelijk bij inschrijven
All checks were successful
Gitea/swiss-backend/pipeline/head This commit looks good

This commit is contained in:
2025-09-01 23:00:10 +02:00
parent 06b112305b
commit 2cc188540b
5 changed files with 48 additions and 12 deletions

View File

@@ -95,7 +95,7 @@ public class TestController {
var eventIdHE = tournament.getEvents().stream().filter(event -> event.getType().equals("HE")).findFirst().get().getId();
var eventIdDE = tournament.getEvents().stream().filter(event -> event.getType().equals("DE")).findFirst().get().getId();
for (var player : getPlayers()) {
for (var player : getPlayers().subList(0, 31)) {
var tournamentRegistrationDto = new TournamentRegistrationDto();
tournamentRegistrationDto.setId(tournament.getId());
var eventRegistrationDto = new EventRegistrationDto();
@@ -162,7 +162,7 @@ public class TestController {
private TournamentDto getTournament() {
var tournamentDto = new TournamentDto();
tournamentDto.setName("Testtoernooi");
tournamentDto.setName("Testtoernooi aangemaakt op " + LocalDate.now().format(DateTimeFormatter.ofPattern("dd-MM-yyyy")));
tournamentDto.setDate("14-12-2024");
tournamentDto.setStatus("UPCOMING");
tournamentDto.setMaxEvents(2L);

View File

@@ -31,7 +31,7 @@ public class TournamentPlayer extends AbstractEntity {
private boolean counting;
private Long counts;
private Long counts = 0L;
public void incrementCounts() {
this.counts++;

View File

@@ -1,14 +1,11 @@
package nl.connectedit.swiss.service;
import lombok.RequiredArgsConstructor;
import nl.connectedit.swiss.domain.entity.Player;
import nl.connectedit.swiss.domain.entity.Registration;
import nl.connectedit.swiss.domain.entity.Tournament;
import nl.connectedit.swiss.domain.entity.*;
import nl.connectedit.swiss.dto.EventRegistrationDto;
import nl.connectedit.swiss.repository.RegistrationRepository;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.ArrayList;
@Service
@RequiredArgsConstructor
@@ -23,6 +20,7 @@ public class RegistrationService {
if (!eventRegistration.isRegistered()) { // remove any existing registration
event.getRegistrations().removeIf(registration -> registration.getPlayer().equals(player));
removeEventFromTournamentPlayer(tournament, player, event);
} else {
var optionalExistingPlayerRegistration = event.getRegistrations().stream()
.filter(registration -> registration.getPlayer().equals(player))
@@ -32,14 +30,15 @@ public class RegistrationService {
newRegistration.setTournament(tournament);
newRegistration.setEvent(event);
newRegistration.setPlayer(player);
if (eventRegistration.getPartner() != null){
if (eventRegistration.getPartner() != null) {
var partner = playerService.findPlayerById(eventRegistration.getPartner());
newRegistration.setPartner(partner);
}
event.addRegistration(newRegistration);
addEventToTournamentPlayer(tournament, player, event);
} else { // change existing registration
var existingPlayerRegistration = optionalExistingPlayerRegistration.get();
if (eventRegistration.getPartner() != null){
if (eventRegistration.getPartner() != null) {
var partner = playerService.findPlayerById(eventRegistration.getPartner());
existingPlayerRegistration.setPartner(partner);
} else {
@@ -50,4 +49,34 @@ public class RegistrationService {
tournamentService.saveTournament(tournament);
}
private void removeEventFromTournamentPlayer(Tournament tournament, Player player, Event event) {
var tournamentPlayer = findOrAddTournamentPlayer(tournament, player);
tournamentPlayer.getEvents().removeIf(eventType -> eventType.equals(event.getType().name()));
}
private void addEventToTournamentPlayer(Tournament tournament, Player player, Event event) {
var tournamentPlayer = findOrAddTournamentPlayer(tournament, player);
tournamentPlayer.getEvents().add(event.getType().name());
}
private TournamentPlayer findOrAddTournamentPlayer(Tournament tournament, Player player) {
for (var tournamentPlayer : tournament.getTournamentPlayers()) {
if (tournamentPlayer.getPlayer().getId().equals(player.getId())) {
return tournamentPlayer;
}
}
return registerTournamentPlayer(tournament, player);
}
private TournamentPlayer registerTournamentPlayer(Tournament tournament, Player player) {
var tournamentPlayer = new TournamentPlayer();
tournamentPlayer.setTournament(tournament);
tournamentPlayer.setPlayer(player);
tournamentPlayer.setEvents(new ArrayList<>());
tournament.getTournamentPlayers().add(tournamentPlayer);
return tournamentPlayer;
}
}

View File

@@ -31,7 +31,7 @@ public class TournamentDrawService {
}
}
registerTournamentPlayers(tournament);
// registerTournamentPlayers(tournament);
tournament.setStatus(TournamentStatus.DRAWN);
@@ -78,7 +78,7 @@ public class TournamentDrawService {
}
}
tournament.getTournamentPlayers().clear();
// tournament.getTournamentPlayers().clear();
tournament.setStatus(TournamentStatus.DIVIDED);