Skip to content
Commits on Source (35)
......@@ -2,6 +2,9 @@ package fr.ldnr.starWars;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@SpringBootApplication
public class StarWarsApplication {
......@@ -10,4 +13,14 @@ public class StarWarsApplication {
SpringApplication.run(StarWarsApplication.class, args);
}
@Configuration
public static class WebConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
// Définir la page menu.html comme page d'accueil
registry.addViewController("/").setViewName("menu");
}
}
}
......@@ -13,6 +13,7 @@ import fr.ldnr.starWars.enumerations.EtatPilote;
import fr.ldnr.starWars.enumerations.GradePilote;
import fr.ldnr.starWars.enumerations.RacePilote;
import fr.ldnr.starWars.enumerations.ResultatMission;
import fr.ldnr.starWars.enumerations.StatutMission;
import fr.ldnr.starWars.enumerations.TypeChasseur;
import fr.ldnr.starWars.enumerations.TypeMission;
import fr.ldnr.starWars.enumerations.TypePilote;
......@@ -20,6 +21,7 @@ import fr.ldnr.starWars.repositories.AffectationRepository;
import fr.ldnr.starWars.repositories.ChasseurRepository;
import fr.ldnr.starWars.repositories.MissionRepository;
import fr.ldnr.starWars.repositories.PiloteRepository;
import java.util.List;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
......@@ -48,45 +50,65 @@ public class BootstrapData implements CommandLineRunner {
Pilote pilote1 = new Pilote();
pilote1.setNom("MAMA");
pilote1.setPrenom("Apprenti1");
pilote1.setAge_inscription(100);
pilote1.setAge(100);
pilote1.setRace(RacePilote.CHALACTEENS);
pilote1.setType_pilote(TypePilote.APPRENTI);
pilote1.setType(TypePilote.APPRENTI);
pilote1.setGrade(GradePilote.OFFICIER);
pilote1.setEtat(EtatPilote.DISPONIBLE);
Pilote pilote2 = new Pilote();
pilote2.setNom("WOW");
pilote2.setPrenom("Combattant1");
pilote2.setAge_inscription(17);
pilote2.setAge(17);
pilote2.setRace(RacePilote.CHISS);
pilote2.setType_pilote(TypePilote.COMBATTANT);
pilote2.setGrade(GradePilote.CAPITAINE);
pilote2.setEtat_pilote(EtatPilote.DISPONIBLE);
pilote2.setType(TypePilote.APPRENTI);
pilote2.setGrade(GradePilote.OFFICIER);
pilote2.setEtat(EtatPilote.DISPONIBLE);
Pilote pilote3 = new Pilote();
pilote3.setNom("WIW");
pilote3.setPrenom("Combattant2");
pilote3.setAge_inscription(29);
pilote3.setAge(29);
pilote3.setRace(RacePilote.ITHORIENS);
pilote3.setType_pilote(TypePilote.COMBATTANT);
pilote3.setGrade(GradePilote.COMMANDANT);
pilote3.setEtat_pilote(EtatPilote.EN_MISSION);
pilote3.setType(TypePilote.COMBATTANT);
pilote3.setGrade(GradePilote.CAPITAINE);
pilote3.setEtat(EtatPilote.BLESSE);
Pilote pilote4 = new Pilote();
pilote4.setNom("WEW");
pilote4.setPrenom("Combattant3");
pilote4.setAge_inscription(29);
pilote4.setAge(29);
pilote4.setRace(RacePilote.MIRALUKAS);
pilote4.setType_pilote(TypePilote.COMBATTANT);
pilote4.setGrade(GradePilote.LIEUTENANT);
pilote4.setEtat_pilote(EtatPilote.TUE);
pilote4.setType(TypePilote.APPRENTI);
pilote4.setGrade(GradePilote.OFFICIER);
pilote4.setEtat(EtatPilote.MORT_AU_COMBAT);
Pilote pilote5 = new Pilote();
pilote5.setNom("WUW");
pilote5.setPrenom("Combattant4");
pilote5.setAge_inscription(77);
pilote5.setAge(77);
pilote5.setRace(RacePilote.NAGAIS);
pilote5.setType_pilote(TypePilote.COMBATTANT);
pilote5.setType(TypePilote.COMBATTANT);
pilote5.setGrade(GradePilote.OFFICIER);
pilote5.setEtat_pilote(EtatPilote.BLESSE);
pilote5.setEtat(EtatPilote.DISPONIBLE);
Pilote pilote6 = new Pilote();
pilote6.setNom("DUREL");
pilote6.setPrenom("Johad");
pilote6.setAge(22);
pilote6.setRace(RacePilote.HUMAINS);
pilote6.setType(TypePilote.COMBATTANT);
pilote6.setGrade(GradePilote.OFFICIER);
pilote6.setEtat(EtatPilote.BLESSE);
Pilote pilote7 = new Pilote();
pilote7.setNom("DUREL");
pilote7.setPrenom("Johad2");
pilote7.setAge(22);
pilote7.setRace(RacePilote.HUMAINS);
pilote7.setType(TypePilote.APPRENTI);
pilote7.setGrade(GradePilote.OFFICIER);
pilote7.setEtat(EtatPilote.DISPONIBLE);
piloteRepository.save(pilote1);
piloteRepository.save(pilote2);
......@@ -95,41 +117,51 @@ public class BootstrapData implements CommandLineRunner {
piloteRepository.save(pilote5);
Chasseur chasseur1 = new Chasseur();
chasseur1.setType_chasseur(TypeChasseur.X_WING);
chasseur1.setEtat_chasseur(EtatChasseur.OPERATIONNEL);
chasseur1.setType(TypeChasseur.X_WING);
chasseur1.setEtat(EtatChasseur.OPERATIONNEL);
Chasseur chasseur2 = new Chasseur();
chasseur2.setType_chasseur(TypeChasseur.Y_WING);
chasseur2.setEtat_chasseur(EtatChasseur.EN_MISSION);
chasseur2.setType(TypeChasseur.Y_WING);
chasseur2.setEtat(EtatChasseur.EN_MISSION);
Chasseur chasseur3 = new Chasseur();
chasseur3.setType_chasseur(TypeChasseur.X_WING);
chasseur3.setEtat_chasseur(EtatChasseur.MAINTENANCE);
chasseur3.setType(TypeChasseur.X_WING);
chasseur3.setEtat(EtatChasseur.MAINTENANCE);
Chasseur chasseur4 = new Chasseur();
chasseur4.setType_chasseur(TypeChasseur.X_WING);
chasseur4.setEtat_chasseur(EtatChasseur.DETRUIT);
chasseur4.setType(TypeChasseur.X_WING);
chasseur4.setEtat(EtatChasseur.DETRUIT);
Chasseur chasseur5 = new Chasseur();
chasseur5.setType(TypeChasseur.Y_WING);
chasseur5.setEtat(EtatChasseur.OPERATIONNEL);
chasseurRepository.save(chasseur1);
chasseurRepository.save(chasseur2);
chasseurRepository.save(chasseur3);
chasseurRepository.save(chasseur4);
chasseurRepository.save(chasseur5);
Mission mission1 = new Mission();
mission1.setTitre_mission("Mission 1");
mission1.setType_mission(TypeMission.COMBAT);
mission1.setNbHeure(70);
mission1.setTitre("Mission 1");
mission1.setType(TypeMission.COMBAT);
mission1.setNbHeure(200);
mission1.setResultat(ResultatMission.DEFAITE);
mission1.setStatut(StatutMission.TERMINE);
Mission mission2 = new Mission();
mission2.setTitre_mission("Mission 2");
mission2.setType_mission(TypeMission.ENTRAINEMENT);
mission2.setNbHeure(66);
mission2.setResultat(ResultatMission.VICTOIRE);
mission2.setTitre("Mission 2");
mission2.setType(TypeMission.ENTRAINEMENT);
mission2.setNbHeure(50);
mission2.setResultat(ResultatMission.DEFAITE);
mission2.setStatut(StatutMission.TERMINE);
Mission mission3 = new Mission();
mission3.setTitre_mission("Mission 3");
mission3.setType_mission(TypeMission.COMBAT);
mission3.setTitre("Mission 3");
mission3.setType(TypeMission.COMBAT);
mission3.setStatut(StatutMission.TERMINE);
mission3.setNbHeure(600);
mission3.setResultat(ResultatMission.VICTOIRE);
missionRepository.save(mission1);
missionRepository.save(mission2);
......@@ -142,8 +174,43 @@ public class BootstrapData implements CommandLineRunner {
Affectation affectation2 = new Affectation();
affectation2.setMission(mission2);
affectation2.setPilote(pilote5);
affectation2.setPilote(pilote1);
affectation2.setChasseur(chasseur4);
Affectation affectation4 = new Affectation();
affectation4.setMission(mission2);
affectation4.setPilote(pilote4);
affectation4.setChasseur(chasseur1);
Affectation affectation3 = new Affectation();
affectation3.setMission(mission1);
affectation3.setPilote(pilote5);
affectation3.setChasseur(chasseur2);
affectationRepository.save(affectation1);
affectationRepository.save(affectation2);
affectationRepository.save(affectation3);
affectationRepository.save(affectation4);
mission2.getAffectation().add(affectation2);
pilote5.getAffectation().add(affectation2);
chasseur4.getAffectation().add(affectation2);
mission3.getAffectation().add(affectation1);
pilote3.getAffectation().add(affectation1);
chasseur2.getAffectation().add(affectation1);
mission1.getAffectation().add(affectation3);
pilote5.getAffectation().add(affectation3);
chasseur2.getAffectation().add(affectation3);
mission2.getAffectation().add(affectation4);
pilote4.getAffectation().add(affectation4);
chasseur1.getAffectation().add(affectation4);
List list = piloteRepository.findByEtat(EtatPilote.DISPONIBLE);
for (var pilote : list) {
System.out.println("CHECK : " + pilote);
}
}
}
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package fr.ldnr.starWars.calculs;
import fr.ldnr.starWars.domains.Affectation;
import fr.ldnr.starWars.domains.Mission;
import fr.ldnr.starWars.domains.Pilote;
import fr.ldnr.starWars.enumerations.GradePilote;
import fr.ldnr.starWars.enumerations.StatutMission;
import fr.ldnr.starWars.enumerations.TypePilote;
import fr.ldnr.starWars.services.MissionService;
import java.util.HashSet;
import java.util.Set;
/**
*
* @author stag
*/
public class Calculs {
private final MissionService missionService;
public Calculs(MissionService missionService) {
this.missionService = missionService;
}
public int calculNbHeure(Pilote pilote) {
// boucle Set<Affectation> affectation then recuperate Mission then trier Mission par Statut TERMINE
Set<Mission> missions = new HashSet<>(); // Create a set to store missions
int totalNbHeure = 0;
for (Affectation affectation : pilote.getAffectation()) {
Mission mission = affectation.getMission();
if (mission != null && mission.getStatut().equals(StatutMission.TERMINE)) {
missions.add(mission);
// recuperate nbHeure
totalNbHeure += mission.getNbHeure();
}
}
// return total nbHeure
return totalNbHeure;
}
public int calculNbMission() {
int totalNbMission = 0;
return totalNbMission;
}
public GradePilote updateGradePilote() {
return GradePilote.CAPITAINE;
}
public TypePilote updateTypePilote() {
return TypePilote.APPRENTI;
}
}
......@@ -5,7 +5,6 @@
package fr.ldnr.starWars.controllers;
import fr.ldnr.starWars.services.ChasseurService;
import fr.ldnr.starWars.services.MissionService;
import fr.ldnr.starWars.services.PiloteService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
......@@ -16,20 +15,23 @@ import org.springframework.web.bind.annotation.GetMapping;
* @author stag
*/
@Controller
public class FinMissionController {
public class AffectationPiloteChasseurController {
private final MissionService missionService;
private final PiloteService piloteService;
private final ChasseurService chasseurService;
public FinMissionController(MissionService missionService) {
this.missionService = missionService;
public AffectationPiloteChasseurController(
PiloteService piloteService,
ChasseurService chasseurService) {
this.piloteService = piloteService;
this.chasseurService = chasseurService;
}
@GetMapping("/clotureMission")
public String clotureMission(Model model) {
model.addAttribute("resultatMission", missionService.resultatMission());
@GetMapping("/affectation")
public String AffecterPiloteChasseur(Model model) {
model.addAttribute("listePilotes", piloteService.findAll());
model.addAttribute("listeChasseurs", chasseurService.findAll());
return "clotureMission";
return "affectation";
}
}
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package fr.ldnr.starWars.controllers;
import fr.ldnr.starWars.calculs.Calculs;
import fr.ldnr.starWars.domains.Mission;
import fr.ldnr.starWars.domains.Pilote;
import fr.ldnr.starWars.enumerations.ResultatMission;
import fr.ldnr.starWars.enumerations.StatutMission;
import fr.ldnr.starWars.services.MissionService;
import fr.ldnr.starWars.services.PiloteService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
*
* @author stag
*/
@Controller
public class ClotureMission {
private final MissionService missionService;
private final PiloteService piloteService;
public ClotureMission(MissionService missionService, PiloteService piloteService) {
this.missionService = missionService;
this.piloteService = piloteService;
}
@GetMapping("/clotureMission")
public String clotureMission(Model model) {
model.addAttribute("resultatMission", missionService.resultatMission());
model.addAttribute("missions", missionService.findByStatut(StatutMission.ENCOUR));
return "clotureMission";
}
@PostMapping("/clotureMission")
public String nouvelleMissionSubmit(Model model,
@RequestParam(value = "heures") String heures,
@RequestParam(value = "resultats") String resultats,
@RequestParam(value = "missions") String missions) {
model.addAttribute("missions", missionService.findByStatut(StatutMission.ENCOUR));
// recuperate Mission from db by Id
Integer idMission = (Integer.valueOf(missions));
Mission missionRecupere = missionService.findById(idMission);
System.out.println("CHECK PILOTE RECUPEREE : " + missionRecupere);
// remplir nbHeures et resultat au bean de Mission
missionRecupere.setNbHeure(Integer.valueOf(heures));
missionRecupere.setResultat(ResultatMission.valueOf(resultats));
missionRecupere.setStatut(StatutMission.TERMINE);
// persister missionRecupere dans la db
missionService.save(missionRecupere);
Calculs calculs = new Calculs(missionService);
Pilote pilote = piloteService.findById(5);
int nbHeure = calculs.calculNbHeure(pilote);
System.out.println("CHECK nbHeure : " + nbHeure);
return "clotureMission";
}
public void updateGradePilote() {
// test calculNbHeure
// test calculNbHeure
}
}
......@@ -5,7 +5,10 @@
package fr.ldnr.starWars.controllers;
import fr.ldnr.starWars.domains.Pilote;
import fr.ldnr.starWars.enumerations.EtatPilote;
import fr.ldnr.starWars.enumerations.GradePilote;
import fr.ldnr.starWars.enumerations.RacePilote;
import fr.ldnr.starWars.enumerations.TypePilote;
import fr.ldnr.starWars.services.PiloteService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
......@@ -48,7 +51,11 @@ public class InscriptionPiloteController {
pilote.setNom(nom);
pilote.setPrenom(prenom);
pilote.setRace(race2);
pilote.setAge_inscription(age2);
pilote.setAge(age2);
pilote.setEtat(EtatPilote.DISPONIBLE);
pilote.setType(TypePilote.APPRENTI);
pilote.setGrade(GradePilote.OFFICIER);
System.out.println("Check pilote : " + pilote);
piloteService.save(pilote);
return "menu";
......@@ -57,16 +64,3 @@ public class InscriptionPiloteController {
}
}
}
// String prenom = request.getParameter("prenom");
// String nom = request.getParameter("nom");
// RacePilote race = RacePilote.class.cast(request.getParameter("races"));
// Integer age = Integer.parseInt(request.getParameter("age"));
//
// Pilote pilote = new Pilote();
// pilote.setNom(nom);
// pilote.setPrenom(prenom);
// pilote.setRace(race);
// pilote.setAge_inscription(age);
// System.out.println("Check pilote : " + pilote);
// return piloteService.save(pilote);
......@@ -4,11 +4,30 @@
*/
package fr.ldnr.starWars.controllers;
import fr.ldnr.starWars.services.MissionService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
/**
*
* @author stag
* @author vincent
*/
@Controller
public class ListeMissionController {
private final MissionService missionService;
public ListeMissionController(MissionService missionService) {
this.missionService = missionService;
}
@GetMapping("/listeMission")
public String listeMission(Model model) {
model.addAttribute("missions", missionService.findAll());
return "listeMission";
}
......
......@@ -4,10 +4,13 @@
*/
package fr.ldnr.starWars.controllers;
import fr.ldnr.starWars.enumerations.TypePilote;
import fr.ldnr.starWars.services.PiloteService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
*
......@@ -15,6 +18,7 @@ import org.springframework.web.bind.annotation.GetMapping;
*/
@Controller
public class ListePiloteController {
private final PiloteService piloteService;
public ListePiloteController(PiloteService piloteService) {
......@@ -24,6 +28,23 @@ public class ListePiloteController {
@GetMapping("/listePilote")
public String listePilote(Model model) {
model.addAttribute("pilotes", piloteService.findAll());
model.addAttribute("typePilotes", piloteService.listType());
model.addAttribute("gradePilotes", piloteService.listGrade());
model.addAttribute("etatPilotes", piloteService.listEtat());
model.addAttribute("racePilotes", piloteService.listRace());
model.addAttribute("gradePilotes", piloteService.listGrade());
return "listePilote";
}
// @PostMapping("/listePilote")
// public String listePilote(Model model,
// @RequestParam(value = "typePilotes") String types,
// @RequestParam(value = "gradePilotes") String grades,
// @RequestParam(value = "etatPilotes") String etats,
// @RequestParam(value = "racePilotes") String races) {
// model.addAttribute("pilotes", piloteService.listType());
// model.addAttribute("typePilotes", piloteService.findByType(TypePilote.valueOf(types)));
// return "listePilote";
// }
}
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package fr.ldnr.starWars.controllers;
import fr.ldnr.starWars.enumerations.EtatPilote;
import fr.ldnr.starWars.enumerations.TypePilote;
import fr.ldnr.starWars.services.PiloteService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
/**
*
* @author stag
*/
@Controller
public class ListePiloteDisponible {
private final PiloteService piloteService;
public ListePiloteDisponible(PiloteService piloteService) {
this.piloteService = piloteService;
}
@GetMapping("/listePiloteDisponible")
public String listePilote(Model model) {
//model.addAttribute("etats", piloteService.listEtat());
model.addAttribute("pilotes", piloteService.findByEtatAndType(EtatPilote.DISPONIBLE, TypePilote.COMBATTANT));
return "listePiloteDisponible";
}
}
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package fr.ldnr.starWars.controllers;
import fr.ldnr.starWars.enumerations.EtatPilote;
import fr.ldnr.starWars.enumerations.GradePilote;
import fr.ldnr.starWars.enumerations.TypePilote;
import fr.ldnr.starWars.services.PiloteService;
import java.util.ArrayList;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
*
* @author stag
*/
@Controller
public class ListePiloteParEtat {
private final PiloteService piloteService;
public ListePiloteParEtat(PiloteService piloteService) {
this.piloteService = piloteService;
}
@GetMapping("/listePiloteParEtat")
public String listePilote(Model model) {
model.addAttribute("etats", piloteService.listEtat());
return "listePiloteParEtat";
}
@PostMapping("/listePiloteParEtat")
public String listePilote(Model model, @RequestParam(value = "etats") String etats) {
model.addAttribute("etats", piloteService.listEtat());
// if (types.equals("all")) {
// model.addAttribute("pilotes", piloteService.findAll());
// }
model.addAttribute("pilotes", piloteService.findByEtat(EtatPilote.valueOf(etats)));
return "listePiloteParEtat";
}
}
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package fr.ldnr.starWars.controllers;
import fr.ldnr.starWars.enumerations.GradePilote;
import fr.ldnr.starWars.services.PiloteService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
*
* @author stag
*/
@Controller
public class ListePiloteParGrade {
private final PiloteService piloteService;
public ListePiloteParGrade(PiloteService piloteService) {
this.piloteService = piloteService;
}
@GetMapping("/listePiloteParGrade")
public String listePilote(Model model) {
model.addAttribute("grades", piloteService.listGrade());
return "listePiloteParGrade";
}
@PostMapping("/listePiloteParGrade")
public String listePilote(Model model, @RequestParam(value = "grades") String grades) {
model.addAttribute("grades", piloteService.listGrade());
// if (types.equals("all")) {
// model.addAttribute("pilotes", piloteService.findAll());
// }
model.addAttribute("pilotes", piloteService.findByGrade(GradePilote.valueOf(grades)));
return "listePiloteParGrade";
}
}
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package fr.ldnr.starWars.controllers;
import fr.ldnr.starWars.enumerations.TypePilote;
import fr.ldnr.starWars.services.PiloteService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
*
* @author stag
*/
@Controller
public class ListePiloteParType {
private final PiloteService piloteService;
public ListePiloteParType(PiloteService piloteService) {
this.piloteService = piloteService;
}
@GetMapping("/listePiloteParType")
public String listePilote(Model model) {
model.addAttribute("types", piloteService.listType());
return "listePiloteParType";
}
@PostMapping("/listePiloteParType")
public String listePilote(Model model, @RequestParam(value = "types") String types) {
model.addAttribute("types", piloteService.listType());
// if (types.equals("all")) {
// model.addAttribute("pilotes", piloteService.findAll());
// }
model.addAttribute("pilotes", piloteService.findByType(TypePilote.valueOf(types)));
return "listePiloteParType";
}
}
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package fr.ldnr.starWars.controllers;
import fr.ldnr.starWars.enumerations.EtatChasseur;
import fr.ldnr.starWars.services.ChasseurService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
*
* @author Johad
*/
@Controller
public class ModifierEtatChasseurController {
private final ChasseurService chasseurService;
public ModifierEtatChasseurController(ChasseurService chasseurService) {
this.chasseurService = chasseurService;
}
@GetMapping("/modifierEtatChasseur")
public String modifierEtatPilote(Model model) {
model.addAttribute("etatChasseur", chasseurService.listeTypeChasseur());
return "modifierEtatChasseur";
}
@PostMapping("/modifierEtatChasseur")
public String modifierEtatChasseur(@RequestParam Long id_chasseur, Model model,
@RequestParam(value="etat") String etat) {
model.addAttribute("etatChasseur", chasseurService.modifierEtat(id_chasseur, EtatChasseur.valueOf(etat)));
return "modifierEtatChasseur";
}
}
......@@ -5,11 +5,13 @@
package fr.ldnr.starWars.controllers;
import fr.ldnr.starWars.domains.Chasseur;
import fr.ldnr.starWars.enumerations.EtatChasseur;
import fr.ldnr.starWars.enumerations.TypeChasseur;
import fr.ldnr.starWars.services.ChasseurService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
......@@ -26,13 +28,24 @@ public class NouveauChasseurController {
}
@GetMapping("/nouveauChasseur")
public String sauvegarderChasseur(Model model, TypeChasseur typeChasseur) {
public String sauvegarderChasseur(Model model) {
model.addAttribute("type", chasseurService.listeTypeChasseur());
Chasseur nouveauChasseur = new Chasseur();
nouveauChasseur.setType_chasseur(typeChasseur);
System.out.println(typeChasseur);
chasseurService.save(nouveauChasseur);
return "nouveauChasseur";
}
@PostMapping("/nouveauChasseur")
public String sauvegardeChasseur(Model model,
@RequestParam(value = "typeChasseur") String typeChasseur) {
model.addAttribute("type", chasseurService.listeTypeChasseur());
if (!typeChasseur.isEmpty()) {
Chasseur chasseur = new Chasseur();
chasseur.setType(TypeChasseur.valueOf(typeChasseur));
chasseur.setEtat(EtatChasseur.OPERATIONNEL);
chasseurService.save(chasseur);
return "menu";
}
return "nouveauChasseur";
}
......
......@@ -4,10 +4,26 @@
*/
package fr.ldnr.starWars.controllers;
import fr.ldnr.starWars.domains.Affectation;
import fr.ldnr.starWars.domains.Chasseur;
import fr.ldnr.starWars.domains.Mission;
import fr.ldnr.starWars.domains.Pilote;
import fr.ldnr.starWars.enumerations.EtatChasseur;
import fr.ldnr.starWars.enumerations.EtatPilote;
import fr.ldnr.starWars.enumerations.StatutMission;
import fr.ldnr.starWars.enumerations.TypeMission;
import fr.ldnr.starWars.services.AffectationService;
import fr.ldnr.starWars.services.ChasseurService;
import fr.ldnr.starWars.services.MissionService;
import fr.ldnr.starWars.services.PiloteService;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
*
......@@ -16,16 +32,128 @@ import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class NouvelleMissionController {
@Autowired
private final MissionService missionService;
@Autowired
private final PiloteService piloteService;
@Autowired
private final ChasseurService chasseurService;
@Autowired
private final AffectationService affectationService;
// pour stocker les pilotes et les chasseurs temporairement
ArrayList<Pilote> listPiloteTemp = new ArrayList<>();
ArrayList<Chasseur> listChasseurTemp = new ArrayList<>();
Integer idMission;
public NouvelleMissionController(MissionService missionService) {
public NouvelleMissionController(MissionService missionService, PiloteService piloteService, ChasseurService chasseurService, AffectationService affectationService) {
this.missionService = missionService;
this.piloteService = piloteService;
this.chasseurService = chasseurService;
this.affectationService = affectationService;
}
@RequestMapping("/nouvelleMission")
public String getMission(Model model) {
model.addAttribute("typeMissions", missionService.listMission());
model.addAttribute("mission", new Mission());
model.addAttribute("affectationFormVisible", false); // Initially hidden
// Update the table with Pilot and Plane info
List<Pilote> listPilotes = piloteService.findByEtat(EtatPilote.DISPONIBLE);
List<Chasseur> listChasseurs = chasseurService.findByEtat(EtatChasseur.OPERATIONNEL);
model.addAttribute("pilotesDispo", listPilotes);
model.addAttribute("chasseursDispo", listChasseurs);
model.addAttribute("pilotesDispo", listPilotes);
model.addAttribute("chasseursDispo", listChasseurs);
return "nouvelleMission";
}
@PostMapping("/nouvelleMission")
public String nouvelleMissionSubmit(Model model,
@RequestParam(value = "titre") String titre,
@RequestParam(value = "typeMissions") String typeMissions) {
// Save the mission to the database
Mission mission = new Mission();
mission.setTitre(titre);
mission.setType(TypeMission.valueOf(typeMissions));
mission.setStatut(StatutMission.ENCOUR);
System.out.println("CHECK : " + mission);
model.addAttribute("typeMissions", missionService.listMission());
List<Pilote> listPilotes = piloteService.findByEtat(EtatPilote.DISPONIBLE);
List<Chasseur> listChasseurs = chasseurService.findByEtat(EtatChasseur.OPERATIONNEL);
model.addAttribute("pilotesDispo", listPilotes);
model.addAttribute("chasseursDispo", listChasseurs);
missionService.save(mission);
idMission = mission.getIdMission();
//System.out.println("CHECK2 : " + idMission);
// ATTENTION, BUG WHEN WE REFRESH THE PAGE, IT'LL KEEP ADDING THE AFFECTATION (LIKE PUSHING BUTTON AFFECTATION)
return "nouvelleMission";
}
@PostMapping("/affectation")
// Handle Affectation form submission
//@PostMapping("/affectation/{idMission}")
// public String affectationSubmit(@PathVariable Long missionId, @ModelAttribute Affectation affectation, Model model) {
public String affectationSubmit(Model model,
@RequestParam(value = "piloteSelect") String piloteSelect,
@RequestParam(value = "chasseurSelect") String chasseurSelect) {
// Update the table with Pilot and Plane info
model.addAttribute("typeMissions", missionService.listMission());
List<Pilote> listPilotes = piloteService.findByEtat(EtatPilote.DISPONIBLE);
List<Chasseur> listChasseurs = chasseurService.findByEtat(EtatChasseur.OPERATIONNEL);
model.addAttribute("pilotesDispo", listPilotes);
model.addAttribute("chasseursDispo", listChasseurs);
System.out.println("CHECK " + piloteSelect);
// recuperate Pilote from db
Integer idPilote = (Integer.valueOf(piloteSelect));
Pilote piloteRecupere = piloteService.findById(idPilote);
System.out.println("CHECK PILOTE RECUPEREE : " + piloteRecupere);
// recuperate Chasseur from db
Integer idChasseur = (Integer.valueOf(chasseurSelect));
//System.out.println("CHECK chasseurSelect : " + chasseurSelect);
Chasseur chasseurRecupere = chasseurService.findById(idChasseur);
System.out.println("CHECK Chasseur RECUPEREE : " + chasseurRecupere);
// recuperate Chasseur from db
Mission missionRecupere = missionService.findById(idMission);
System.out.println("CHECK Mission RECUPEREE : " + missionRecupere);
//System.out.println("id Mission : " + idMission);
// create et remplir affectation
Affectation affectation = new Affectation();
affectation.setChasseur(chasseurRecupere);
affectation.setPilote(piloteRecupere);
affectation.setMission(missionRecupere);
affectationService.save(affectation);
System.out.println("affectation : " + affectation);
piloteRecupere.getAffectation().add(affectation);
chasseurRecupere.getAffectation().add(affectation);
missionRecupere.getAffectation().add(affectation);
piloteService.save(piloteRecupere);
chasseurService.save(chasseurRecupere);
missionService.save(missionRecupere);
listPiloteTemp.add(piloteRecupere);
listChasseurTemp.add(chasseurRecupere);
System.out.println("check listPiloteTemp : " + listPiloteTemp);
System.out.println("check listChasseurTemp : " + listChasseurTemp);
model.addAttribute("listPiloteTemps", listPiloteTemp);
model.addAttribute("listChasseurTemps", listChasseurTemp);
model.addAttribute("idMission", idMission);
model.addAttribute("missionToDisplay", missionService.findById(idMission));
//
// Affectation a = new Affectation();
// a.setChasseur(chasseurRecupere);
// a.setPilote(piloteRecupere);
// a.setMission(missionRecupere);
// piloteRecupere.getAffectation().add(a);
// System.out.println("apres ajouter affectation : " + piloteRecupere.getAffectation().toString());
//
return "nouvelleMission";
}
......
......@@ -6,6 +6,9 @@ package fr.ldnr.starWars.domains;
import jakarta.persistence.EmbeddedId;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.MapsId;
......@@ -18,30 +21,25 @@ import java.util.Objects;
@Entity
public class Affectation {
@EmbeddedId // to mark the primary key
private AffectationId affectationId;
@Id // to mark the primary key
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer idAffectation;;
@ManyToOne
@MapsId("id_pilote") // to tie to to part of the key
@JoinColumn
private Pilote pilote;
@ManyToOne
@MapsId("id_chasseur")
@JoinColumn
private Chasseur chasseur;
@ManyToOne
@MapsId("id_mission")
@JoinColumn
private Mission mission;
public AffectationId getAffectationId() {
return affectationId;
public Integer getIdAffectation() {
return idAffectation;
}
public void setAffectationId(AffectationId affectationId) {
this.affectationId = affectationId;
public void setIdAffectation(Integer idAffectation) {
this.idAffectation = idAffectation;
}
public Pilote getPilote() {
......@@ -70,8 +68,8 @@ public class Affectation {
@Override
public int hashCode() {
int hash = 5;
hash = 67 * hash + Objects.hashCode(this.affectationId);
int hash = 3;
hash = 59 * hash + Objects.hashCode(this.idAffectation);
return hash;
}
......@@ -87,13 +85,13 @@ public class Affectation {
return false;
}
final Affectation other = (Affectation) obj;
return Objects.equals(this.affectationId, other.affectationId);
return Objects.equals(this.idAffectation, other.idAffectation);
}
@Override
public String toString() {
return "Affectation{" + "affectationId=" + affectationId + ", pilote=" + pilote + ", chasseur=" + chasseur + ", mission=" + mission + '}';
}
// @Override
// public String toString() {
// return "Affectation{" + "idAffectation=" + idAffectation + ", pilote=" + pilote + ", chasseur=" + chasseur + ", mission=" + mission + '}';
// }
}
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package fr.ldnr.starWars.domains;
import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
import java.io.Serializable;
import java.util.Objects;
/**
*
* @author stag
*/
@Embeddable
public class AffectationId implements Serializable {
@Column(name = "id_pilote")
private Integer id_pilote;
@Column(name = "id_chasseur")
private Integer id_chasseur;
@Column(name = "id_mission")
private Integer id_mission;
@Override
public int hashCode() {
int hash = 3;
hash = 47 * hash + Objects.hashCode(this.id_pilote);
hash = 47 * hash + Objects.hashCode(this.id_chasseur);
hash = 47 * hash + Objects.hashCode(this.id_mission);
return hash;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final AffectationId other = (AffectationId) obj;
if (!Objects.equals(this.id_pilote, other.id_pilote)) {
return false;
}
if (!Objects.equals(this.id_chasseur, other.id_chasseur)) {
return false;
}
return Objects.equals(this.id_mission, other.id_mission);
}
}
......@@ -11,6 +11,7 @@ import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.OneToMany;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
......@@ -23,41 +24,41 @@ public class Chasseur {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id_chasseur;
private TypeChasseur type_chasseur;
private EtatChasseur etat_chasseur;
private Integer idChasseur;
private TypeChasseur type;
private EtatChasseur etat;
@OneToMany(mappedBy = "chasseur")
Set<Affectation> affectation;
Set<Affectation> affectation = new HashSet<>();
public Integer getId_chasseur() {
return id_chasseur;
public Integer getIdChasseur() {
return idChasseur;
}
public void setId_chasseur(Integer id_chasseur) {
this.id_chasseur = id_chasseur;
public void setIdChasseur(Integer idChasseur) {
this.idChasseur = idChasseur;
}
public TypeChasseur getType_chasseur() {
return type_chasseur;
public TypeChasseur getType() {
return type;
}
public void setType_chasseur(TypeChasseur type_chasseur) {
this.type_chasseur = type_chasseur;
public void setType(TypeChasseur type) {
this.type = type;
}
public EtatChasseur getEtat_chasseur() {
return etat_chasseur;
public EtatChasseur getEtat() {
return etat;
}
public void setEtat_chasseur(EtatChasseur etat_chasseur) {
this.etat_chasseur = etat_chasseur;
public void setEtat(EtatChasseur etat) {
this.etat = etat;
}
@Override
public int hashCode() {
int hash = 3;
hash = 61 * hash + Objects.hashCode(this.id_chasseur);
hash = 61 * hash + Objects.hashCode(this.idChasseur);
return hash;
}
......@@ -73,17 +74,17 @@ public class Chasseur {
return false;
}
final Chasseur other = (Chasseur) obj;
return Objects.equals(this.id_chasseur, other.id_chasseur);
return Objects.equals(this.idChasseur, other.idChasseur);
}
@Override
public String toString() {
return "Chasseur{" + "id_chasseur="
+ id_chasseur
+ idChasseur
+ ", type_chasseur="
+ type_chasseur
+ type
+ ", etat_chasseur="
+ etat_chasseur + '}';
+ etat + '}';
}
public void setId(String string) {
......
......@@ -5,13 +5,14 @@
package fr.ldnr.starWars.domains;
import fr.ldnr.starWars.enumerations.ResultatMission;
import fr.ldnr.starWars.enumerations.StatutMission;
import fr.ldnr.starWars.enumerations.TypeMission;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.OneToMany;
import java.util.Date;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
......@@ -24,37 +25,38 @@ public class Mission {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id_mission;
private String titre_mission;
private TypeMission type_mission;
private Integer idMission;
private String titre;
private TypeMission type;
private Integer nbHeure;
private ResultatMission resultat;
private StatutMission statut;
@OneToMany(mappedBy = "mission")
Set<Affectation> affectation;
Set<Affectation> affectation = new HashSet<>();
public Integer getId_mission() {
return id_mission;
public Integer getIdMission() {
return idMission;
}
public void setId_mission(Integer id_mission) {
this.id_mission = id_mission;
public void setIdMission(Integer idMission) {
this.idMission = idMission;
}
public String getTitre_mission() {
return titre_mission;
public String getTitre() {
return titre;
}
public void setTitre_mission(String titre_mission) {
this.titre_mission = titre_mission;
public void setTitre(String titre) {
this.titre = titre;
}
public TypeMission getType_mission() {
return type_mission;
public TypeMission getType() {
return type;
}
public void setType_mission(TypeMission type_mission) {
this.type_mission = type_mission;
public void setType(TypeMission type) {
this.type = type;
}
public Integer getNbHeure() {
......@@ -65,6 +67,16 @@ public class Mission {
this.nbHeure = nbHeure;
}
public StatutMission getStatut() {
return statut;
}
public void setStatut(StatutMission statut) {
this.statut = statut;
}
public Set<Affectation> getAffectation() {
return affectation;
}
......@@ -76,7 +88,7 @@ public class Mission {
@Override
public int hashCode() {
int hash = 5;
hash = 73 * hash + Objects.hashCode(this.id_mission);
hash = 73 * hash + Objects.hashCode(this.idMission);
return hash;
}
......@@ -92,7 +104,7 @@ public class Mission {
return false;
}
final Mission other = (Mission) obj;
return Objects.equals(this.id_mission, other.id_mission);
return Objects.equals(this.idMission, other.idMission);
}
public ResultatMission getResultat() {
......@@ -105,7 +117,7 @@ public class Mission {
@Override
public String toString() {
return "Mission{" + "id_mission=" + id_mission + ", titre_mission=" + titre_mission + ", type_mission=" + type_mission + ", nbHeure=" + nbHeure + ", resultat=" + resultat + ", affectation=" + affectation + '}';
return "Mission{" + "id_mission=" + idMission + ", titre_mission=" + titre + ", type_mission=" + type + ", nbHeure=" + nbHeure + ", resultat=" + resultat + ", affectation=" + affectation + '}';
}
}
......@@ -9,10 +9,12 @@ import fr.ldnr.starWars.enumerations.GradePilote;
import fr.ldnr.starWars.enumerations.RacePilote;
import fr.ldnr.starWars.enumerations.TypePilote;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.OneToMany;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
......@@ -25,24 +27,24 @@ public class Pilote {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id_pilote;
private Integer idPilote;
private String nom;
private String prenom;
private Integer age_inscription;
private Integer age;
private RacePilote race;
private TypePilote type_pilote;
private EtatPilote etat_pilote;
private TypePilote type;
private EtatPilote etat;
private GradePilote grade;
@OneToMany(mappedBy = "pilote")
Set<Affectation> affectation;
@OneToMany(mappedBy = "pilote", fetch = FetchType.EAGER)
Set<Affectation> affectation = new HashSet<>();
public Integer getId_pilote() {
return id_pilote;
public Integer getIdPilote() {
return idPilote;
}
public void setId_pilote(Integer id_pilote) {
this.id_pilote = id_pilote;
public void setIdPilote(Integer idPilote) {
this.idPilote = idPilote;
}
public String getNom() {
......@@ -61,12 +63,12 @@ public class Pilote {
this.prenom = prenom;
}
public Integer getAge_inscription() {
return age_inscription;
public Integer getAge() {
return age;
}
public void setAge_inscription(Integer age_inscription) {
this.age_inscription = age_inscription;
public void setAge(Integer age) {
this.age = age;
}
public Set<Affectation> getAffectation() {
......@@ -85,12 +87,12 @@ public class Pilote {
this.race = race;
}
public EtatPilote getEtat_pilote() {
return etat_pilote;
public EtatPilote getEtat() {
return etat;
}
public void setEtat_pilote(EtatPilote etat_pilote) {
this.etat_pilote = etat_pilote;
public void setEtat(EtatPilote etat) {
this.etat = etat;
}
public GradePilote getGrade() {
......@@ -101,18 +103,18 @@ public class Pilote {
this.grade = grade;
}
public TypePilote getType_pilote() {
return type_pilote;
public TypePilote getType() {
return type;
}
public void setType_pilote(TypePilote type_pilote) {
this.type_pilote = type_pilote;
public void setType(TypePilote type) {
this.type = type;
}
@Override
public int hashCode() {
int hash = 7;
hash = 67 * hash + Objects.hashCode(this.id_pilote);
hash = 67 * hash + Objects.hashCode(this.idPilote);
return hash;
}
......@@ -128,12 +130,13 @@ public class Pilote {
return false;
}
final Pilote other = (Pilote) obj;
return Objects.equals(this.id_pilote, other.id_pilote);
return Objects.equals(this.idPilote, other.idPilote);
}
@Override
public String toString() {
return "Pilote{" + "id_pilote=" + id_pilote + ", nom=" + nom + ", prenom=" + prenom + ", age_inscription=" + age_inscription + ", race=" + race + ", etat_pilote=" + etat_pilote + ", grade=" + grade + ", affectation=" + affectation + '}';
return "Pilote{" + "idPilote=" + idPilote + ", nom=" + nom + ", prenom=" + prenom + ", age=" + age + ", race=" + race + ", type=" + type + ", etat=" + etat + ", grade=" + grade + ", affectation=" + affectation + '}';
}
}