ajout calcul score

Springboot
Victor SOULIER 1 year ago
parent 70ff5a6fa2
commit 30647d93e3

@ -8,6 +8,7 @@ import fr.iut.sciencequest.sae.dto.partieKahoot.PartieKahootQuestionDTO;
import fr.iut.sciencequest.sae.dto.partieKahoot.PartieKahootStatusDTO;
import fr.iut.sciencequest.sae.dto.reponse.ReponseValideDTO;
import fr.iut.sciencequest.sae.entities.*;
import fr.iut.sciencequest.sae.exceptions.notFound.ScorePartieKahootJoueurNotFound;
import fr.iut.sciencequest.sae.exceptions.partie.*;
import fr.iut.sciencequest.sae.repositories.QuestionPartieKahootRepository;
import fr.iut.sciencequest.sae.repositories.ReponsePartieKahootRepository;
@ -170,6 +171,13 @@ public class PartieKahootController {
reponsePartie.setJoueur(joueur);
this.reponsePartieKahootRepository.save(reponsePartie);
ScorePartieKahootJoueur scorePartieKahootJoueur = partieKahoot.getScores().stream().filter(socre -> socre.getJoueur().getId() == joueur.getId())
.findFirst()
.orElseThrow(() -> new ScorePartieKahootJoueurNotFound(joueur.getId()));
scorePartieKahootJoueur.setScore(scorePartieKahootJoueur.getScore() + this.partieKahootService.getScore(partieKahoot.getTempsLimiteReponse(), reponse));
this.scorePartieKahootJoueurRepository.save(scorePartieKahootJoueur);
return this.modelMapper.map(reponse, ReponseValideDTO.class);
}

@ -0,0 +1,7 @@
package fr.iut.sciencequest.sae.exceptions.notFound;
public class ScorePartieKahootJoueurNotFound extends EntityNotFoundException{
public ScorePartieKahootJoueurNotFound(int id) {
super("ScorePartieKahootJoueur", id);
}
}

@ -1,9 +1,6 @@
package fr.iut.sciencequest.sae.services;
import fr.iut.sciencequest.sae.entities.PartieKahoot;
import fr.iut.sciencequest.sae.entities.Question;
import fr.iut.sciencequest.sae.entities.QuestionPartieKahoot;
import fr.iut.sciencequest.sae.entities.Status;
import fr.iut.sciencequest.sae.entities.*;
import fr.iut.sciencequest.sae.exceptions.DuplicatedIdException;
import fr.iut.sciencequest.sae.exceptions.notFound.PartieKahootNotFoundException;
import fr.iut.sciencequest.sae.exceptions.partie.PartyNotStartedException;
@ -11,6 +8,8 @@ import fr.iut.sciencequest.sae.repositories.*;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.Duration;
import java.time.temporal.ChronoUnit;
import java.util.Calendar;
import java.util.Date;
import java.util.Objects;
@ -102,4 +101,12 @@ public class PartieKahootService {
return partieKahoot;
}
public int getScore(Calendar tempsLimiteReponse,Reponse reponse){
if(!reponse.getEstValide()) return 0;
Calendar actualDate = Calendar.getInstance();
actualDate.setTime(new Date());
long secondsPourRepondre = ChronoUnit.SECONDS.between(actualDate.toInstant(), tempsLimiteReponse.toInstant());
return Math.round(1f/secondsPourRepondre*PartieKahootService.TEMPS_REPONSE_QUESTION);
}
}

Loading…
Cancel
Save