diff --git a/plataformaAmorim/src/br/com/muranodesign/business/ChamadaService.java b/plataformaAmorim/src/br/com/muranodesign/business/ChamadaService.java index 519156f..77493f5 100644 --- a/plataformaAmorim/src/br/com/muranodesign/business/ChamadaService.java +++ b/plataformaAmorim/src/br/com/muranodesign/business/ChamadaService.java @@ -9,16 +9,16 @@ */ package br.com.muranodesign.business; -import java.util.Calendar; -import java.util.Date; -import java.util.List; - import br.com.muranodesign.dao.ChamadaDAO; import br.com.muranodesign.dao.DAOFactory; import br.com.muranodesign.hibernate.impl.PersistenceContext; import br.com.muranodesign.model.Aluno; import br.com.muranodesign.model.Chamada; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + // TODO: Auto-generated Javadoc @@ -57,7 +57,14 @@ public List listarkey(int key) { pc.commitAndClose(); return result; } - + + public List listarEntre(int id, Date startDate, Date endDate) { + PersistenceContext pc = DAOFactory.createPersistenceContext(); + ChamadaDAO dao = DAOFactory.getChamadaDAO(pc); + List result = dao.listBetween(id,startDate,endDate); + pc.commitAndClose(); + return result; + } /** * Criar chamada. @@ -117,7 +124,7 @@ public List listaPrecenca(Aluno aluno , int precenca) { return result; } /** - * Conta nš faltas + * Conta num faltas * @param id * @return */ @@ -183,5 +190,5 @@ public long countFaltasAno(int idAluno, int ano) { pc.commitAndClose(); return result; } - + } diff --git a/plataformaAmorim/src/br/com/muranodesign/dao/ChamadaDAO.java b/plataformaAmorim/src/br/com/muranodesign/dao/ChamadaDAO.java index 8d3e595..b6d873e 100644 --- a/plataformaAmorim/src/br/com/muranodesign/dao/ChamadaDAO.java +++ b/plataformaAmorim/src/br/com/muranodesign/dao/ChamadaDAO.java @@ -9,13 +9,13 @@ */ package br.com.muranodesign.dao; +import br.com.muranodesign.model.Aluno; +import br.com.muranodesign.model.Chamada; + import java.util.Calendar; import java.util.Date; import java.util.List; -import br.com.muranodesign.model.Aluno; -import br.com.muranodesign.model.Chamada; - // TODO: Auto-generated Javadoc /** @@ -71,7 +71,7 @@ public interface ChamadaDAO { /** - * Listar nš de faltas + * Listar num de faltas * @param id * @return */ @@ -95,6 +95,8 @@ public interface ChamadaDAO { public List dataPresenca(int id, Calendar cal); + public List listBetween(int idAluno, Date startDate, Date endDate); + public long countFaltasAno(int idAluno, int ano); diff --git a/plataformaAmorim/src/br/com/muranodesign/dao/impl/ChamadaDAOImpl.java b/plataformaAmorim/src/br/com/muranodesign/dao/impl/ChamadaDAOImpl.java index 63ad343..4a1364b 100644 --- a/plataformaAmorim/src/br/com/muranodesign/dao/impl/ChamadaDAOImpl.java +++ b/plataformaAmorim/src/br/com/muranodesign/dao/impl/ChamadaDAOImpl.java @@ -9,10 +9,11 @@ */ package br.com.muranodesign.dao.impl; -import java.util.Calendar; -import java.util.Date; -import java.util.List; - +import br.com.muranodesign.dao.ChamadaDAO; +import br.com.muranodesign.hibernate.AbstractHibernateDAO; +import br.com.muranodesign.hibernate.HibernatePersistenceContext; +import br.com.muranodesign.model.Aluno; +import br.com.muranodesign.model.Chamada; import org.hibernate.Criteria; import org.hibernate.criterion.Order; import org.hibernate.criterion.ProjectionList; @@ -20,11 +21,9 @@ import org.hibernate.criterion.Restrictions; import org.hibernate.transform.Transformers; -import br.com.muranodesign.dao.ChamadaDAO; -import br.com.muranodesign.hibernate.AbstractHibernateDAO; -import br.com.muranodesign.hibernate.HibernatePersistenceContext; -import br.com.muranodesign.model.Aluno; -import br.com.muranodesign.model.Chamada; +import java.util.Calendar; +import java.util.Date; +import java.util.List; @@ -221,6 +220,16 @@ public List dataPresenca(int id, Calendar cal) { return result; } + @SuppressWarnings("unchecked") + public List listBetween(int idAluno, Date startDate, Date endDate) { + short t = 0; + Criteria criteria = getSession().createCriteria(Chamada.class); + criteria.add(Restrictions.between("data", startDate, endDate)); + criteria.createAlias("aluno", "aluno"); + criteria.add(Restrictions.eq("aluno.idAluno", idAluno)); + return criteria.list(); + } + @SuppressWarnings("unchecked") public long countFaltasAno(int idAluno, int ano) { short t = 0; diff --git a/plataformaAmorim/src/br/com/muranodesign/resources/ChamadaResource.java b/plataformaAmorim/src/br/com/muranodesign/resources/ChamadaResource.java index 30d51fb..687fa6c 100644 --- a/plataformaAmorim/src/br/com/muranodesign/resources/ChamadaResource.java +++ b/plataformaAmorim/src/br/com/muranodesign/resources/ChamadaResource.java @@ -18,12 +18,7 @@ import java.util.Hashtable; import java.util.List; -import javax.ws.rs.FormParam; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; +import javax.ws.rs.*; import org.apache.log4j.Logger; import org.codehaus.jettison.json.JSONArray; @@ -128,11 +123,29 @@ public Chamada getChamada(@PathParam("id") int id) { List resultado; resultado = new ChamadaService().listarkey(id); Chamada evento = resultado.get(0); - return evento; } - + + /** + * Gets Chamada. + * + * @param id do aluno + * @return the Chamada + */ + @Path("list/{id}") + @GET + @Produces("application/json") + public List getChamada(@PathParam("id") int id, @QueryParam("startDate") Long startDate, @QueryParam("endDate") Long endDate) { + logger.info("Lista Chamada por id " + id + " e data entre startDate = " + startDate + " e endDate = " + endDate); + List chamadas, resultado = new ArrayList(); + chamadas = new ChamadaService().listarEntre(id, new Date(startDate), new Date(endDate)); + for (Chamada chamada: chamadas) { + resultado.add(new Chamada(chamada.getIdchamada(), chamada.getData(), chamada.getPresenca())); + } + return resultado; + } + @Path("ListarGrupo/{idGrupo}/{dia}/{mes}") @GET @Produces("application/json")