co.com.siscomputo.administracion.logic.UsuarioRolLogic.java Source code

Java tutorial

Introduction

Here is the source code for co.com.siscomputo.administracion.logic.UsuarioRolLogic.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 co.com.siscomputo.administracion.logic;

import co.com.siscomputo.administracion.entites.ObjetoRetornaEntity;
import co.com.siscomputo.administracion.persistencia.UsuarioRolEntity;
import co.com.siscomputo.conexion.HibernateUtil;
import java.util.ArrayList;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

/**
 *
 * @author LENOVO
 */
public class UsuarioRolLogic {

    private Session sesion;//Variable de la sesin y conexin de la base de datos

    private Transaction tx;//Variable que almacena las consultas y las transacciones de la base de datos

    /**
     * Metodo que establece la conexin a la base de datos, previa validacin de
     * que la sesin no exista o este nula
     *
     * @throws HibernateException
     */
    private String initOperation() {
        String retorno;
        try {
            if (sesion == null) {
                sesion = HibernateUtil.getSessionFactory().openSession();
                tx = sesion.beginTransaction();
            } else {
                sesion = null;
                sesion = HibernateUtil.getSessionFactory().openSession();
                tx = sesion.beginTransaction();
            }
            retorno = "Ok";
        } catch (Error e) {
            retorno = "Error Conexin Hibernate " + e;
        }
        return retorno;
    }

    /**
     * Mtodo que inserta una relacin usuario Rol nueva
     *
     * @param usurol
     * @return
     */
    public ObjetoRetornaEntity insertarUsuarioRol(ArrayList<UsuarioRolEntity> usurol) {
        ObjetoRetornaEntity retorna = new ObjetoRetornaEntity();
        ArrayList<Object> listaRetorna = new ArrayList<>();
        System.out.println("Ingresa");
        if (usurol.size() > 0) {
            //limpia(usurol.get(0).getId_usuario_rol());
        }
        try {
            String validaConexion = initOperation();
            if (!"Ok".equalsIgnoreCase(validaConexion)) {
                retorna.setNumeroRespuesta(3);
                retorna.setTrazaRespuesta("Error de Conexin " + validaConexion);
            } else {

                int siguiente = maxUsuarioRol();
                for (UsuarioRolEntity usrol : usurol) {

                    UsuarioRolEntity usuarioRolEntity = usrol;
                    usuarioRolEntity.setId_usuario_rol(siguiente);
                    siguiente++;
                    sesion.save(usuarioRolEntity);
                    listaRetorna.add(usuarioRolEntity);
                }
                tx.commit();

                retorna.setRetorna(listaRetorna);
                retorna.setTrazaRespuesta("Insercin de UsuarioRol Exitosa");
                retorna.setNumeroRespuesta(15);
            }
        } catch (Exception e) {
            e.printStackTrace();
            retorna = new ObjetoRetornaEntity();
            retorna.setNumeroRespuesta(0);
            retorna.setTrazaRespuesta(e.getMessage());
        } finally {
            try {
                sesion.close();

            } catch (HibernateException hibernateException) {
                hibernateException.printStackTrace();
            }
        }
        return retorna;
    }

    /**
     * Mtodo que limpia las asiganaciones que tiene un usuario antes de que
     * ingresen las nuevas asignaciones de roles     *
     * @param idUsuario
     */
    public void limpia(int idUsuario, int idArea) {
        try {
            String validaConexion = initOperation();

            if (!"Ok".equalsIgnoreCase(validaConexion)) {
                System.out.println("error conexin: " + validaConexion);
            } else {
                Query query = sesion.createQuery(
                        "delete UsuarioRolEntity WHERE usuario.idUsuario=:idUsuario AND area.idArea=:idArea");
                query.setParameter("idUsuario", idUsuario);
                query.setParameter("idArea", idArea);
                int result = query.executeUpdate();
                tx.commit();

                System.out.println("LIMPIA: " + result);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                sesion.close();

            } catch (HibernateException hibernateException) {
                hibernateException.printStackTrace();
            }
        }
    }

    /**
     * Mtodo que trar el siguiente ID de la tabla Usuario-Rol
     *
     * @return
     */
    private int maxUsuarioRol() {
        int ret = -1;
        try {
            String validaConexion = initOperation();
            if (!"Ok".equalsIgnoreCase(validaConexion)) {

            } else {
                Query query = sesion.createQuery("SELECT MAX(id_usuario_rol) FROM UsuarioRolEntity");
                ret = (int) query.uniqueResult();
                ret++;
            }
        } catch (Exception e) {
            ret = 1;
        }
        return ret;
    }

    /**
     * todo que permite actualizar una relacin usuario-rol
     *
     * @param usurol
     */
    public UsuarioRolEntity actualizarUsuarioRol(UsuarioRolEntity usurol) {
        try {
            String validaConexion = initOperation();
            if (!"Ok".equalsIgnoreCase(validaConexion)) {
                usurol.setNumeroRespuesta(3);
                usurol.setTrazaRespuesta("Error de Conexin " + validaConexion);
            } else {

                sesion.update(usurol);
                tx.commit();

                usurol.setTrazaRespuesta("Actualizacin de RolPermiso Exitosa");
                usurol.setNumeroRespuesta(16);
            }
        } catch (Exception e) {
            e.printStackTrace();
            usurol = new UsuarioRolEntity();
            usurol.setNumeroRespuesta(0);
            usurol.setTrazaRespuesta(e.getMessage());
        } finally {
            try {
                sesion.close();

            } catch (HibernateException hibernateException) {
                hibernateException.printStackTrace();
            }
        }
        return usurol;
    }

    /**
     * Mtodo que consulta la lista de relaciones entre un Usuarios y Roles
     *
     * @param idUsuario
     * @return
     */
    public ObjetoRetornaEntity listaRolPermisoPorRol(int idUsuario) {
        ObjetoRetornaEntity retorna = new ObjetoRetornaEntity();
        try {
            String validaConexion = initOperation();
            if (!"Ok".equalsIgnoreCase(validaConexion)) {
                retorna.setNumeroRespuesta(3);
                retorna.setTrazaRespuesta("Error de Conexin " + validaConexion);
            } else {
                Query query = sesion.createQuery(
                        "SELECT urp FROM UsuarioRolEntity urp, UsuarioEntity u WHERE urp.usuario=u AND u.idUsuario=:idUsuario");
                query.setParameter("idUsuario", idUsuario);
                retorna.setRetorna((ArrayList<Object>) query.list());
                retorna.setTrazaRespuesta("Consulta tabla Usuario-Rol exitosa");
                retorna.setNumeroRespuesta(21);

            }
        } catch (Exception e) {
            e.printStackTrace();
            retorna = new ObjetoRetornaEntity();
            retorna.setNumeroRespuesta(0);
            retorna.setTrazaRespuesta(e.getMessage());
        } finally {
            try {
                sesion.close();

            } catch (HibernateException hibernateException) {
                hibernateException.printStackTrace();
            }
        }
        return retorna;
    }

    public ObjetoRetornaEntity listaRolPermisoPorArea(int idArea, int idUsuario) {
        ObjetoRetornaEntity retorna = new ObjetoRetornaEntity();
        try {
            String validaConexion = initOperation();
            if (!"Ok".equalsIgnoreCase(validaConexion)) {
                retorna.setNumeroRespuesta(3);
                retorna.setTrazaRespuesta("Error de Conexin " + validaConexion);
            } else {
                Query query = sesion.createQuery(
                        "SELECT urp FROM UsuarioRolEntity urp, AreaEntity a, UsuarioEntity u WHERE urp.area=a AND urp.usuario=u AND a.idArea=:idArea AND u.idUsuario=:idUsuario");
                query.setParameter("idArea", idArea);
                query.setParameter("idUsuario", idUsuario);
                retorna.setRetorna((ArrayList<Object>) query.list());
                retorna.setTrazaRespuesta("Consulta tabla Usuario-Rol exitosa");
                retorna.setNumeroRespuesta(21);

            }
        } catch (Exception e) {
            e.printStackTrace();
            retorna = new ObjetoRetornaEntity();
            retorna.setNumeroRespuesta(0);
            retorna.setTrazaRespuesta(e.getMessage());
        } finally {
            try {
                sesion.close();

            } catch (HibernateException hibernateException) {
                hibernateException.printStackTrace();
            }
        }
        return retorna;
    }

}