diff --git a/pom.xml b/pom.xml index 8dfb52e0a06c654d391bf3c7bfbf0a2e4b992e5d..b56ea8baa24302c1ffef8a954e7556af54819267 100644 --- a/pom.xml +++ b/pom.xml @@ -59,9 +59,14 @@ <artifactId>json</artifactId> <version>20190722</version> </dependency> - - - </dependencies> + <dependency> + <groupId>com.google.code.gson</groupId> + <artifactId>gson</artifactId> + <version>2.8.6</version> + </dependency> + + + </dependencies> <build> <plugins> diff --git a/src/main/java/isima/f2/RamassagePoubleDepotApplication.java b/src/main/java/isima/f2/RamassagePoubleDepotApplication.java index 30e81ab104214aef3fbd46c699de1508162031f5..bfb8e6d2de28905b7fe65830c3407e0bc6866c35 100644 --- a/src/main/java/isima/f2/RamassagePoubleDepotApplication.java +++ b/src/main/java/isima/f2/RamassagePoubleDepotApplication.java @@ -1,5 +1,6 @@ package isima.f2; +import isima.f2.services.ThreadSimulation; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -8,6 +9,9 @@ public class RamassagePoubleDepotApplication { public static void main(String[] args) { SpringApplication.run(RamassagePoubleDepotApplication.class, args); + System.out.println("=======================>Le nom du thread principal est " + Thread.currentThread().getName()); + ThreadSimulation t = new ThreadSimulation(); + t.start(); } } diff --git a/src/main/java/isima/f2/contrats/IPoubelle.java b/src/main/java/isima/f2/contrats/IPoubelle.java index 59f832f4114ac97ce85a735c7d8b33600de88f70..f36c38946e880e6212c8fc60587c6c2ea341eb30 100644 --- a/src/main/java/isima/f2/contrats/IPoubelle.java +++ b/src/main/java/isima/f2/contrats/IPoubelle.java @@ -12,4 +12,6 @@ public interface IPoubelle { public Optional<Poubelle> getPoubelle(Long id); public List<Poubelle> getPoubelles(); public void viderPoubelle(long id); + public void updateContenuPoubelle(long id, double contenu); + public void creerPoubelle(Poubelle nouvellePoubelle); } diff --git a/src/main/java/isima/f2/controllers/PoubelleController.java b/src/main/java/isima/f2/controllers/PoubelleController.java index 2a6153d7cbc6ccfb584c38443b1c250121a35c47..2ebcb3570af443a090e0f52ea4c95852b69ad16b 100644 --- a/src/main/java/isima/f2/controllers/PoubelleController.java +++ b/src/main/java/isima/f2/controllers/PoubelleController.java @@ -3,20 +3,16 @@ package isima.f2.controllers; import java.util.List; import java.util.Map; +import com.google.gson.Gson; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import isima.f2.model.Poubelle; import isima.f2.services.ImpPoubelle; @RestController @RequestMapping("poubelles") +@CrossOrigin(origins = "http://localhost:4200") public class PoubelleController { @Autowired @@ -45,4 +41,20 @@ public class PoubelleController { public String testpost(@RequestParam Map <String, String> allParams) { return "Les paramètres sont"+ allParams.entrySet (); } + + @PostMapping ("/nouvelle") + @ResponseBody + public String creerPoubelle(@RequestParam Map <String, String> allParams) { + String poubelleJSON = allParams.get("poubelle"); + poubelleJSON = poubelleJSON.replace("Poubelle",""); + System.out.println("Poubellllllllllllleeeeeeeee ******** : " + poubelleJSON); + Gson gson = new Gson(); + Poubelle nouvellePoubelle = gson.fromJson(poubelleJSON, Poubelle.class); + //update poubelle id ===> last id + 1 + nouvellePoubelle.setId((long)(poubelles.getPoubelles().size()+1)); + //nouvellePoubelle.setId(6L); + System.out.println("**************** " + nouvellePoubelle.toString() + "****************"); + poubelles.creerPoubelle(nouvellePoubelle); + return "La nouvelle poubelle a été créée avec succes"; + } } diff --git a/src/main/java/isima/f2/dao/IPoubelleDAO.java b/src/main/java/isima/f2/dao/IPoubelleDAO.java index 1e279ae4dca69b997d0e4d9d480e107cb120f664..77d48da772bafcb4ecd6bd3463f8360600f24d38 100644 --- a/src/main/java/isima/f2/dao/IPoubelleDAO.java +++ b/src/main/java/isima/f2/dao/IPoubelleDAO.java @@ -15,4 +15,10 @@ public interface IPoubelleDAO extends JpaRepository<Poubelle, Long> { @Query("UPDATE Poubelle p SET p.contenu = 0 WHERE p.id = :id") int updatePoubelleSetCapacityZero(@Param("id") long id); + + @Modifying + @Transactional + @Query("UPDATE Poubelle p SET p.contenu = :contenu WHERE p.id = :id") + int updatePoubelleSetCapacity(@Param("id") long id, @Param("contenu") double contenu); + } diff --git a/src/main/java/isima/f2/services/ImpPoubelle.java b/src/main/java/isima/f2/services/ImpPoubelle.java index 70457c65a141c7824213d7807f3446dfa4ae1933..e5cc182230c0773b60eb4905c8175f4c3444c90e 100644 --- a/src/main/java/isima/f2/services/ImpPoubelle.java +++ b/src/main/java/isima/f2/services/ImpPoubelle.java @@ -14,7 +14,11 @@ import isima.f2.model.Poubelle; public class ImpPoubelle implements IPoubelle{ @Autowired - IPoubelleDAO poubelleDAO ; + IPoubelleDAO poubelleDAO ; + + public ImpPoubelle(){ + + } @Override public Poubelle ajouterPoubelle(Poubelle poubelle) { @@ -33,7 +37,7 @@ public class ImpPoubelle implements IPoubelle{ @Override public Optional<Poubelle> getPoubelle(Long id) { - return null; + return poubelleDAO.findById(id); } @Override @@ -46,4 +50,13 @@ public class ImpPoubelle implements IPoubelle{ poubelleDAO.updatePoubelleSetCapacityZero(id); } + @Override + public void updateContenuPoubelle(long id, double contenu) { + poubelleDAO.updatePoubelleSetCapacity(id,contenu); + } + + @Override + public void creerPoubelle(Poubelle nouvellePoubelle) { + poubelleDAO.save(nouvellePoubelle); + } } diff --git a/src/main/java/isima/f2/services/ThreadSimulation.java b/src/main/java/isima/f2/services/ThreadSimulation.java new file mode 100644 index 0000000000000000000000000000000000000000..421e1805faa9a132c7b84fbf60177b89f35d7f90 --- /dev/null +++ b/src/main/java/isima/f2/services/ThreadSimulation.java @@ -0,0 +1,34 @@ +package isima.f2.services; + +import isima.f2.model.Poubelle; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Optional; + +public class ThreadSimulation extends Thread { + @Autowired + ImpPoubelle poubelleService; + + public ThreadSimulation() { + super(); + } + + public void run() { + long nbGenere; + /*int nbPoubelles = poubelleService.getPoubelles().size(); + System.out.println("Le nombre de poubelle dans la base est : " + nbPoubelles);*/ + while (true){ + //Generation du nombre aléatoire + nbGenere = (long)(Math.random() * ((5 - 1) + 1)) + 1; + //Optional<Poubelle> p = poubelleService.getPoubelle(nbGenere); + //System.out.println("Poubelle : " + p.toString()); + System.out.println("=================================> Nombrre generé : " + nbGenere); + //poubelleService.updateContenuPoubelle(); + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } +}