update
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package fr.eni.enchere.bo;
|
||||
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
public class Article {
|
||||
@@ -7,18 +9,19 @@ public class Article {
|
||||
int id;
|
||||
String nom;
|
||||
String desc;
|
||||
String photo;
|
||||
MultipartFile photo;
|
||||
Date dateDebutEnch;
|
||||
Date dateFinEnch;
|
||||
float prixInitial;
|
||||
float prixVente;
|
||||
UserProfil Utilisateur;
|
||||
int Utilisateur;
|
||||
String pseudoUtilisateur;
|
||||
int numCategorie;
|
||||
|
||||
public Article() {
|
||||
}
|
||||
|
||||
public Article(int id, String nom, String desc, String photo, Date dateDebutEnch, Date dateFinEnch, float prixInitial, float prixVente, UserProfil Utilisateur, 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) {
|
||||
setId(id);
|
||||
setNom(nom);
|
||||
setDesc(desc);
|
||||
@@ -27,7 +30,7 @@ public class Article {
|
||||
setDateFinEnch(dateFinEnch);
|
||||
setPrixInitial(prixInitial);
|
||||
setPrixVente(prixVente);
|
||||
setUtilisateur(Utilisateur);
|
||||
setNoUtilisateur(Utilisateur);
|
||||
setNumCategorie(numCategorie);
|
||||
}
|
||||
|
||||
@@ -55,11 +58,11 @@ public class Article {
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public String getPhoto() {
|
||||
public MultipartFile getPhoto() {
|
||||
return photo;
|
||||
}
|
||||
|
||||
public void setPhoto(String photo) {
|
||||
public void setPhoto(MultipartFile photo) {
|
||||
this.photo = photo;
|
||||
}
|
||||
|
||||
@@ -95,14 +98,22 @@ public class Article {
|
||||
this.prixVente = prixVente;
|
||||
}
|
||||
|
||||
public UserProfil getUtilisateur() {
|
||||
public int getUtilisateur() {
|
||||
return Utilisateur;
|
||||
}
|
||||
|
||||
public void setUtilisateur(UserProfil Utilisateur) {
|
||||
public void setNoUtilisateur(int Utilisateur) {
|
||||
this.Utilisateur = Utilisateur;
|
||||
}
|
||||
|
||||
public String getPseudoUtilisateur() {
|
||||
return pseudoUtilisateur;
|
||||
}
|
||||
|
||||
public void setPseudoUtilisateur(String pseudoUtilisateur) {
|
||||
this.pseudoUtilisateur = pseudoUtilisateur;
|
||||
}
|
||||
|
||||
public int getNumCategorie() {
|
||||
return numCategorie;
|
||||
}
|
||||
|
||||
@@ -8,9 +8,15 @@ 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.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
@Controller()
|
||||
@RequestMapping("/article")
|
||||
@@ -31,7 +37,7 @@ public class ArticleController {
|
||||
|
||||
@GetMapping
|
||||
public String viewArticle(Model model) {
|
||||
return "accueil";
|
||||
return "redirect:/accueil";
|
||||
}
|
||||
|
||||
//Affichage d'un article
|
||||
@@ -60,15 +66,31 @@ public class ArticleController {
|
||||
}
|
||||
|
||||
@PostMapping("/new")
|
||||
public String newArticle(@RequestParam("article") Article article, @RequestParam("retrait") Retrait retrait) {
|
||||
//Récupérer l'utilisateur pour set
|
||||
System.out.println(article.getNumCategorie());
|
||||
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.setUtilisateur(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
|
||||
//Date dDateDebut = new SimpleDateFormat(dateDebut);
|
||||
//article.setDateDebutEnch();
|
||||
if (article.getId() == 0){
|
||||
//Création d'un article
|
||||
|
||||
} else {
|
||||
//Mise à jour d'un article
|
||||
}
|
||||
//articleService.saveArticle(article);
|
||||
return "redirect:/accueil";
|
||||
}
|
||||
|
||||
|
||||
@@ -7,19 +7,25 @@ import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestHeader;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.servlet.LocaleResolver;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
import org.springframework.web.servlet.support.RequestContextUtils;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
@Controller
|
||||
public class LanguageController {
|
||||
private final LocaleResolver localeResolver;
|
||||
|
||||
public LanguageController(LocaleResolver localeResolver) {
|
||||
this.localeResolver = localeResolver;
|
||||
}
|
||||
|
||||
@GetMapping("/change-language")
|
||||
public String changeLanguage(HttpServletRequest request, HttpServletResponse response, @RequestParam("lang") String lang, @RequestHeader String referer) {
|
||||
public String changeLanguage(HttpServletRequest request, HttpServletResponse response, @RequestParam("lang") String lang) {
|
||||
LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);
|
||||
if (localeResolver != null) {
|
||||
localeResolver.setLocale(request, response, new Locale(lang));
|
||||
localeResolver.setLocale(request, response, Locale.forLanguageTag(lang));
|
||||
}
|
||||
return "redirect:" + referer;
|
||||
return "redirect:/";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,22 +31,16 @@ public class ArticleRepositoryImpl implements ArticleRepository {
|
||||
@Override
|
||||
public Article mapRow(ResultSet rs, int rowNum) throws SQLException {
|
||||
Article article = new Article();
|
||||
article.setId(rs.getInt("no_article"));
|
||||
article.setNom(rs.getString("nom_article"));
|
||||
article.setDesc(rs.getString("description"));
|
||||
article.setDateDebutEnch(rs.getDate("date_debut_encheres"));
|
||||
article.setDateFinEnch(rs.getDate("date_fin_encheres"));
|
||||
article.setPrixInitial(rs.getFloat("prix_initial"));
|
||||
article.setPrixVente(rs.getFloat("prix_vente"));
|
||||
|
||||
UserProfil user = userService.utilisateurById(rs.getInt("no_utilisateur"));
|
||||
if (user != null) {
|
||||
article.setUtilisateur(user);
|
||||
} else {
|
||||
logger.error("erreur de l'utilisateur");
|
||||
}
|
||||
|
||||
article.setNumCategorie(rs.getInt("no_categorie"));
|
||||
article.setId(rs.getInt("a.no_article"));
|
||||
article.setNom(rs.getString("a.nom_article"));
|
||||
article.setDesc(rs.getString("a.description"));
|
||||
article.setDateDebutEnch(rs.getDate("a.date_debut_encheres"));
|
||||
article.setDateFinEnch(rs.getDate("a.date_fin_encheres"));
|
||||
article.setPrixInitial(rs.getFloat("a.prix_initial"));
|
||||
article.setPrixVente(rs.getFloat("a.prix_vente"));
|
||||
article.setNoUtilisateur(rs.getInt("u.no_utilisateur"));
|
||||
article.setPseudoUtilisateur(rs.getString("u.pseudo"));
|
||||
article.setNumCategorie(rs.getInt("a.no_categorie"));
|
||||
return article;
|
||||
}
|
||||
}
|
||||
@@ -59,24 +53,26 @@ public class ArticleRepositoryImpl implements ArticleRepository {
|
||||
|
||||
@Override
|
||||
public List<Article> findAllArticle() {
|
||||
String sql = "SELECT * FROM ARTICLES_VENDUS";
|
||||
String sql = "SELECT * FROM ARTICLES_VENDUS a";
|
||||
List<Article> articles = jdbcTemplate.query(sql, new ArticleRowMapper());
|
||||
return articles;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Article> searchArticle(SearchArticleCritere critere) {
|
||||
StringBuilder sql = new StringBuilder("SELECT * FROM ARTICLES_VENDUS WHERE 1 = 1 AND isDelete = 0");
|
||||
StringBuilder sql = new StringBuilder("SELECT a.*, u.* FROM ARTICLES_VENDUS a ");
|
||||
sql.append("JOIN UTILISATEURS u ON a.no_utilisateur = u.no_utilisateur ");
|
||||
sql.append("WHERE 1 = 1 AND a.isDelete = 0");
|
||||
|
||||
List<Object> params = new ArrayList<>();
|
||||
|
||||
if (critere.getNoCategorie() != null) {
|
||||
sql.append(" AND no_categorie = ?");
|
||||
params.add(critere.getNoCategorie());
|
||||
sql.append(" AND a.no_categorie = ?");
|
||||
params.add(critere.getNoCategorie());
|
||||
}
|
||||
if (critere.getTitle() != null && !critere.getTitle().isEmpty()) {
|
||||
sql.append(" AND nom_article LIKE ?");
|
||||
params.add( '%' + critere.getTitle() + "%");
|
||||
sql.append(" AND a.nom_article LIKE ?");
|
||||
params.add('%' + critere.getTitle() + '%');
|
||||
}
|
||||
|
||||
return jdbcTemplate.query(sql.toString(), new ArticleRowMapper(), params.toArray());
|
||||
@@ -89,7 +85,7 @@ public class ArticleRepositoryImpl implements ArticleRepository {
|
||||
|
||||
@Override
|
||||
public List<Article> findArticleByTitle(String title) {
|
||||
String sql = "SELECT * FROM ARTICLES_VENDUS WHERE nom_article LIKE ?";
|
||||
String sql = "SELECT * FROM ARTICLES_VENDUS a WHERE nom_article LIKE ?";
|
||||
List<Article> articles = jdbcTemplate.query(sql, new ArticleRowMapper(), "%" + title + "%");
|
||||
return articles;
|
||||
}
|
||||
|
||||
@@ -17,13 +17,16 @@ public class WebSecurityConfig{
|
||||
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
|
||||
http.authorizeHttpRequests((requests) -> requests
|
||||
.requestMatchers("/", "/accueil").permitAll()
|
||||
.requestMatchers("/accueil", "/login", "/inscription/**", "/searchArticle", "/article/**", "/change-language").permitAll()
|
||||
.requestMatchers("/css/**", "/images/**", "/assets/**", "/img/**", "/js/**", "/assets/**").permitAll()
|
||||
.requestMatchers("/accueil", "/login", "/inscription/**", "/searchArticle", "/article/show", "/change-language").permitAll()
|
||||
.requestMatchers("/css/**", "/images/**", "/assets/**", "/img/**", "/js/**", "/assets/**", "/i18n/**").permitAll()
|
||||
.requestMatchers("/profil/**", "/article/new/**", "/article/update", "/article/delete").authenticated()
|
||||
.requestMatchers("/admin").hasRole("ADMIN")
|
||||
.anyRequest().authenticated())
|
||||
.formLogin((form) -> form.loginPage("/login").defaultSuccessUrl("/", true))
|
||||
.logout((logout) -> logout.clearAuthentication(true).invalidateHttpSession(true)
|
||||
.formLogin((form) -> form
|
||||
.loginPage("/login")
|
||||
.defaultSuccessUrl("/", true))
|
||||
.logout((logout) -> logout
|
||||
.clearAuthentication(true).invalidateHttpSession(true)
|
||||
.deleteCookies("JSESSIONID").logoutSuccessUrl("/login?logout")
|
||||
.logoutRequestMatcher(new AntPathRequestMatcher("/logout")).permitAll());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user