private boolean limitaTentativasPorTelefone( Tenant tenant, DaoFactory daoFactory, Cliente cliente, TelefoneDao telefoneDao) { int limiteTentativas = tenant.getConfiguracoes().getLimiteTentativas(); int totalTentativas = cliente.getTelefone().getTentativa(); if (totalTentativas < limiteTentativas) { logger.info( "Ainda nao estourou tentativas telefone {}: {} de {} {}", new Object[] {cliente.getTelefone(), totalTentativas, limiteTentativas, cliente}); return true; } logger.info( "Finalizando por excesso de tentativas tentativas telefone {}: {} de {} {}", new Object[] {cliente.getTelefone(), totalTentativas, limiteTentativas, cliente}); finalizadorCliente.finalizaPorInutilizacaoSimples(tenant, daoFactory, cliente); return true; }
@Override public boolean executa( Tenant tenant, DaoFactory daoFactory, Ligacao ligacao, ResultadoLigacao resultadoLigacao) { Cliente cliente = ligacao.getDiscavel().getCliente(); logger.info("Incrementando tentativa {}", cliente); TelefoneDao telefoneDao = daoFactory.getTelefoneDao(); Telefone telefone = telefoneDao.procura(cliente.getTelefone().getId()); telefone.incTentativa(); telefoneDao.atualiza(telefone); if (tenant.getConfiguracoes().getLimiteTentativasPorTelefone()) { return limitaTentativasPorTelefone(tenant, daoFactory, cliente, telefoneDao); } return limitaTentativasPorCliente(tenant, daoFactory, cliente, telefoneDao, ligacao); }
private boolean limitaTentativasPorCliente( Tenant tenant, DaoFactory daoFactory, Cliente cliente, TelefoneDao telefoneDao, Ligacao ligacao) { int limiteTentativas = tenant.getConfiguracoes().getLimiteTentativas(); int totalTentativas = telefoneDao.totalTentativas(tenant.getConfiguracoes().bloqueiaCelular(), cliente); if (totalTentativas < limiteTentativas) { logger.info( "Ainda nao estourou tentativas cliente: {} de {} {}", new Object[] {totalTentativas, limiteTentativas, cliente}); return true; } logger.info( "Finalizando por excesso de tentativas tentativas cliente: {} de {} {}", new Object[] {totalTentativas, limiteTentativas, cliente}); MotivoFinalizacao motivoFinalizacao = daoFactory.getMotivoFinalizacaoDao().procura("Excesso tentativas"); finalizadorCliente.finaliza(tenant, daoFactory, cliente, motivoFinalizacao); logger.info("Finalizado {}", cliente); notificadorCliente.notificaFinalizacao( tenant, daoFactory, ligacao, cliente, resultadoLigacao, cliente.getTelefone(), false, cliente.getMailing().getCampanha()); return true; }