Package dao

Source Code of dao.UsuarioJPADAO

package dao;

import java.io.ByteArrayInputStream;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Query;

import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;

import entidades.Perfil;
import entidades.Permiso;
import entidades.Persona;
import entidades.Usuario;

public class UsuarioJPADAO implements UsuarioDAO {


  private EntityManagerFactory emf;
  private EntityManager em;
 
  public void setEntityManagerFactory(EntityManagerFactory emf) {
    this.emf=emf;
  }
 
  @Override
  public Usuario validarUsuario(Usuario elusuario) throws Exception{
   
    em = emf.createEntityManager();
   
    Usuario entidadUsuario = null;
   
    Query q =  em.createQuery("SELECT u FROM Usuario u WHERE u.personas.strCodigoPersona=?1 and u.strContrasena=?2",Usuario.class);
    q.setParameter(1, elusuario.getPersonas().getStrCodigoPersona());
    q.setParameter(2, elusuario.getStrContrasena());
   
    System.out.println(elusuario.getPersonas().getStrCodigoPersona());
   
    entidadUsuario =(Usuario)q.getSingleResult();

    em.close();
   
    if(entidadUsuario!=null){
    StreamedContent image; 
      if(entidadUsuario.getPersonas().getFotobin()!=null){
         image = new DefaultStreamedContent(new ByteArrayInputStream(entidadUsuario.getPersonas().getFotobin()));

         entidadUsuario.getPersonas().setScImagen(image);
       }
     
      return entidadUsuario;
    }else{
      return null;
    }
   
  }
 
  @Override
  public Usuario obtieneUsuario(Usuario elusuario) throws Exception{
   
    em = emf.createEntityManager();
   
    Usuario entidadUsuario = null;
   
    Query q =  em.createQuery("SELECT u FROM Usuario u WHERE u.personas.strCodigoPersona=?1",Usuario.class);
    q.setParameter(1, elusuario.getPersonas().getStrCodigoPersona());
   
    System.out.println(elusuario.getPersonas().getStrCodigoPersona());
   
    entidadUsuario =(Usuario)q.getSingleResult();
   
    em.close();
   
    if(entidadUsuario!=null){
      StreamedContent image; 
      if(entidadUsuario.getPersonas().getFotobin()!=null){
         image = new DefaultStreamedContent(new ByteArrayInputStream(entidadUsuario.getPersonas().getFotobin()));

         entidadUsuario.getPersonas().setScImagen(image);
       }
     
      return entidadUsuario;
    }else{
      return null;
    }
   
  }
 
  public void actualizarPerfil(Usuario usuario) throws Exception{
    em = emf.createEntityManager();

    em.getTransaction().begin();
   
    Usuario entidadUsuario = null;
   
    Query q =  em.createQuery("SELECT u FROM Usuario u WHERE u.personas.strCodigoPersona=?1",Usuario.class);
    q.setParameter(1, usuario.getPersonas().getStrCodigoPersona());
   
    entidadUsuario = (Usuario)q.getSingleResult();
   
    Perfil entidadPerfil = new Perfil();
    entidadPerfil.setStrCodigoPerfil(usuario.getPerfiles().getStrCodigoPerfil());
   
    entidadUsuario.setPerfiles(entidadPerfil);
   
    em.merge(entidadUsuario);
    em.flush();
       
    em.getTransaction().commit();
    em.close();
  }

  @SuppressWarnings("rawtypes")
  @Override
  public ArrayList<Permiso> listarMenus(Usuario elusuario) throws Exception {

    em = emf.createEntityManager();

    ArrayList<Permiso> permisosUser = new ArrayList<Permiso>();
    
    Query q =  em.createQuery("SELECT c1 FROM Permiso c1 INNER JOIN c1.tbPerfiles c2 where c2.strCodigoPerfil=?1" );
    q.setParameter(1, elusuario.getPerfiles().getStrCodigoPerfil());

    List l=q.getResultList();
    if(l.size()>0){
      for ( int i=0; i < l.size(); i++ ) {
        Permiso entidad = (Permiso)l.get(i);
        System.out.println("permiso: "+l.get(i));
        permisosUser.add(entidad);
      }
    }
   
    em.close();

    return permisosUser;
 
  }

  @Override
  public Usuario buscaContrasena(Persona persona) throws Exception {

    em=emf.createEntityManager();
    Query q =  em.createQuery("SELECT u FROM Usuario u WHERE u.personas.strCodigoPersona=?1");
    q.setParameter(1, persona.getStrCodigoPersona());
   
      Usuario entidadUsuario =(Usuario)q.getSingleResult();
      em.close();
      if(entidadUsuario!=null){
        return entidadUsuario;
      }else{
        return null;
      }
 
  }

  @Override
  public void registrarUsuario(Usuario nuevo) throws Exception {
    em=emf.createEntityManager();
   
    Persona persona = new Persona();
    /*if(persona.getStrCodigoPersona().startsWith("PE-")){
      System.out.println("tudo bem");
    }else{*/
      persona.setStrCodigoPersona("PE-" + nuevo.getStrContrasena());
    /*}*/

    nuevo.setPersonas(persona);

    //1.inicia la transacci�n
    em.getTransaction().begin();

    //2.ejecuta las operaciones
    em.persist(nuevo);
    em.flush();
   
    //3.ejecuta commit a la transacci�n
    em.getTransaction().commit();
    em.close();
  }
 
  public void cambiaContrasena(Usuario usuario) throws Exception {
    em = emf.createEntityManager();

    em.getTransaction().begin();
   
    Usuario entidadUsuario = null;
   
    Query q =  em.createQuery("SELECT u FROM Usuario u WHERE u.personas.strCodigoPersona=?1",Usuario.class);
    q.setParameter(1, usuario.getPersonas().getStrCodigoPersona());
   
    entidadUsuario = (Usuario)q.getSingleResult();
   
    entidadUsuario.setStrContrasena(usuario.getStrContrasena());
   
    em.merge(entidadUsuario);
    em.flush();
       
    em.getTransaction().commit();
    em.close();
  }
 

}
TOP

Related Classes of dao.UsuarioJPADAO

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.