Skip to content

Commit

Permalink
Busca informações de chamadas apenas do aluno nos últimos 12 meses e …
Browse files Browse the repository at this point in the history
…ganhar melhoria de performance
  • Loading branch information
brunorg committed Aug 9, 2016
1 parent 612f2fb commit 413a4e3
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -57,7 +57,14 @@ public List<Chamada> listarkey(int key) {
pc.commitAndClose();
return result;
}


public List<Chamada> listarEntre(int id, Date startDate, Date endDate) {
PersistenceContext pc = DAOFactory.createPersistenceContext();
ChamadaDAO dao = DAOFactory.getChamadaDAO(pc);
List<Chamada> result = dao.listBetween(id,startDate,endDate);
pc.commitAndClose();
return result;
}

/**
* Criar chamada.
Expand Down Expand Up @@ -117,7 +124,7 @@ public List<Chamada> listaPrecenca(Aluno aluno , int precenca) {
return result;
}
/**
* Conta faltas
* Conta num faltas
* @param id
* @return
*/
Expand Down Expand Up @@ -183,5 +190,5 @@ public long countFaltasAno(int idAluno, int ano) {
pc.commitAndClose();
return result;
}

}
10 changes: 6 additions & 4 deletions plataformaAmorim/src/br/com/muranodesign/dao/ChamadaDAO.java
Original file line number Diff line number Diff line change
Expand Up @@ -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
/**
Expand Down Expand Up @@ -71,7 +71,7 @@ public interface ChamadaDAO {


/**
* Listar de faltas
* Listar num de faltas
* @param id
* @return
*/
Expand All @@ -95,6 +95,8 @@ public interface ChamadaDAO {

public List<Chamada> dataPresenca(int id, Calendar cal);

public List<Chamada> listBetween(int idAluno, Date startDate, Date endDate);

public long countFaltasAno(int idAluno, int ano);


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,21 @@
*/

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;
import org.hibernate.criterion.Projections;
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;



Expand Down Expand Up @@ -221,6 +220,16 @@ public List<Chamada> dataPresenca(int id, Calendar cal) {
return result;
}

@SuppressWarnings("unchecked")
public List<Chamada> 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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -128,11 +123,29 @@ public Chamada getChamada(@PathParam("id") int id) {
List<Chamada> 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<Chamada> 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<Chamada> chamadas, resultado = new ArrayList<Chamada>();
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")
Expand Down

0 comments on commit 413a4e3

Please sign in to comment.