diff --git a/src/main/java/fr/eni/enchere/controllers/EnchereController.java b/src/main/java/fr/eni/enchere/controllers/EnchereController.java index 158bf26..2e245d2 100644 --- a/src/main/java/fr/eni/enchere/controllers/EnchereController.java +++ b/src/main/java/fr/eni/enchere/controllers/EnchereController.java @@ -91,36 +91,40 @@ public class EnchereController { @PostMapping("/enchereDone") public String enchereDone(@RequestParam("id") int id) { List listEncheres = this.enchereService.enchereByArticle(id); + if (!listEncheres.isEmpty()){ + List encheres = listEncheres.stream() + .sorted(Comparator.comparing(Enchere::getMontantEnchere).reversed()) + .collect(Collectors.toList()); + Optional pseudoMaxEnchere = encheres.stream() + .max(Comparator.comparing(Enchere::getMontantEnchere)) // Comparaison basée sur le montant d'enchère + .map(Enchere::getPseudoUtilisateur); + UserProfil user = this.userService.utilisateurByName(pseudoMaxEnchere.get()); + //Get seller + Article articleSell = articleService.findArticleById(id); + UserProfil userSeller = userService.utilisateurById(articleSell.getUtilisateur()); + Optional maxMontantEnchere = listEncheres.stream() + .map(Enchere::getMontantEnchere) // Récupère seulement les montants d'enchère + .max(Float::compareTo); - List encheres = listEncheres.stream() - .sorted(Comparator.comparing(Enchere::getMontantEnchere).reversed()) - .collect(Collectors.toList()); - Optional pseudoMaxEnchere = encheres.stream() - .max(Comparator.comparing(Enchere::getMontantEnchere)) // Comparaison basée sur le montant d'enchère - .map(Enchere::getPseudoUtilisateur); - UserProfil user = this.userService.utilisateurByName(pseudoMaxEnchere.get()); - //Get seller - Article articleSell = articleService.findArticleById(id); - UserProfil userSeller = userService.utilisateurById(articleSell.getUtilisateur()); - Optional maxMontantEnchere = listEncheres.stream() - .map(Enchere::getMontantEnchere) // Récupère seulement les montants d'enchère - .max(Float::compareTo); + //setCredit user. + float newCredit = user.getCredit() - maxMontantEnchere.get(); + this.userService.setCredit(newCredit, user.getId()); - //setCredit user. - float newCredit = user.getCredit() - maxMontantEnchere.get(); - this.userService.setCredit(newCredit, user.getId()); + //set sell price + this.articleService.setSellPrice(id, maxMontantEnchere.get()); - //Delete enchere - for (Enchere ench : listEncheres) { - this.enchereService.deleteEnchere(ench.getId()); + //Crédit selleur + float sellerCredit = userSeller.getCredit() + maxMontantEnchere.get(); + this.userService.setCredit(sellerCredit, userSeller.getId()); + + //Delete enchere + for (Enchere ench : listEncheres) { + this.enchereService.deleteEnchere(ench.getId()); + } } - //Delete article - this.articleService.setSellPrice(id, maxMontantEnchere.get()); - - //Crédit selleur - float sellerCredit = userSeller.getCredit() + maxMontantEnchere.get(); - this.userService.setCredit(sellerCredit, userSeller.getId()); + //Delete Article + this.articleService.deleteArticle(id); return "redirect:/enchere"; } diff --git a/src/main/java/fr/eni/enchere/dal/ArticleRepositoryImpl.java b/src/main/java/fr/eni/enchere/dal/ArticleRepositoryImpl.java index 07ee354..f7a90a9 100644 --- a/src/main/java/fr/eni/enchere/dal/ArticleRepositoryImpl.java +++ b/src/main/java/fr/eni/enchere/dal/ArticleRepositoryImpl.java @@ -371,7 +371,7 @@ public class ArticleRepositoryImpl implements ArticleRepository { @Override public void setSellPrice(int id, float price) { - String sql = "UPDATE ARTICLES_VENDUS SET prix_vente = ?, isDelete = 1 WHERE no_article = ?"; + String sql = "UPDATE ARTICLES_VENDUS SET prix_vente = ? WHERE no_article = ?"; jdbcTemplate.update(sql, price, id); } } diff --git a/src/main/resources/i18n/messages_en.properties b/src/main/resources/i18n/messages_en.properties index 5665a10..6e1cb3b 100644 --- a/src/main/resources/i18n/messages_en.properties +++ b/src/main/resources/i18n/messages_en.properties @@ -133,6 +133,9 @@ article.details.ench = Bidders article.details.lastof = Last Bid article.details.label.last_price = Current sale price article.details.label.start_date = Start date +article.details.noWin = Article - No one has made an offer +article.details.winBy = Article - offer won by +article.details.winByYou = you edit.article.title = Edit my article edit.article.update = Edit diff --git a/src/main/resources/i18n/messages_fr.properties b/src/main/resources/i18n/messages_fr.properties index 5e24ab8..46a4b1d 100644 --- a/src/main/resources/i18n/messages_fr.properties +++ b/src/main/resources/i18n/messages_fr.properties @@ -135,7 +135,9 @@ article.details.ench = Ench\u00E9risseurs article.details.lastof = Derni\u00E9re offre article.details.label.last_price = Prix de vente actuel article.details.label.start_date = Date de debut - +article.details.noWin = Article - Personne n'a fait d'offre +article.details.winBy = Article - offre remport\u00E9 par +article.details.winByYou = vous edit.article.title = Modifier mon article diff --git a/src/main/resources/templates/article.html b/src/main/resources/templates/article.html index 1c4317c..0001427 100644 --- a/src/main/resources/templates/article.html +++ b/src/main/resources/templates/article.html @@ -12,8 +12,8 @@

-

-

+

+