com.ipn.escom.ageinnn.usuario.service.UsuarioServiceImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.ipn.escom.ageinnn.usuario.service.UsuarioServiceImpl.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ipn.escom.ageinnn.usuario.service;

import com.ipn.escom.ageinnn.alumno.model.Alumno;
import com.ipn.escom.ageinnn.login.model.Login;
import com.ipn.escom.ageinnn.service.Service;
import com.ipn.escom.ageinnn.usuario.model.Administrador;
import com.ipn.escom.ageinnn.usuario.model.Direccion;
import com.ipn.escom.ageinnn.usuario.model.Docente;
import com.ipn.escom.ageinnn.usuario.model.Pais;
import com.ipn.escom.ageinnn.usuario.model.Usuario;
import com.ipn.escom.ageinnn.utils.AlumnoCommand;
import com.ipn.escom.ageinnn.utils.DocenteCommand;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import javax.transaction.Transactional;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

/**
 *
 * @author Erick
 */
public class UsuarioServiceImpl implements UsuarioService {

    private Session session;

    @Override
    @SuppressWarnings("unchecked")
    public <T extends Usuario> List<T> findAll(Class<T> clazz) {
        setSession(Service.getSessionFactory().getCurrentSession());
        this.session.beginTransaction();
        List<T> lista = session.createCriteria(clazz).list();
        session.getTransaction().commit();
        return lista;
    }

    public <T extends Usuario> List<T> findAllByAlumnoCommand(AlumnoCommand alumnoCommand) {
        List<T> alumnoList = new ArrayList();
        try {
            session = Service.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            Criteria criteria = session.createCriteria(Alumno.class);
            System.out.println(alumnoCommand);
            if (alumnoCommand != null) {
                if (alumnoCommand.getNombre() != null && !"".equals(alumnoCommand.getNombre())) {
                    System.out.println("Entra nombre");
                    criteria.add(Restrictions.eq("nombre", alumnoCommand.getNombre()));
                }
                if (alumnoCommand.getEmail() != null && !"".equals(alumnoCommand.getEmail())) {
                    System.out.println("Entra mail");
                    criteria.add(Restrictions.eq("email", alumnoCommand.getEmail()));
                }
                if (alumnoCommand.getPaisId() != null && alumnoCommand.getPaisId() > 0) {
                    System.out.println("Entra pais");
                    criteria.add(Restrictions.eq("paisId", alumnoCommand.getPaisId()));
                }
                if (alumnoCommand.getSexoId() != null && alumnoCommand.getSexoId() > 0) {
                    System.out.println("Entra sexo");
                    criteria.add(Restrictions.eq("idSexo", alumnoCommand.getSexoId()));
                }
                if (alumnoCommand.getEstadoRegistroId() != null && alumnoCommand.getEstadoRegistroId() > 0) {
                    System.out.println("Entra curso");
                    criteria.add(Restrictions.eq("estadoRegistroId", alumnoCommand.getEstadoRegistroId()));
                }
            }
            alumnoList = criteria.list();
            session.getTransaction().commit();

        } catch (Exception e) {
            session.getTransaction().rollback();
            throw e;
        }
        return alumnoList;
    }

    public <T extends Usuario> List<T> findAllByDocenteCommand(DocenteCommand docenteCommand) {
        List<T> docenteList = new ArrayList();
        try {
            session = Service.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            Criteria criteria = session.createCriteria(Docente.class);
            System.out.println(docenteCommand);
            if (docenteCommand != null) {
                if (docenteCommand.getNombre() != null && !"".equals(docenteCommand.getNombre())) {
                    System.out.println("Entra nombre");
                    criteria.add(Restrictions.eq("nombre", docenteCommand.getNombre()));
                }
                if (docenteCommand.getEmail() != null && !"".equals(docenteCommand.getEmail())) {
                    System.out.println("Entra mail");
                    criteria.add(Restrictions.eq("email", docenteCommand.getEmail()));
                }
                if (docenteCommand.getPaisId() != null && docenteCommand.getPaisId() > 0) {
                    System.out.println("Entra pais");
                    criteria.add(Restrictions.eq("paisId", docenteCommand.getPaisId()));
                }
                if (docenteCommand.getSexoId() != null && docenteCommand.getSexoId() > 0) {
                    System.out.println("Entra sexo");
                    criteria.add(Restrictions.eq("idSexo", docenteCommand.getSexoId()));
                }
                if (docenteCommand.getEstadoRegistroId() != null && docenteCommand.getEstadoRegistroId() > 0) {
                    System.out.println("Entra curso");
                    criteria.add(Restrictions.eq("estadoRegistroId", docenteCommand.getEstadoRegistroId()));
                }
            }
            docenteList = criteria.list();
            session.getTransaction().commit();

        } catch (Exception e) {
            session.getTransaction().rollback();
            throw e;
        }
        return docenteList;
    }

    @SuppressWarnings("unchecked")
    public <T extends Usuario> List<T> aspirantesConDocumentacion(Class<T> clazz) {
        List<T> lista = null;
        try {
            setSession(Service.getSessionFactory().getCurrentSession());
            this.session.beginTransaction();
            Query q;
            String query = "select a FROM Aspirante a, DocumentoEntregado de where a.id = de.aspiranteId group by a.id";
            q = session.createQuery(query);
            lista = q.list();
            session.getTransaction().commit();
        } catch (Exception e) {
            session.getTransaction().rollback();
            throw e;
        }

        return lista;
    }

    @SuppressWarnings("unchecked")
    public <T extends Usuario> List<T> findAllAspirantes(Class<T> clazz) {
        setSession(Service.getSessionFactory().getCurrentSession());
        this.session.beginTransaction();
        Integer id = 7;
        List<T> lista = session.createCriteria(clazz).add(Restrictions.eq("estadoRegistroId", id)).list();
        session.getTransaction().commit();
        return lista;
    }

    @Override
    @Transactional
    public <T extends Usuario> Serializable save(T t) {
        Integer id = null;

        CatalogoServiceImpl catalogoServiceImpl = new CatalogoServiceImpl();
        Pais paisMexico = catalogoServiceImpl.findMexico();
        if (t.getPaisId() != paisMexico.getId()) {
            System.out.println("Los paises no son iguales");
            t.setNacional(false);
        }
        //        t.setEnabled(true);
        try {
            session = Service.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            id = (Integer) session.save(t);
            session.getTransaction().commit();
        } catch (Exception e) {
            session.getTransaction().rollback();
            throw e;
        }
        return id;
    }

    @Transactional
    public Serializable saveAdminUser(Administrador t) {
        Integer id = null;
        try {
            session = Service.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            id = (Integer) session.save(t);
            session.getTransaction().commit();
        } catch (Exception e) {
            session.getTransaction().rollback();
            throw e;
        }
        return id;
    }

    @Override
    @Transactional
    public <T extends Usuario> void remove(Class<T> clazz, Integer id) {
        Usuario u = find(clazz, id);
        if (u != null) {
            try {
                session = Service.getSessionFactory().getCurrentSession();
                session.beginTransaction();
                session.delete(u);
                session.getTransaction().commit();
            } catch (Exception e) {
                session.getTransaction().rollback();
                throw e;
            }

        }
    }

    @Override
    @Transactional
    @SuppressWarnings("unchecked")
    public <T extends Usuario> T find(Class<T> clazz, Integer id) {
        T t = null;
        try {
            this.session = Service.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            t = (T) session.get(clazz, id);
            session.getTransaction().commit();
        } catch (Exception e) {
            session.getTransaction().rollback();
            throw e;
        }
        return t;

    }

    @Transactional
    public <T extends Usuario> void update(T t, Class<T> clazz) {
        System.out.println("Ejecutando el mtodo save");
        try {
            this.session = Service.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            session.saveOrUpdate(t);
            session.getTransaction().commit();
        } catch (Exception e) {
            session.getTransaction().rollback();
            throw e;
        }
    }

    public Session getSession() {
        this.session = Service.getSessionFactory().getCurrentSession();
        return session;
    }

    public void setSession(Session session) {
        this.session = session;
    }

    public <T extends Usuario> T findByEmail(Class<T> clazz, String email) {
        T login = null;
        List<Usuario> loginList = new ArrayList<>();
        try {
            this.session = Service.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            loginList = session.createCriteria(clazz).add(Restrictions.eq("email", email)).list();
            session.getTransaction().commit();
        } catch (Exception e) {
            session.getTransaction().rollback();
            throw e;
        }

        if (!loginList.isEmpty()) {
            login = (T) loginList.get(0);
        }

        return login;
    }

    public String generateToken() {
        return UUID.randomUUID().toString();
    }

    public <T extends Usuario> T findByEmailAndToken(Class<T> clazz, String email, String token) {
        T login = null;
        List<T> loginList = new ArrayList<>();
        try {
            this.session = Service.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            loginList = session.createCriteria(clazz)
                    .add(Restrictions.and(Restrictions.eq("email", email), Restrictions.eq("mailToken", token)))
                    .list();
            session.getTransaction().commit();
        } catch (Exception e) {
            session.getTransaction().rollback();
            throw e;
        }

        if (!loginList.isEmpty()) {
            login = loginList.get(0);
        }

        return login;
    }

    public <T extends Usuario> List<T> findAllByEnabled(Class<T> clazz) {
        setSession(Service.getSessionFactory().getCurrentSession());
        this.session.beginTransaction();
        List<T> lista = session.createCriteria(clazz).add(Restrictions.eq("enabled", true)).list();
        session.getTransaction().commit();
        return lista;
    }

    public Integer saveDireccion(Direccion direccion) {
        Integer id = null;

        try {
            session = Service.getSessionFactory().getCurrentSession();
            session.beginTransaction();

            id = (Integer) session.save(direccion);

            session.getTransaction().commit();

        } catch (Exception e) {
            session.getTransaction().rollback();
        }

        return id;
    }

    public void updateDireccion(Direccion direccion) {

        try {
            session = Service.getSessionFactory().getCurrentSession();
            session.beginTransaction();

            session.saveOrUpdate(direccion);

            session.getTransaction().commit();

        } catch (Exception e) {
            session.getTransaction().rollback();
        }
    }

}