Merge branch 'Johan'

This commit is contained in:
Parpaillax
2024-04-24 16:55:25 +02:00
8 changed files with 105 additions and 14 deletions

View File

@@ -10,9 +10,19 @@ import org.slf4j.LoggerFactory;
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 org.springframework.util.FileCopyUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
@@ -22,6 +32,7 @@ import java.util.List;
@Primary
public class ArticleRepositoryImpl implements ArticleRepository {
private static final String UPLOAD_DIR = "src/main/resources/static/images/articles";
private static final Logger logger = LoggerFactory.getLogger(ArticleRepositoryImpl.class);
private JdbcTemplate jdbcTemplate;
private NamedParameterJdbcTemplate namedJdbcTemplate;
@@ -93,8 +104,48 @@ public class ArticleRepositoryImpl implements ArticleRepository {
}
@Override
public void saveArticle(Article article) {
public int saveArticle(Article article) {
if (article.getId() == 0) {
//Nouvel article
String sql = "INSERT INTO ARTICLES_VENDUS (nom_article, description, date_debut_encheres, date_fin_encheres, prix_initial, prix_vente, no_utilisateur, no_categorie, isDelete) " +
"VALUES (:nom_article, :description, :date_debut_encheres, :date_fin_encheres, :prix_initial, null, :no_utilisateur, :no_categorie, 0)";
MapSqlParameterSource parameters = new MapSqlParameterSource();
parameters.addValue("nom_article", article.getNom());
parameters.addValue("description", article.getDesc());
parameters.addValue("date_debut_encheres", article.getDateDebutEnch());
parameters.addValue("date_fin_encheres", article.getDateFinEnch());
parameters.addValue("prix_initial", article.getPrixInitial());
parameters.addValue("no_utilisateur", article.getUtilisateur());
parameters.addValue("no_categorie", article.getNumCategorie());
KeyHolder keyHolder = new GeneratedKeyHolder();
namedJdbcTemplate.update(sql, parameters, keyHolder, new String[] {"no_article"});
if (keyHolder.getKey() != null) {
article.setId(keyHolder.getKey().intValue());
}
//Enregistrement du fichier
MultipartFile file = article.getPhoto();
if (file != null && !file.isEmpty()) {
try {
// Renommer le fichier avec l'ID de l'article
String newFileName = article.getId() + ".jpg";
// Chemin du dossier de destination
Path uploadPath = Paths.get(UPLOAD_DIR);
// Créer le dossier s'il n'existe pas
Files.createDirectories(uploadPath);
// Chemin complet du fichier de destination
Path filePath = uploadPath.resolve(newFileName);
// Copier le fichier dans le dossier de destination
FileCopyUtils.copy(file.getInputStream(), Files.newOutputStream(filePath));
} catch (IOException e) {
e.printStackTrace();
// Gérer l'erreur
}
}
}else {
//Mettre à jour l'article
}
return article.getId();
}
@Override