Skip to content

Instantly share code, notes, and snippets.

@plentz
Created December 29, 2011 13:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save plentz/1534142 to your computer and use it in GitHub Desktop.
Save plentz/1534142 to your computer and use it in GitHub Desktop.
private void parseEvento(MovimentoGroupHandler handler, String[] fields) {
Usuario usuarioMobile = getManager().getUsuarioLogado();
Evento evento = new Evento();
parseValues(fields, evento);
evento.setPromotor(usuarioMobile);
evento.setOrigem(TipoOrigemColetaDomain.MOBILE);
boolean isRetorno = !"0".equals(fields[11]);
if (isRetorno) {
//FIXME remover isso quando corrigir no mobile a limpeza dos registros no sucesso do send. Esse tratamento é para o caso de transient -
// oq acontecia: mobile recebe timeout e não apaga dados. mobile tenta enviar novamente os dados, recebemos o evento e buscamos do banco
// hibernate carregava evento(managed) que já havia sido associado à um movimento. synchornizer trocava o movimento que estava no
// evento(managed) e quando hibernate fazia flush, tentava salvar o evento com o movimento que veio do mobile e foi ignorado(transient).
if(evento.getMovimento() != null) {
return;
}
} else {
//FIXME remover isso após todos os clientes atualizarem as versões do mobile, pois mobile está enviando duplicado o evento em algumas situações.
if(eventoDAO.findEventoFromMobile(evento) != null){
logger.warn("ignorando evento enviado do mobile. data:, promotor: pdv: ");
return;
}
geoLocationEvento(evento);
handler.cacheEvento(evento);
}
if (!"0".equals(fields[10])) {
Long mobileMovimentoId = Long.parseLong(fields[10]);
Movimento movimento = handler.getParsedEntity(mobileMovimentoId);
//FIXME remover isso quando corrigir no mobile o envio de entidades sem o relacionamento
if (movimento == null) {
return;
}
movimento.getEventos().add(evento);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment