This commit is contained in:
MAIZY Amaury 2025-04-29 14:17:14 +02:00
parent b4218b9e4c
commit a73a34f29a
5 changed files with 49 additions and 10 deletions

View file

@ -1,13 +1,7 @@
package fr.clelia.avis.initialisation;
import fr.clelia.avis.business.Editeur;
import fr.clelia.avis.business.Jeu;
import fr.clelia.avis.business.Joueur;
import fr.clelia.avis.business.Plateforme;
import fr.clelia.avis.repository.EditeurRepository;
import fr.clelia.avis.repository.PlateformeRepository;
import fr.clelia.avis.repository.JeuRepository;
import fr.clelia.avis.repository.JoueurRepository;
import fr.clelia.avis.business.*;
import fr.clelia.avis.repository.*;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.event.ApplicationReadyEvent;
@ -32,6 +26,8 @@ public class AjoutDonneesInitiales {
private JeuRepository jeuRepository;
@Autowired
private JoueurRepository joueurRepository;
@Autowired
private ModerateurRepository moderateurRepository;
@EventListener(ApplicationReadyEvent.class)
public void init() {
@ -40,7 +36,9 @@ public class AjoutDonneesInitiales {
ajouterPlateformes();
ajouterJeux();
ajouterJoueurs();
ajouteurModerateur();
afficherStatistiques();
// afficherJeuxSurPlateforme("Steam");
}
private void afficherStatistiques() {
@ -48,6 +46,7 @@ public class AjoutDonneesInitiales {
.forEach(System.out::println);
plateformeRepository.findByNomStartsWith("Nintendo")
.forEach(System.out::println);
// editeurRepository.findEditeurWithoutJeux();
}
private void ajouterEditeurs() {
@ -209,4 +208,15 @@ public class AjoutDonneesInitiales {
}
private void ajouteurModerateur() {
moderateurRepository.save(new Moderateur("Fx", "Fx@soprasteria.com", "12345", "+33777777777"));
}
private void afficherJeuxSurPlateforme(String nomPlateforme) {
List<Jeu> jeux = jeuRepository.findJeuxByPlateforme(nomPlateforme);
System.out.println("Jeux disponibles sur " + nomPlateforme + " :");
jeux.forEach(System.out::println);
}
}

View file

@ -19,4 +19,12 @@ public interface EditeurRepository extends JpaRepository<Editeur, Long> {
List<Editeur> findByLogoStartsWith(@Param("logo") String logo);
Editeur findByNom(String nom);
@Query("""
SELECT e
FROM Editeur e
LEFT JOIN e.jeux j
WHERE j IS NULL
""")
List<Editeur> findEditeurWithoutJeux();
}

View file

@ -2,7 +2,17 @@ package fr.clelia.avis.repository;
import fr.clelia.avis.business.Jeu;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface JeuRepository extends JpaRepository<Jeu, Long> {
@Query(
"""
SELECT j
FROM Jeu j
WHERE :plateforme member Of j.plateformes
"""
)
List<Jeu> findJeuxByPlateforme(String plateforme);
}

View file

@ -2,6 +2,10 @@ package fr.clelia.avis.repository;
import fr.clelia.avis.business.Joueur;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
public interface JoueurRepository extends JpaRepository<Joueur, Long> {
}

View file

@ -1,7 +1,14 @@
package fr.clelia.avis.repository;
import fr.clelia.avis.business.Utilisateur;
import jakarta.transaction.Transactional;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UtilisateurRepository extends JpaRepository<Utilisateur, Long> {
long countByEmailEndsWith(String email);
@Transactional
long deleteByMotDePasse(String motDePasse);
}