From 23a46b4be35277e06ec89f48730eeb694e686be8 Mon Sep 17 00:00:00 2001
From: Kenmegne <stephanie.kenmegne@gmail.com>
Date: Thu, 18 Jun 2026 15:40:06 +0000
Subject: [PATCH] add fdx-commons and fdx-consultation

---
 fdx-consultation/fdxconsultation-dao-impl/src/main/java/com/megatim/fdxconsultation/dao/impl/administration/UserDAOImpl.java |  140 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 140 insertions(+), 0 deletions(-)

diff --git a/fdx-consultation/fdxconsultation-dao-impl/src/main/java/com/megatim/fdxconsultation/dao/impl/administration/UserDAOImpl.java b/fdx-consultation/fdxconsultation-dao-impl/src/main/java/com/megatim/fdxconsultation/dao/impl/administration/UserDAOImpl.java
new file mode 100644
index 0000000..bfb65d6
--- /dev/null
+++ b/fdx-consultation/fdxconsultation-dao-impl/src/main/java/com/megatim/fdxconsultation/dao/impl/administration/UserDAOImpl.java
@@ -0,0 +1,140 @@
+package com.megatim.fdxconsultation.dao.impl.administration;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import com.bekosoftware.genericdaolayer.dao.impl.AbstractGenericDAO;
+import com.bekosoftware.genericdaolayer.dao.tools.RestrictionsContainer;
+import com.megatim.commons.tools.CommonsTools;
+import com.megatim.fdxcommons.model.enumeration.TypeOperation;
+import com.megatim.fdxconsultation.dao.ifaces.administration.UserDAO;
+import com.megatim.fdxconsultation.model.administration.Role;
+import com.megatim.fdxconsultation.model.administration.User;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+import javax.enterprise.context.Dependent;
+
+@Dependent
+public class UserDAOImpl extends AbstractGenericDAO<User, Long> implements UserDAO {
+
+    @PersistenceContext(unitName = "fdxConsultationPersistenceUnit")
+    protected EntityManager em;
+
+    public UserDAOImpl() {
+    }
+
+    @Override
+    public EntityManager getEntityManager() {
+        return em;
+    }
+
+    @Override
+    public Class<User> getManagedEntityClass() {
+        return (User.class);
+    }
+
+    @Override
+    public User getById(Long id) {
+        Optional<User> optional = em.createQuery("SELECT u from User u"
+                + " LEFT JOIN FETCH u.typeFichiers "
+                + " WHERE u.id = :id")
+                .setParameter("id", id)
+                .getResultList()
+                .stream()
+                .findFirst();;
+        return optional.isPresent() ? optional.get() : null;
+    }
+
+    @Override
+    public User getCurrentUser() {
+        RestrictionsContainer requeteur = RestrictionsContainer.newInstance();
+        requeteur.addEq("typeOperation", TypeOperation.AJOUTER);
+        return filter(requeteur.getPredicats(), null, null, 0, 1).stream().findAny().orElse(null);
+    }
+
+    @Override
+    public User recuperUtilisateur(String username, String motDePasse) {
+        //Variables
+        List<User> resutlats = null;
+        User user = null;
+        boolean isCorrect = false;
+        RestrictionsContainer requeteur = RestrictionsContainer.newInstance();
+
+        //On construit la requete
+        requeteur.addEq("userName", username);
+        requeteur.addEq("typeOperation", TypeOperation.AJOUTER);
+
+        //On execute la requte
+        resutlats = filter(requeteur.getPredicats(), null, null, 0, 1);
+
+        //Si liste non vide
+        if (resutlats != null && !resutlats.isEmpty()) {
+
+            try {
+
+                //On recupere le user
+                user = resutlats.get(0);
+
+                //On verifie si le mot de passe est correct
+                isCorrect = CommonsTools.validerMotDePasse(motDePasse, user.getPwd());
+
+                //Si incorrect
+                if (!isCorrect) {
+
+                    //Utilisateur non trouvé
+                    user = null;
+
+                }
+
+            } catch (Exception ex) {
+
+                //On affiche l'erreur
+                ex.printStackTrace();
+
+            }
+
+        }
+
+        return user;
+    }
+
+    @Override
+    public User recuperUtilisateur(String username) {
+        Optional<User> optional = em.createQuery("SELECT u from User u"
+                + " LEFT JOIN FETCH u.typeFichiers "
+                + " LEFT JOIN FETCH u.participants "
+                + " WHERE u.userName = :username AND u.typeOperation = :typeOperation")
+                .setParameter("username", username)
+                .setParameter("typeOperation", TypeOperation.AJOUTER)
+                .getResultList()
+                .stream()
+                .findFirst();
+        return optional.isPresent() ? optional.get() : null;
+    }
+
+    @Override
+    public List<User> obtenirListeUtilisateursRole(Role role) {
+
+        //variables
+        List<User> utilisateurs = null;
+        RestrictionsContainer requeteur = RestrictionsContainer.newInstance();
+
+        //On construit la requete
+        requeteur.addEq("role", role);
+        requeteur.addEq("typeOperation", TypeOperation.AJOUTER);
+
+        //On execute la requte
+        utilisateurs = filter(requeteur.getPredicats(), null, null, 0, -1);
+
+        //Si liste null
+        if (utilisateurs == null) {
+
+            //On crée une instance vide
+            utilisateurs = new ArrayList<User>();
+
+        }
+
+        return utilisateurs;
+    }
+}

--
Gitblit v1.10.0