Package servlets

Source Code of servlets.ServletUsers

/*
* Copyright (C) 2014 Thibaut Comte
*
* This is for your eyes only!
* Destroy after reading!
*/
package servlets;

import abonnements.gestionnaires.GestionnaireAbonnements;
import abonnements.modele.Abonnement;
import java.io.IOException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import morceaux.gestionnaires.GestionnaireMorceaux;
import morceaux.modele.Morceau;
import utilisateurs.gestionnaires.GestionnaireUtilisateurs;
import utilisateurs.modele.Utilisateur;

/**
*
* @author Thibaut
*/
@WebServlet(name = "ServletUsers", urlPatterns = {"/ServletUsers"})
public class ServletUsers extends HttpServlet {

    @EJB
    private GestionnaireUtilisateurs gestionnaireUtilisateurs;
    @EJB
    private GestionnaireAbonnements gestionnaireAbonnements;
    @EJB
    private GestionnaireMorceaux gestionnaireMorceaux;

    String forwardTo = "";
    String message = "";
    int code = 1;

    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
     * methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // Pratique pour décider de l'action à faire 
        String action = request.getParameter("action");

        String nbpagination = request.getParameter("nbpagination");

        int nbpagi = 0;
        if (nbpagination != null) {
            nbpagi = Integer.parseInt(nbpagination);
        }

        int sizeListe = 0;

        HttpSession session = request.getSession(true);
        String conneclogin = session.getAttribute("login") == null ? "fail" : session.getAttribute("login").toString();
        String connecpassword = session.getAttribute("password") == null ? "fail" : session.getAttribute("password").toString();
        Utilisateur user = gestionnaireUtilisateurs.getUserByLogin(conneclogin);
        request.setAttribute("utilisateur", user);
        //Connection
        if (action.equals("connection")) {
            conneclogin = request.getParameter("conneclogin");
            connecpassword = request.getParameter("connecpassword");
            user = gestionnaireUtilisateurs.getUserByLogin(conneclogin);

            if (user == null || !user.getPassword().equals(connecpassword)) {
                forwardTo = "index.jsp?action=error";
                code = 1;
                message = "Votre login/mot de passe n'existe et/ou n'est pas bon";
            } else {
                session.setAttribute("login", conneclogin);
                session.setAttribute("password", connecpassword);
                configureProfil(request, conneclogin);
                sizeListe = gestionnaireMorceaux.countMorceaux(user);
                message = "Bienvenue";
            }
            //Inscription
        } else if (action.equals("inscription")) {
            forwardTo = "index.jsp?action=inscription";
            Collection<Abonnement> liste = gestionnaireAbonnements.getAllAbonnements();
            request.setAttribute("listAbo", liste);
            code = 0;
            message = "";
            //Créer un utilisateur
        } else if (action.equals("creerUnUtilisateur")) {
            createUser(request);
            //Update utilisateur
        } else if (action.equals("updateUtilisateur")) {
            user = updateUser(request, user);
            sizeListe = gestionnaireMorceaux.countMorceaux(user);
            //Navigation dans le site en changeant
        } else if (action.equals("reabonnement")) {
            String abonnement = request.getParameter("abonnement");
            Abonnement a = gestionnaireAbonnements.getAbonnementById(abonnement);
            gestionnaireUtilisateurs.reAbonnement(user, a);
            configureProfil(request, conneclogin);
            sizeListe = gestionnaireMorceaux.countMorceaux(user);
            message = "Vous êtes bien ré-abonné";
            //Créer un utilisateur
        } else if (user == null || !user.getPassword().equals(connecpassword)) {
            session.setAttribute("login", null);
            session.setAttribute("password", null);
            forwardTo = "index.jsp?action=error";
            code = 2;
            message = "Vous n'êtes pas connecté!";
            //Liste de tout les morceaux
        } else if (action.equals("deconnexion")) {
            session.setAttribute("Panier", null);
            session.setAttribute("login", null);
            session.setAttribute("password", null);
            forwardTo = "index.jsp?action=todo";
            code = 0;
            message = "Au-revoir!";
            //Show profil
        } else if (action.equals("showProfil")) {
            configureProfil(request, conneclogin);
            sizeListe = gestionnaireMorceaux.countMorceaux(user);
            //Default page
        } else if (action.equals("addMorceau")) {
            String panier = session.getAttribute("Panier").toString();
            String[] tabPanier = panier.split("[;]");
            System.out.println("panieeeeeeeeeeer : " + tabPanier.toString());
            for(int i = 0; i < tabPanier.length; i++) {
                tabPanier[i] = tabPanier[i].replaceAll("null","");
                Morceau m = gestionnaireMorceaux.getMorceau(tabPanier[i]);
                gestionnaireUtilisateurs.addMorceau(conneclogin, m);
            }
            configureProfil(request, conneclogin);
            sizeListe = gestionnaireMorceaux.countMorceaux(user);
            session.setAttribute("Panier", null);
            //Panier
        } else if (action.equals("addMorceauPanier")) {
            String id = request.getParameter("id");
            String panier = null;
            double prix = 0;
           
            if(session.getAttribute("Panier") != null) {
                panier = session.getAttribute("Panier").toString() +id + ";";
                System.out.println(panier);
                session.setAttribute("Panier", panier);
            } else {
                panier = id +";";
                session.setAttribute("Panier", panier);
                System.out.println("Panier : " + panier);
            }
            Collection<Morceau> liste = new ArrayList<Morceau>();
            if(session.getAttribute("Panier") != null) {
                panier = session.getAttribute("Panier").toString();
                String[] tabPanier = panier.split("[;]");
                System.out.println("panieeeeeeeeeeer : " + tabPanier.toString());
                for(int i = 0; i < tabPanier.length; i++) {
                    tabPanier[i] = tabPanier[i].replaceAll("null","");
                    Morceau m = gestionnaireMorceaux.getMorceau(tabPanier[i]);
                    if(!liste.contains(m)){
                        liste.add(m);
                        prix += m.getPrix();
                    }  
                }
            }
            String reduc = "Pas de réduction";
            if(liste.size()>3 && liste.size()<= 5){
                prix = 0.9*prix;
                reduc = "10% de réduction";
            }
               
            else if(liste.size()>5 && liste.size()<= 10){
                prix = 0.8*prix;
                reduc = "20% de réduction";
            }
            else if(liste.size()>10){
                prix = 0.7*prix;
                reduc = "30% de réduction";
            }  
            request.setAttribute("listeMorceaux", liste);
            request.setAttribute("total", prix);
            request.setAttribute("reduc", reduc);
            forwardTo = "index.jsp?action=showPanier";
        } else if (action.equals("showPanier")) {
            double prix = 0;
            Collection<Morceau> liste = new ArrayList<Morceau>();
            if(session.getAttribute("Panier") != null) {
                String panier = session.getAttribute("Panier").toString();
                String[] tabPanier = panier.split("[;]");
                System.out.println("panieeeeeeeeeeer : " + tabPanier.toString());
                for(int i = 0; i < tabPanier.length; i++) {
                    tabPanier[i] = tabPanier[i].replaceAll("null","");
                    Morceau m = gestionnaireMorceaux.getMorceau(tabPanier[i]);
                    if(!liste.contains(m)){
                        prix += m.getPrix();
                        liste.add(m);
                    }
                }
            }
            String reduc = "Pas de réduction";
            if(liste.size()>3 && liste.size()<= 5){
                prix = 0.9*prix;
                reduc = "10% de réduction";
            }
               
            else if(liste.size()>5 && liste.size()<= 10){
                prix = 0.8*prix;
                reduc = "20% de réduction";
            }
            else if(liste.size()>10){
                prix = 0.7*prix;
                reduc = "30% de réduction";
            }  
            request.setAttribute("listeMorceaux", liste);
            request.setAttribute("total", prix);
            request.setAttribute("reduc", reduc);
            System.out.println("panier session : " + request.getAttribute("listeMorceaux") + "taille = " + liste.size() + " " + prix);
            forwardTo = "index.jsp?action=showPanier";
        } else {
            forwardTo = "index.jsp?action=todo";
            code = 2;
            message = "La fonctionnalité pour le paramètre " + action + " est à implémenter !";
        }
        setPagination(request, nbpagi, sizeListe);
        RequestDispatcher dp = request.getRequestDispatcher(forwardTo + "&message=" + message + "&code=" + code);

        dp.forward(request, response);
        // Après un forward, plus rien ne peut être exécuté après ! 
    }

// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

    private int setPagination(HttpServletRequest request, int nbpagi, int sizeListe) {
        if (nbpagi == 0) {
            request.setAttribute("pagBefore", 0);
        } else {
            request.setAttribute("pagBefore", nbpagi - 1);
        }
        request.setAttribute("pagAfter", nbpagi + 1);

        int nbPages = (int) sizeListe / 10;
        request.setAttribute("nbPages", nbPages);

        return nbpagi;
    }

    /**
     * Create an user
     *
     * @param request
     */
    private void createUser(HttpServletRequest request) {
        String nom = request.getParameter("nom");
        String prenom = request.getParameter("prenom");
        String login = request.getParameter("login");
        String password = request.getParameter("password");
        String abonnement = request.getParameter("abonnement");
        Abonnement a = gestionnaireAbonnements.getAbonnementById(abonnement);
        Utilisateur u = null;
        try {
            u = gestionnaireUtilisateurs.creeUtilisateur(nom, prenom, login, password, a);
        } catch (ParseException ex) {
            Logger.getLogger(ServletUsers.class.getName()).log(Level.SEVERE, null, ex);
        }
        if (u == null) {
            forwardTo = "index.jsp?action=error";
            code = 2;
            message = "Utilisateur déjà existant";
        } else {
            forwardTo = "index.jsp?action=success";
            code = 0;
            message = "Utilisateur créé";
        }
    }

    /**
     * Update an user
     *
     * @param request
     */
    private Utilisateur updateUser(HttpServletRequest request, Utilisateur user) {
        String nom = request.getParameter("nom");
        String prenom = request.getParameter("prenom");
        String login = request.getParameter("login");
        String password = request.getParameter("password");
        HttpSession session = request.getSession(true);
        Utilisateur u = gestionnaireUtilisateurs.updateUtilisateur(user, nom, prenom, login, password);
        request.setAttribute("utilisateur", u);
        if (u == null) {
            configureProfil(request,u.getLogin());
            code = 2;
            message = "Erreur dans l'update";
        } else {
            session.setAttribute("login", null);
            session.setAttribute("password", null);
            forwardTo = "index.jsp?action=deconnexion";
            code = 0;
            message = "Mise à jour réussi! Veuillez vous reconnecter";
        }
        return u;
    }

    private void configureProfil(HttpServletRequest request, String conneclogin) {
        Utilisateur user = gestionnaireUtilisateurs.getUserByLogin(conneclogin);
        request.setAttribute("utilisateur", user);
        Collection<Abonnement> liste = gestionnaireAbonnements.getAllAbonnements();
        request.setAttribute("listAbo", liste);
        forwardTo = "index.jsp?action=showProfil";
        code = 0;
        message = "";
    }

}
TOP

Related Classes of servlets.ServletUsers

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.