From ed8a5939a2849ca6fc3e83800075a4edf332cbdb Mon Sep 17 00:00:00 2001 From: Parpaillax Date: Tue, 30 Apr 2024 09:00:59 +0200 Subject: [PATCH 1/3] test --- .../fr/eni/enchere/bll/RetraitService.java | 2 +- .../eni/enchere/bll/RetraitServiceImpl.java | 4 +- .../controllers/ArticleController.java | 6 +-- .../fr/eni/enchere/dal/RetraitRepository.java | 1 + .../enchere/dal/RetraitRepositoryImpl.java | 24 +++++++++ .../resources/i18n/messages_en.properties | 4 ++ .../resources/i18n/messages_fr.properties | 4 +- .../static/images/articles/no-data.jpg | Bin 0 -> 16096 bytes src/main/resources/templates/accueil.html | 2 +- src/main/resources/templates/article.html | 4 ++ src/main/resources/templates/editArticle.html | 49 ++++++++++++++++-- 11 files changed, 89 insertions(+), 11 deletions(-) create mode 100644 src/main/resources/static/images/articles/no-data.jpg diff --git a/src/main/java/fr/eni/enchere/bll/RetraitService.java b/src/main/java/fr/eni/enchere/bll/RetraitService.java index 0015f0c..da0340b 100644 --- a/src/main/java/fr/eni/enchere/bll/RetraitService.java +++ b/src/main/java/fr/eni/enchere/bll/RetraitService.java @@ -3,6 +3,6 @@ package fr.eni.enchere.bll; import fr.eni.enchere.bo.Retrait; public interface RetraitService { - Retrait retraitByNumarticle(int id); + Retrait findByNumArticle(int id); void setRetrait(Retrait retrait); } diff --git a/src/main/java/fr/eni/enchere/bll/RetraitServiceImpl.java b/src/main/java/fr/eni/enchere/bll/RetraitServiceImpl.java index 7b41b69..c7e31ae 100644 --- a/src/main/java/fr/eni/enchere/bll/RetraitServiceImpl.java +++ b/src/main/java/fr/eni/enchere/bll/RetraitServiceImpl.java @@ -14,8 +14,8 @@ public class RetraitServiceImpl implements RetraitService { } @Override - public Retrait retraitByNumarticle(int id) { - return null; + public Retrait findByNumArticle(int idArticle) { + return retraitRepository.findByNumArticle(idArticle); } @Override diff --git a/src/main/java/fr/eni/enchere/controllers/ArticleController.java b/src/main/java/fr/eni/enchere/controllers/ArticleController.java index 4e90ad0..2dbf051 100644 --- a/src/main/java/fr/eni/enchere/controllers/ArticleController.java +++ b/src/main/java/fr/eni/enchere/controllers/ArticleController.java @@ -62,7 +62,7 @@ public class ArticleController { Article article = articleService.findArticleById(id); UserProfil user = userService.utilisateurById(article.getUtilisateur()); Categorie cate = categorieService.findCategorieById(article.getNumCategorie()); - Retrait retrait = retraitService.retraitByNumarticle(article.getId()); + Retrait retrait = retraitService.findByNumArticle(article.getId()); article.setPseudoUtilisateur(user.getPseudo()); List lastEnchere = this.enchereService.enchereByArticle(article.getId()); Optional maxMontantEnchere = lastEnchere.stream() @@ -231,9 +231,9 @@ public class ArticleController { @GetMapping("/edit") public String edit(Model model, @RequestParam()int id) { Article article = this.articleService.findArticleById(id); - Retrait retrait = this.retraitService.retraitByNumarticle(id); - System.out.println(article.getNom()); + Retrait retrait = this.retraitService.findByNumArticle(id); + System.out.println(retrait.getRue()); model.addAttribute("article", article); model.addAttribute("retrait", retrait); model.addAttribute("categories", this.categorieService.findAllCategories()); diff --git a/src/main/java/fr/eni/enchere/dal/RetraitRepository.java b/src/main/java/fr/eni/enchere/dal/RetraitRepository.java index 84f575b..4097073 100644 --- a/src/main/java/fr/eni/enchere/dal/RetraitRepository.java +++ b/src/main/java/fr/eni/enchere/dal/RetraitRepository.java @@ -4,5 +4,6 @@ import fr.eni.enchere.bo.Retrait; public interface RetraitRepository { Retrait findById(int id); + Retrait findByNumArticle(int idArticle); void save(Retrait retrait); } diff --git a/src/main/java/fr/eni/enchere/dal/RetraitRepositoryImpl.java b/src/main/java/fr/eni/enchere/dal/RetraitRepositoryImpl.java index fc0a9e7..49718b3 100644 --- a/src/main/java/fr/eni/enchere/dal/RetraitRepositoryImpl.java +++ b/src/main/java/fr/eni/enchere/dal/RetraitRepositoryImpl.java @@ -3,12 +3,16 @@ package fr.eni.enchere.dal; import fr.eni.enchere.bo.Retrait; import org.springframework.context.annotation.Primary; import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.jdbc.support.GeneratedKeyHolder; import org.springframework.jdbc.support.KeyHolder; import org.springframework.stereotype.Repository; +import java.sql.ResultSet; +import java.sql.SQLException; + @Repository @Primary public class RetraitRepositoryImpl implements RetraitRepository { @@ -21,11 +25,31 @@ public class RetraitRepositoryImpl implements RetraitRepository { this.namedJdbcTemplate = namedJdbcTemplate; } + public class RetraitRowMapper implements RowMapper { + + @Override + public Retrait mapRow(ResultSet rs, int rowNum) throws SQLException { + Retrait retrait = new Retrait(); + retrait.setRue(rs.getString("rue")); + retrait.setVille(rs.getString("ville")); + retrait.setCode_postale(rs.getString("code_postal")); + retrait.setNumArticle(rs.getInt("no_article")); + return retrait; + } + } + @Override public Retrait findById(int id) { return null; } + @Override + public Retrait findByNumArticle(int numArticle) { + String sql = "select * from RETRAITS where no_article = ?"; + Retrait retrait = jdbcTemplate.queryForObject(sql, new RetraitRowMapper(), numArticle); + return retrait; + } + @Override public void save(Retrait retrait) { String sqlIsUpdate = "SELECT COUNT(*) FROM RETRAITS WHERE no_article = :numArticle"; diff --git a/src/main/resources/i18n/messages_en.properties b/src/main/resources/i18n/messages_en.properties index bf564d1..55bde26 100644 --- a/src/main/resources/i18n/messages_en.properties +++ b/src/main/resources/i18n/messages_en.properties @@ -112,3 +112,7 @@ article.details.label.amount = Amount article.details.button.bid = Bid article.details.address.unknown = Unknown address article.details.validation.amount.required = Bid amount is required. + +edit.article.title = Edit my article +edit.article.update = Edit +edit.article.back = Back diff --git a/src/main/resources/i18n/messages_fr.properties b/src/main/resources/i18n/messages_fr.properties index 99c630e..602209c 100644 --- a/src/main/resources/i18n/messages_fr.properties +++ b/src/main/resources/i18n/messages_fr.properties @@ -116,4 +116,6 @@ article.details.address.unknown = Adresse inconnue article.details.validation.amount.required = Le montant de l'ench\u00E8re est requis. -edit.article.title = Modifier mon article \ No newline at end of file +edit.article.title = Modifier mon article +edit.article.update = Modifier +edit.article.back = Retour \ No newline at end of file diff --git a/src/main/resources/static/images/articles/no-data.jpg b/src/main/resources/static/images/articles/no-data.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a3630c98d34ac4441a3cbcc19f1ad556c111ad9d GIT binary patch literal 16096 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 Rs(Jta73KavxfH&b_&+}vdtCqk literal 0 HcmV?d00001 diff --git a/src/main/resources/templates/accueil.html b/src/main/resources/templates/accueil.html index c07b3ed..00ee2bc 100644 --- a/src/main/resources/templates/accueil.html +++ b/src/main/resources/templates/accueil.html @@ -122,7 +122,7 @@
- Image de l'article + Image de l'article
diff --git a/src/main/resources/templates/article.html b/src/main/resources/templates/article.html index cfdecd9..74391d6 100644 --- a/src/main/resources/templates/article.html +++ b/src/main/resources/templates/article.html @@ -57,6 +57,10 @@ +
+ + +
diff --git a/src/main/resources/templates/editArticle.html b/src/main/resources/templates/editArticle.html index 5423f26..0850f71 100644 --- a/src/main/resources/templates/editArticle.html +++ b/src/main/resources/templates/editArticle.html @@ -8,16 +8,59 @@

+
- +
+
- + + +
+ +
+ -
Veuillez sélectionner une catégorie.
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +

Retrait

+ +
+ + +
+ +
+ + +
+ +
+ +
From d13ad6510241e19171f8b9fd9ec6df5f79542768 Mon Sep 17 00:00:00 2001 From: Parpaillax Date: Tue, 30 Apr 2024 12:17:59 +0200 Subject: [PATCH 2/3] update article + retrait --- .../fr/eni/enchere/bll/ArticleService.java | 2 +- .../eni/enchere/bll/ArticleServiceImpl.java | 4 +- .../fr/eni/enchere/bll/RetraitService.java | 1 + .../eni/enchere/bll/RetraitServiceImpl.java | 5 + .../controllers/ArticleController.java | 123 +++++++++++++++++- .../fr/eni/enchere/dal/ArticleRepository.java | 2 +- .../enchere/dal/ArticleRepositoryImpl.java | 14 +- .../fr/eni/enchere/dal/RetraitRepository.java | 1 + .../enchere/dal/RetraitRepositoryImpl.java | 17 ++- src/main/resources/templates/article.html | 10 +- src/main/resources/templates/editArticle.html | 45 ++++--- 11 files changed, 194 insertions(+), 30 deletions(-) diff --git a/src/main/java/fr/eni/enchere/bll/ArticleService.java b/src/main/java/fr/eni/enchere/bll/ArticleService.java index f87c72b..15bddee 100644 --- a/src/main/java/fr/eni/enchere/bll/ArticleService.java +++ b/src/main/java/fr/eni/enchere/bll/ArticleService.java @@ -13,7 +13,7 @@ public interface ArticleService { Article findArticleById(int id); int saveArticle(Article article); void deleteArticle(int id); - void updateArticle(int id); + int updateArticle(Article article); List
findArticleByTitle(String title); Page
searchArticlePageable(SearchArticleCritere critere, Pageable pageable); } diff --git a/src/main/java/fr/eni/enchere/bll/ArticleServiceImpl.java b/src/main/java/fr/eni/enchere/bll/ArticleServiceImpl.java index 7f22302..bacc1ba 100644 --- a/src/main/java/fr/eni/enchere/bll/ArticleServiceImpl.java +++ b/src/main/java/fr/eni/enchere/bll/ArticleServiceImpl.java @@ -38,8 +38,8 @@ public class ArticleServiceImpl implements ArticleService{ } @Override - public void updateArticle(int id) { - + public int updateArticle(Article article) { + return articleRepository.updateArticle(article); } @Override diff --git a/src/main/java/fr/eni/enchere/bll/RetraitService.java b/src/main/java/fr/eni/enchere/bll/RetraitService.java index da0340b..85084d2 100644 --- a/src/main/java/fr/eni/enchere/bll/RetraitService.java +++ b/src/main/java/fr/eni/enchere/bll/RetraitService.java @@ -5,4 +5,5 @@ import fr.eni.enchere.bo.Retrait; public interface RetraitService { Retrait findByNumArticle(int id); void setRetrait(Retrait retrait); + void updateRetrait(Retrait retrait); } diff --git a/src/main/java/fr/eni/enchere/bll/RetraitServiceImpl.java b/src/main/java/fr/eni/enchere/bll/RetraitServiceImpl.java index c7e31ae..08b1d6e 100644 --- a/src/main/java/fr/eni/enchere/bll/RetraitServiceImpl.java +++ b/src/main/java/fr/eni/enchere/bll/RetraitServiceImpl.java @@ -22,4 +22,9 @@ public class RetraitServiceImpl implements RetraitService { public void setRetrait(Retrait retrait) { retraitRepository.save(retrait); } + + @Override + public void updateRetrait(Retrait retrait) { + retraitRepository.update(retrait); + } } diff --git a/src/main/java/fr/eni/enchere/controllers/ArticleController.java b/src/main/java/fr/eni/enchere/controllers/ArticleController.java index 9f0d968..755e9d0 100644 --- a/src/main/java/fr/eni/enchere/controllers/ArticleController.java +++ b/src/main/java/fr/eni/enchere/controllers/ArticleController.java @@ -6,6 +6,7 @@ import fr.eni.enchere.bo.*; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cglib.core.Local; import org.springframework.http.ResponseEntity; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; @@ -82,6 +83,11 @@ public class ArticleController { if (maxMontantEnchere.isPresent()) { model.addAttribute("maxEnchere", maxMontantEnchere.get()); } + if (article.getId() != 0) { + model.addAttribute("imagePath", "/images/articles/" + article.getId() + ".jpg"); + } else { + model.addAttribute("imagePath", "/images/articles/no-data.jpg"); + } List errors = (List) session.getAttribute("errors"); if (errors != null) { model.addAttribute("errors", errors); @@ -239,11 +245,126 @@ public class ArticleController { Article article = this.articleService.findArticleById(id); Retrait retrait = this.retraitService.findByNumArticle(id); - System.out.println(retrait.getRue()); model.addAttribute("article", article); model.addAttribute("retrait", retrait); model.addAttribute("categories", this.categorieService.findAllCategories()); return "editArticle"; } + @PostMapping("/edit") + public String edit(@ModelAttribute("article") Article article, + @ModelAttribute("retrait") Retrait retrait, + @RequestParam("dateDebut") String dateDebut, + @RequestParam("dateFin") String dateFin, + RedirectAttributes redirectAttributes) { + //Récupérer l'utilisateur pour set l'article + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + String username = authentication.getName(); + UserProfil userProfile = userService.utilisateurByName(username); + article.setNoUtilisateur(userProfile.getId()); + //Reste de l'article + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Date dDateDebut = null; + Date dDateFin = null; + try { + dDateDebut = format.parse(dateDebut); + dDateFin = format.parse(dateFin); + } catch (ParseException e) { + redirectAttributes.addAttribute("erreur", "La date de début n'est pas valide."); + redirectAttributes.addAttribute("erreur", "La date de fin n'est pas valide."); + } + article.setDateDebutEnch(dDateDebut); + article.setDateFinEnch(dDateFin); + //Vérification du formulaire + //Vérification du nom de l'article + String regex = "^[a-zA-Z0-9 ]*$"; + if (article.getNom().length() < 3){ + redirectAttributes.addAttribute("erreur", "Le nom de l'article doit contenir au moin 3 caractères."); + return "redirect:/article/edit?id="+article.getId(); + } + if (!Pattern.matches(regex, article.getNom())){ + redirectAttributes.addAttribute("erreur", "Le nom de l'article ne doit pas contenir de caractère speciaux."); + return "redirect:/article/edit?id="+article.getId(); + } + //Vérification description de l'article + if (article.getDesc().length() < 20){ + redirectAttributes.addAttribute("erreur", "La description de l'article doit contenir au moin 20 caractères."); + return "redirect:/article/edit?id="+article.getId(); + } + //Vérification de la photo + if (article.getPhoto() != null && !article.getPhoto().isEmpty()) { + if (article.getPhoto().getSize() > 5 * 1024 * 1024) { + redirectAttributes.addAttribute("erreur", "La photo ne doit pas faire plus de 5 Mo."); + return "redirect:/article/edit?id="+article.getId(); + } + if (!article.getPhoto().getOriginalFilename().toLowerCase().endsWith(".jpg")) { + redirectAttributes.addAttribute("erreur", "L'image doit avoir une extension .jpg."); + return "redirect:/article/edit?id="+article.getId(); + } + } + //Vérification du prix initial + if (article.getPrixInitial() > 2000000000 && article.getPrixInitial() < 0){ + redirectAttributes.addAttribute("erreur", "Le prix doit être compris entre 0 et 2 000 000 000 crédits."); + return "redirect:/article/edit?id="+article.getId(); + } + //Vérifier les dates + LocalDate dateDebutEnch = LocalDate.parse(dateDebut); + LocalDate dateActuelle = LocalDate.now(); + if (dateDebutEnch.isBefore(dateActuelle)) { + redirectAttributes.addAttribute("erreur", "La date de début d'enchère ne peux pas être infèrieur à la date du jour."); + return "redirect:/article/edit?id="+article.getId(); + } + LocalDate dateFinEnch = LocalDate.parse(dateFin); + LocalDate datePlusUnJour = LocalDate.now().plusDays(1); + if (dateFinEnch.isBefore(datePlusUnJour)) { + redirectAttributes.addAttribute("erreur", "La date de début d'enchère ne peux pas être infàrieur à la date du jour + 1."); + return "redirect:/article/edit?id="+article.getId(); + } + + //Vérification rue + if (!Pattern.matches("^[a-zA-Z0-9 ]+$", retrait.getRue())){ + redirectAttributes.addAttribute("erreur", "Le rue n'est pas valide."); + return "redirect:/article/edit?id="+article.getId(); + } + if (retrait.getRue().isEmpty()){ + redirectAttributes.addAttribute("erreur", "Entrer une rue."); + return "redirect:/article/edit?id="+article.getId(); + } + //Vérifier code postal et ville + if(Pattern.matches("^\\d{5}$", retrait.getCode_postale())){ + //Récupérer les villes en fonction du code postal + RestTemplate restTemplate = new RestTemplate(); + List villeCodePostal = new ArrayList<>(); // Initialisez la liste pour éviter les NullPointerException + String apiUrl = API_URL + retrait.getCode_postale(); + ResponseEntity response = restTemplate.getForEntity(apiUrl, JsonNode.class); // Désérialiser en JsonNode + if (response.getStatusCode().is2xxSuccessful()) { + JsonNode responseBody = response.getBody(); + if (responseBody.isArray()) { // Vérifiez si le corps de la réponse est un tableau JSON + for (JsonNode node : responseBody) { + String cityName = node.get("nomCommune").asText(); + villeCodePostal.add(cityName); + } + } else { + redirectAttributes.addAttribute("erreur", "Une erreur est survenue !"); + return "redirect:/article/edit?id="+article.getId(); + } + if (!villeCodePostal.contains(userProfile.getVille())) { + String showCity = String.join(", ", villeCodePostal); + redirectAttributes.addAttribute("erreur", "Essayer : " + showCity); + return "redirect:/article/edit?id="+article.getId(); + } + } else { + redirectAttributes.addAttribute("erreur", "La ville n'est pas valide."); + return "redirect:/article/edit?id="+article.getId(); + } + } else { + redirectAttributes.addAttribute("erreur", "Le code postal n'est pas valide."); + return "redirect:/article/edit?id="+article.getId(); + } + //Validation du formulaire + retrait.setNumArticle(articleService.updateArticle(article)); + retraitService.updateRetrait(retrait); + return "redirect:/accueil"; + } + } diff --git a/src/main/java/fr/eni/enchere/dal/ArticleRepository.java b/src/main/java/fr/eni/enchere/dal/ArticleRepository.java index 5d6c084..3f2d7a2 100644 --- a/src/main/java/fr/eni/enchere/dal/ArticleRepository.java +++ b/src/main/java/fr/eni/enchere/dal/ArticleRepository.java @@ -14,5 +14,5 @@ public interface ArticleRepository { List
findArticleByTitle(String title); int saveArticle(Article article); void deleteArticle(int id); - void updateArticle(int id); + int updateArticle(Article article); } diff --git a/src/main/java/fr/eni/enchere/dal/ArticleRepositoryImpl.java b/src/main/java/fr/eni/enchere/dal/ArticleRepositoryImpl.java index 016c4f4..f092793 100644 --- a/src/main/java/fr/eni/enchere/dal/ArticleRepositoryImpl.java +++ b/src/main/java/fr/eni/enchere/dal/ArticleRepositoryImpl.java @@ -168,7 +168,6 @@ public class ArticleRepositoryImpl implements ArticleRepository { sql.append(")"); } - System.out.println(); // Compte le nombre total d'articles int totalCount = countArticlePageable(critere); @@ -334,7 +333,16 @@ public class ArticleRepositoryImpl implements ArticleRepository { } @Override - public void updateArticle(int id) { - + public int updateArticle(Article article) { + String sql = "UPDATE ARTICLES_VENDUS " + + "SET nom_article = ?, " + + "description = ?," + + "date_debut_encheres = ?," + + "date_fin_encheres = ?," + + "prix_initial = ?," + + "no_categorie = ? " + + "WHERE no_article = ?"; + jdbcTemplate.update(sql, article.getNom(), article.getDesc(), article.getDateDebutEnch(), article.getDateFinEnch(), article.getPrixInitial(), article.getNumCategorie(), article.getId()); + return article.getId(); } } diff --git a/src/main/java/fr/eni/enchere/dal/RetraitRepository.java b/src/main/java/fr/eni/enchere/dal/RetraitRepository.java index 4097073..270ae57 100644 --- a/src/main/java/fr/eni/enchere/dal/RetraitRepository.java +++ b/src/main/java/fr/eni/enchere/dal/RetraitRepository.java @@ -6,4 +6,5 @@ public interface RetraitRepository { Retrait findById(int id); Retrait findByNumArticle(int idArticle); void save(Retrait retrait); + void update(Retrait retrait); } diff --git a/src/main/java/fr/eni/enchere/dal/RetraitRepositoryImpl.java b/src/main/java/fr/eni/enchere/dal/RetraitRepositoryImpl.java index 49718b3..aed96cf 100644 --- a/src/main/java/fr/eni/enchere/dal/RetraitRepositoryImpl.java +++ b/src/main/java/fr/eni/enchere/dal/RetraitRepositoryImpl.java @@ -47,7 +47,11 @@ public class RetraitRepositoryImpl implements RetraitRepository { public Retrait findByNumArticle(int numArticle) { String sql = "select * from RETRAITS where no_article = ?"; Retrait retrait = jdbcTemplate.queryForObject(sql, new RetraitRowMapper(), numArticle); - return retrait; + if (retrait == null) { + return null; + } else { + return retrait; + } } @Override @@ -56,7 +60,6 @@ public class RetraitRepositoryImpl implements RetraitRepository { MapSqlParameterSource parametersIsUpdate = new MapSqlParameterSource(); parametersIsUpdate.addValue("numArticle", retrait.getNumArticle()); int count = namedJdbcTemplate.queryForObject(sqlIsUpdate, parametersIsUpdate, Integer.class); - System.out.println(count); if (count > 0) { //Mettre à jour les informations @@ -71,4 +74,14 @@ public class RetraitRepositoryImpl implements RetraitRepository { namedJdbcTemplate.update(sql, parameters); } } + + @Override + public void update(Retrait retrait) { + String sql = "UPDATE RETRAITS " + + "SET rue = ?, " + + "code_postal = ?, " + + "ville = ? " + + "WHERE no_article = ?"; + jdbcTemplate.update(sql, retrait.getRue(), retrait.getCode_postale(), retrait.getVille(), retrait.getNumArticle()); + } } diff --git a/src/main/resources/templates/article.html b/src/main/resources/templates/article.html index 6a7e67e..ef34f15 100644 --- a/src/main/resources/templates/article.html +++ b/src/main/resources/templates/article.html @@ -36,6 +36,11 @@
+
+ + +
+
@@ -57,7 +62,10 @@ - +
+ + +
diff --git a/src/main/resources/templates/editArticle.html b/src/main/resources/templates/editArticle.html index 0850f71..61bf3a8 100644 --- a/src/main/resources/templates/editArticle.html +++ b/src/main/resources/templates/editArticle.html @@ -7,9 +7,10 @@

-
+
+
@@ -28,7 +29,7 @@
- +
@@ -37,30 +38,36 @@
- - + +
- - + +

Retrait

- -
- - +
+ +
+ + +
+ +
+ + +
+ +
+ + +
- -
- - -
- -
- - +
+ +
From 0c92b7e6ff80f392eb127075b6274aec028911d0 Mon Sep 17 00:00:00 2001 From: Parpaillax Date: Tue, 30 Apr 2024 13:13:02 +0200 Subject: [PATCH 3/3] delete article --- src/main/java/fr/eni/enchere/bo/Article.java | 12 +++++++++++- .../eni/enchere/controllers/ArticleController.java | 6 ++++++ .../fr/eni/enchere/dal/ArticleRepositoryImpl.java | 5 +++-- src/main/resources/i18n/messages_en.properties | 1 + src/main/resources/i18n/messages_fr.properties | 3 ++- src/main/resources/templates/editArticle.html | 7 ++++--- 6 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/main/java/fr/eni/enchere/bo/Article.java b/src/main/java/fr/eni/enchere/bo/Article.java index 9719150..e3675be 100644 --- a/src/main/java/fr/eni/enchere/bo/Article.java +++ b/src/main/java/fr/eni/enchere/bo/Article.java @@ -17,11 +17,12 @@ public class Article { int Utilisateur; String pseudoUtilisateur; int numCategorie; + boolean isDelete; public Article() { } - public Article(int id, String nom, String desc, MultipartFile photo, Date dateDebutEnch, Date dateFinEnch, float prixInitial, float prixVente, int Utilisateur, String pseudoUtilisateur, int numCategorie) { + public Article(int id, String nom, String desc, MultipartFile photo, Date dateDebutEnch, Date dateFinEnch, float prixInitial, float prixVente, int Utilisateur, String pseudoUtilisateur, int numCategorie, boolean isDelete) { setId(id); setNom(nom); setDesc(desc); @@ -32,6 +33,7 @@ public class Article { setPrixVente(prixVente); setNoUtilisateur(Utilisateur); setNumCategorie(numCategorie); + setIsDelete(isDelete); } public int getId() { @@ -121,4 +123,12 @@ public class Article { public void setNumCategorie(int numCategorie) { this.numCategorie = numCategorie; } + + public boolean getIsDelete() { + return isDelete; + } + + public void setIsDelete(boolean delete) { + isDelete = delete; + } } diff --git a/src/main/java/fr/eni/enchere/controllers/ArticleController.java b/src/main/java/fr/eni/enchere/controllers/ArticleController.java index 755e9d0..0ca14c6 100644 --- a/src/main/java/fr/eni/enchere/controllers/ArticleController.java +++ b/src/main/java/fr/eni/enchere/controllers/ArticleController.java @@ -367,4 +367,10 @@ public class ArticleController { return "redirect:/accueil"; } + @PostMapping("/delete") + public String delte(@ModelAttribute("article") Article article) { + article.setIsDelete(true); + return ""; + } + } diff --git a/src/main/java/fr/eni/enchere/dal/ArticleRepositoryImpl.java b/src/main/java/fr/eni/enchere/dal/ArticleRepositoryImpl.java index f092793..350e8d0 100644 --- a/src/main/java/fr/eni/enchere/dal/ArticleRepositoryImpl.java +++ b/src/main/java/fr/eni/enchere/dal/ArticleRepositoryImpl.java @@ -54,6 +54,7 @@ public class ArticleRepositoryImpl implements ArticleRepository { article.setPrixVente(rs.getFloat("a.prix_vente")); article.setNoUtilisateur(rs.getInt("a.no_utilisateur")); article.setNumCategorie(rs.getInt("a.no_categorie")); + article.setIsDelete(rs.getBoolean("a.isDelete")); return article; } } @@ -84,7 +85,7 @@ public class ArticleRepositoryImpl implements ArticleRepository { @Override public List
findAllArticle() { - String sql = "SELECT * FROM ARTICLES_VENDUS a"; + String sql = "SELECT * FROM ARTICLES_VENDUS a WHERE a.isDelete = 0"; List
articles = jdbcTemplate.query(sql, new ArticleRowMapper()); return articles; } @@ -277,7 +278,7 @@ public class ArticleRepositoryImpl implements ArticleRepository { @Override public List
findArticleByTitle(String title) { - String sql = "SELECT * FROM ARTICLES_VENDUS a WHERE nom_article LIKE ?"; + String sql = "SELECT * FROM ARTICLES_VENDUS a WHERE nom_article LIKE ? AND a.isDelete = 0"; List
articles = jdbcTemplate.query(sql, new ArticleRowMapper(), "%" + title + "%"); return articles; } diff --git a/src/main/resources/i18n/messages_en.properties b/src/main/resources/i18n/messages_en.properties index 9df34e5..310d937 100644 --- a/src/main/resources/i18n/messages_en.properties +++ b/src/main/resources/i18n/messages_en.properties @@ -121,3 +121,4 @@ article.details.validation.amount.required = Bid amount is required. edit.article.title = Edit my article edit.article.update = Edit edit.article.back = Back +edit.article.delete = Cancel my article diff --git a/src/main/resources/i18n/messages_fr.properties b/src/main/resources/i18n/messages_fr.properties index bb82d9f..fde809f 100644 --- a/src/main/resources/i18n/messages_fr.properties +++ b/src/main/resources/i18n/messages_fr.properties @@ -123,4 +123,5 @@ article.details.validation.amount.required = Le montant de l'ench\u00E8re est re edit.article.title = Modifier mon article edit.article.update = Modifier -edit.article.back = Retour \ No newline at end of file +edit.article.back = Retour +edit.article.delete = Annuler vente \ No newline at end of file diff --git a/src/main/resources/templates/editArticle.html b/src/main/resources/templates/editArticle.html index 61bf3a8..246d7f1 100644 --- a/src/main/resources/templates/editArticle.html +++ b/src/main/resources/templates/editArticle.html @@ -65,9 +65,10 @@
-
- - +
+ + +