73 lines
2.3 KiB
Java
73 lines
2.3 KiB
Java
/*
|
|
* To change this template, choose Tools | Templates
|
|
* and open the template in the editor.
|
|
*/
|
|
package com.rjconsultores.ventaboletos.dao.hibernate;
|
|
|
|
import java.util.List;
|
|
|
|
import org.hibernate.Criteria;
|
|
import org.hibernate.Query;
|
|
import org.hibernate.SessionFactory;
|
|
import org.hibernate.criterion.Order;
|
|
import org.hibernate.criterion.Restrictions;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
import org.springframework.stereotype.Repository;
|
|
|
|
import com.rjconsultores.ventaboletos.dao.PerfilDAO;
|
|
import com.rjconsultores.ventaboletos.entidad.Perfil;
|
|
import com.rjconsultores.ventaboletos.vo.segurida.PerfilJerarquia;
|
|
|
|
/**
|
|
*
|
|
* @author rodrigo
|
|
*/
|
|
@Repository("perfilDAO")
|
|
public class PerfilHibernateDAO extends GenericHibernateDAO<Perfil, Integer>
|
|
implements PerfilDAO {
|
|
|
|
@Autowired
|
|
public PerfilHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
|
|
setSessionFactory(factory);
|
|
}
|
|
|
|
@Override
|
|
public List<Perfil> buscaPerfilJerarquia(Perfil perfilUsuario) {
|
|
|
|
PerfilJerarquia usuarioJerarquia = perfilUsuario.getIndJerarquia() == null ? PerfilJerarquia.NORMAL : PerfilJerarquia.buscar(perfilUsuario.getIndJerarquia());
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
sb.append(" from Perfil p ");
|
|
sb.append(" where p.activo = 1 ");
|
|
|
|
if (!usuarioJerarquia.equals(PerfilJerarquia.ADMIN)) {
|
|
if (!usuarioJerarquia.equals(PerfilJerarquia.NORMAL)) {
|
|
sb.append(" and (p.indJerarquia >= " + usuarioJerarquia.getValor() + " or p.indJerarquia <=" + PerfilJerarquia.NORMAL.getValor() + " or p.indJerarquia is null ) ");
|
|
} else {
|
|
sb.append(" and (p.indJerarquia is null or p.indJerarquia <=" + PerfilJerarquia.NORMAL.getValor() + " ) ");
|
|
}
|
|
}
|
|
sb.append(" order by p.descperfil ");
|
|
|
|
Query query = getSession().createQuery(sb.toString());
|
|
return query.list();
|
|
}
|
|
|
|
@Override
|
|
public List<Perfil> obtenerTodos() {
|
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
|
c.add(Restrictions.not(Restrictions.eq("descperfil", "RJ")));
|
|
c.addOrder(Order.asc("descperfil"));
|
|
|
|
return c.list();
|
|
}
|
|
|
|
public List<Perfil> buscar(String dscPerfil) {
|
|
|
|
return this.findByCriteria(Restrictions.eq("descperfil", dscPerfil.trim()), Restrictions.eq("activo", Boolean.TRUE));
|
|
|
|
}
|
|
}
|