/** * CentralIT - CITSmart */ package br.com.centralit.citcorpore.integracao; import java.util.ArrayList; import java.util.Collection; import java.util.List; import br.com.centralit.citcorpore.bean.CategoriaPostDTO; import br.com.citframework.dto.IDto; import br.com.citframework.excecao.PersistenceException; import br.com.citframework.integracao.Condition; import br.com.citframework.integracao.CrudDaoDefaultImpl; import br.com.citframework.integracao.Field; import br.com.citframework.integracao.Order; import br.com.citframework.util.Constantes; /** * @author Fl�vio.santana */ @SuppressWarnings({ "rawtypes", "unchecked" }) public class CategoriaPostDao extends CrudDaoDefaultImpl { public CategoriaPostDao() { super(Constantes.getValue("DATABASE_ALIAS"), null); } public Collection<Field> getFields() { Collection<Field> listFields = new ArrayList<>(); listFields.add(new Field("idCategoriaPost", "idCategoriaPost", true, true, false, false)); listFields.add(new Field("idCategoriaPostPai", "idCategoriaPostPai", false, false, false, false)); listFields.add(new Field("nomeCategoria", "nomeCategoria", false, false, false, false)); listFields.add(new Field("dataInicio", "dataInicio", false, false, false, false)); listFields.add(new Field("dataFim", "dataFim", false, false, false, false)); return listFields; } public String getTableName() { return "categoriapost"; } public Collection find(IDto obj) throws PersistenceException { return null; } public Collection list() throws PersistenceException { List list = new ArrayList(); list.add(new Order("nomeCategoria")); return super.list(list); } public Class getBean() { return CategoriaPostDTO.class; } public Collection findSemPai() throws PersistenceException { String sql = "SELECT idCategoriaPost, idCategoriaPostPai, nomeCategoria, dataInicio FROM categoriapost WHERE idCategoriaPostPai IS NULL AND dataFim IS NULL ORDER BY nomeCategoria "; List colDados = this.execSQL(sql, null); if (colDados != null) { List fields = new ArrayList(); fields.add("idCategoriaPost"); fields.add("idCategoriaPostPai"); fields.add("nomeCategoria"); fields.add("dataInicio"); return this.listConvertion(getBean(), colDados, fields); } return null; } public Collection findByIdPai(Integer idCategoriaPaiParm) throws PersistenceException { String sql = "SELECT idCategoriaPost, idCategoriaPostPai, nomeCategoria, dataInicio FROM categoriapost WHERE idCategoriaPostPai = ? AND AND dataFim IS NULL ORDER BY nomeCategoria"; List colDados = this.execSQL(sql, new Object[] { idCategoriaPaiParm }); if (colDados != null) { List fields = new ArrayList(); fields.add("idCategoriaPost"); fields.add("idCategoriaPostPai"); fields.add("nomeCategoria"); fields.add("dataInicio"); return this.listConvertion(getBean(), colDados, fields); } return null; } /** * Retorna lista de Categoria Posts ativas. * * @return Collection * @throws Exception */ public Collection listCategoriasAtivas() throws PersistenceException { List condicao = new ArrayList(); List ordenacao = new ArrayList(); condicao.add(new Condition("dataFim", "is", null)); ordenacao.add(new Order("nomeCategoria")); return super.findByCondition(condicao, ordenacao); } /** * Retorna lista de Categoria Servi�o setado idPai e idFilho. * * @return Collection * @throws Exception */ public List<CategoriaPostDTO> listCategoriasPostidPaiFilho(CategoriaPostDTO bean) throws PersistenceException { List condicao = new ArrayList(); List ordenacao = new ArrayList(); condicao.add(new Condition("nomeCategoria", "=", bean.getNomeCategoria())); condicao.add(new Condition("idCategoriaPostPai", "=", bean.getIdCategoriaPostPai())); return (List<CategoriaPostDTO>) super.findByCondition(condicao, ordenacao); } /** * Retorna lista de Categoria Servi�o setado idCategoria e pai isnull. * * @return Collection * @throws Exception */ public List<CategoriaPostDTO> listCategoriasPostidPaiIsNull(CategoriaPostDTO bean) throws PersistenceException { List condicao = new ArrayList(); List ordenacao = new ArrayList(); condicao.add(new Condition("nomeCategoria", "=", bean.getNomeCategoria())); condicao.add(new Condition("idCategoriaPostPai", "is",null )); return (List<CategoriaPostDTO>) super.findByCondition(condicao, ordenacao); } /** * Verifica se categoria informada j� existe. * * @param categoriaPostDTO * @return true - existe; false - n�o existe; * @throws PersistenceException */ public boolean verificarSeCategoriaExiste(CategoriaPostDTO categoriaPostDTO) throws PersistenceException { StringBuilder sql = new StringBuilder(); List parametros = new ArrayList(); sql.append("SELECT nomecategoria FROM categoriapost "); sql.append("WHERE datafim is null AND nomecategoria like ?"); parametros.add(categoriaPostDTO.getNomeCategoria()); List categorias = execSQL(sql.toString(), parametros.toArray()); if (categorias != null && !categorias.isEmpty()) { return true; } else { return false; } } /** * Retorna lista de Categoria Servi�o por nome. * * @return Collection * @throws Exception */ public Collection findByNomeCategoria(CategoriaPostDTO categoriaPostDTO) throws PersistenceException { List condicao = new ArrayList(); List ordenacao = new ArrayList(); condicao.add(new Condition("nomeCategoria", "=", categoriaPostDTO.getNomeCategoria())); ordenacao.add(new Order("nomeCategoria")); return super.findByCondition(condicao, ordenacao); } /** * Verifica se Categoria possui filho. * * @param categoriaServico * @return - <b>True:</b> Possui filho. - <b>False: </b>N�o possui. * @throws PersistenceException */ public boolean verificarSeCategoriaPossuiFilho(CategoriaPostDTO categoriaPost) throws PersistenceException { StringBuilder sql = new StringBuilder(); List parametros = new ArrayList(); sql.append("SELECT DISTINCT categoriafilho.nomecategoria FROM categoriapost categoriapai "); sql.append("INNER JOIN categoriapost categoriafilho ON categoriapai.idcategoriapost = categoriafilho.idcategoriapostpai "); sql.append("WHERE categoriapai.idcategoriapost = ? AND categoriafilho.datafim IS NULL"); parametros.add(categoriaPost.getIdCategoriaPost()); List filhos = execSQL(sql.toString(), parametros.toArray()); if (filhos != null && !filhos.isEmpty()) { return true; } else { return false; } } /** * Verifica se Categoria possui Servi�o associado * * @param categoriaServico * @return - <b>True:</b> Possui filho. - <b>False: </b>N�o possui. * @throws PersistenceException */ public boolean verificarSeCategoriaPossuiPost(CategoriaPostDTO categoriaServico) throws PersistenceException { StringBuilder sql = new StringBuilder(); List parametros = new ArrayList(); sql.append("SELECT DISTINCT post.titulo FROM categoriapost "); sql.append("INNER JOIN post ON categoriapost.idcategoriapost = post.idcategoriapost "); sql.append("WHERE categoriapost.idcategoriapost = ?"); parametros.add(categoriaServico.getIdCategoriaPost()); List categoriasEncontradas = execSQL(sql.toString(), parametros.toArray()); if (categoriasEncontradas != null && !categoriasEncontradas.isEmpty()) { return true; } else { return false; } } }