111 lines
4.1 KiB
Java
111 lines
4.1 KiB
Java
package fr.eni.enchere.controllers;
|
|
|
|
import fr.eni.enchere.bll.ArticleService;
|
|
import fr.eni.enchere.bll.CategorieService;
|
|
import fr.eni.enchere.bll.RetraitService;
|
|
import fr.eni.enchere.bll.UserService;
|
|
import fr.eni.enchere.bo.Article;
|
|
import fr.eni.enchere.bo.Retrait;
|
|
import fr.eni.enchere.bo.UserProfil;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.security.core.Authentication;
|
|
import org.springframework.security.core.context.SecurityContextHolder;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.ui.Model;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
import java.text.ParseException;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.Date;
|
|
|
|
@Controller()
|
|
@RequestMapping("/article")
|
|
public class ArticleController {
|
|
|
|
@Autowired
|
|
private final ArticleService articleService;
|
|
private final UserService userService;
|
|
private CategorieService categorieService;
|
|
private RetraitService retraitService;
|
|
|
|
public ArticleController(ArticleService articleService, UserService userService, CategorieService categorieService, RetraitService retraitService) {
|
|
this.articleService = articleService;
|
|
this.userService = userService;
|
|
this.categorieService = categorieService;
|
|
this.retraitService = retraitService;
|
|
}
|
|
|
|
@GetMapping
|
|
public String viewArticle(Model model) {
|
|
return "redirect:/accueil";
|
|
}
|
|
|
|
//Affichage d'un article
|
|
|
|
@GetMapping("/show")
|
|
public String showArticle(@RequestParam()int id, Model model) {
|
|
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
|
|
if (!authentication.getName().equals("anonymousUser")) {
|
|
Article article = articleService.findArticleById(id);
|
|
System.out.println(article);
|
|
model.addAttribute("article", article);
|
|
return "article";
|
|
} else {
|
|
return "redirect:/accueil";
|
|
}
|
|
}
|
|
|
|
@GetMapping("/{slug}")
|
|
public String testShowArticle(@PathVariable(name = "slug")int id, Model model) {
|
|
Article article = articleService.findArticleById(id);
|
|
model.addAttribute("article", article);
|
|
return "article";
|
|
}
|
|
|
|
//Création d'un article
|
|
|
|
@GetMapping("/new")
|
|
public String newArticleForm(Model model) {
|
|
model.addAttribute("categories", categorieService.findAllCategories());
|
|
model.addAttribute("article", new Article());
|
|
model.addAttribute("retrait", new Retrait());
|
|
return "newArticle";
|
|
}
|
|
|
|
@PostMapping("/new")
|
|
public String newArticle(@ModelAttribute("article") Article article,
|
|
@RequestParam("rue") String rue,
|
|
@RequestParam("code_postal") String code_postal,
|
|
@RequestParam("ville") String ville,
|
|
@RequestParam("dateDebut") String dateDebut,
|
|
@RequestParam("dateFin") String dateFin) {
|
|
//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());
|
|
//Récupérer le lieu de retrait
|
|
Retrait retrait = new Retrait();
|
|
retrait.setRue(rue);
|
|
retrait.setCode_postale(code_postal);
|
|
retrait.setVille(ville);
|
|
//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) {
|
|
e.printStackTrace();
|
|
}
|
|
article.setDateDebutEnch(dDateDebut);
|
|
article.setDateFinEnch(dDateFin);
|
|
retrait.setNumArticle(articleService.saveArticle(article));
|
|
retraitService.setRetrait(retrait);
|
|
return "redirect:/accueil";
|
|
}
|
|
|
|
}
|