From 69909bbe2c43aad2b88eb458dc186772a2c1ec6a Mon Sep 17 00:00:00 2001 From: Starlone Passos Date: Wed, 12 Dec 2018 21:57:06 -0200 Subject: [PATCH] Coletando navegadores por mes --- rn/MdEstatisticasAgendamentoRN.php | 15 +++++++++------ rn/MdEstatisticasColetarRN.php | 42 ++++++++++++++++++++++++++++++++---------- rn/MdEstatisticasEnviarRN.php | 5 +++++ 3 files changed, 46 insertions(+), 16 deletions(-) diff --git a/rn/MdEstatisticasAgendamentoRN.php b/rn/MdEstatisticasAgendamentoRN.php index be249c1..fe1ba42 100644 --- a/rn/MdEstatisticasAgendamentoRN.php +++ b/rn/MdEstatisticasAgendamentoRN.php @@ -21,7 +21,7 @@ class MdEstatisticasAgendamentoRN extends InfraRN $this->gravarLog('Autenticar no WebService'); if (!$enviar->autenticar()) { - throw new InfraException('Problemas com a autenticação.'); + throw new InfraException('Problemas com a autenticação.'); } $this->gravarLog('Autenticado. Coletando indicadores'); @@ -41,7 +41,7 @@ class MdEstatisticasAgendamentoRN extends InfraRN $this->gravarLog('Indicadores recebidos. Coletar indicadores do tipo lista'); - $this->gravarLog('Obter a data do último envio das quantidades de acessos '); + $this->gravarLog('Obter a data do último envio das quantidades de acessos '); $data = $enviar->obterUltimoAcesso(); $this->gravarLog('Ultima data das quantidades de acessos: ' . $data . '. Coletar quantidade de acessos'); @@ -54,13 +54,16 @@ class MdEstatisticasAgendamentoRN extends InfraRN $this->gravarLog('Coletado. Enviar: '); $enviar->enviarVelocidades($velocidades, $id); - $this->gravarLog('Enviado. Coletar os sistemas operacionais dos usuários: '); + $this->gravarLog('Enviado. Coletar os sistemas operacionais dos usuários: '); $sistemasOperacionaisUsuarios = $coletor->obterSistemasOperacionaisUsuarios(); $this->gravarLog('Coletado. Enviar: '); $enviar->enviarSistemasUsuarios($sistemasOperacionaisUsuarios, $id); - $this->gravarLog('Enviado. Coletar os navegadores: '); - $navegadores = $coletor->obterNavegadores(); + $this->gravarLog('Enviado. Obter a data do último envio das quantidades de navegadores '); + $data = $enviar->obterUltimoNavegador(); + $this->gravarLog('Ultima data das quantidades de navegadores: ' . $data . '. Coletar quantidade de navegadores'); + + $navegadores = $coletor->obterNavegadores($data); $this->gravarLog('Coletado. Enviar: '); $enviar->enviarNavegadores($navegadores, $id); @@ -90,7 +93,7 @@ class MdEstatisticasAgendamentoRN extends InfraRN InfraDebug::getInstance()->setBolLigado(false); InfraDebug::getInstance()->setBolDebugInfra(false); InfraDebug::getInstance()->setBolEcho(false); - throw new InfraException('Erro processando estatísticas do sistema.', $e); + throw new InfraException('Erro processando estatísticas do sistema.', $e); } } diff --git a/rn/MdEstatisticasColetarRN.php b/rn/MdEstatisticasColetarRN.php index af28f19..7cf7be8 100644 --- a/rn/MdEstatisticasColetarRN.php +++ b/rn/MdEstatisticasColetarRN.php @@ -491,17 +491,39 @@ class MdEstatisticasColetarRN extends InfraRN return $sistemas; } - public function obterNavegadores() { - $query = "select count(*) as quantidade, identificacao as nome, versao from infra_navegador group by identificacao,versao"; - $rs = BancoSEI::getInstance()->consultarSql($query); + public function obterNavegadores($ultimadata = null) { + if ($ultimadata == null) { + $ultimadata = "1900-01-01"; + } + $current_month = date("Y-m-01"); + $sgbd = $this->obterTipoSGBD(); + $query = ''; + if ($sgbd == 'MySql') { + $query = "SELECT year(dth_acesso) as ano, month(dth_acesso) as mes, identificacao as nome, versao, count(*) as quantidade from sei.infra_navegador where date(dth_acesso) > '%s' and date(dth_acesso) < '%s' group by 1, 2, 3, 4 order by 1,2,3,4"; + // $query = "SELECT year(dth_acesso) as ano, month(dth_acesso) as mes, recurso, count(*) as quantidade FROM sei.infra_auditoria where date(dth_acesso) > '%s' and date(dth_acesso) < '%s' group by 1, 2, 3 order by 1, 2, 3"; + } elseif ($sgbd == 'SqlServer') { + $query = "SELECT year(dth_acesso) as ano, month(dth_acesso) as mes, identificacao as nome, versao, count(*) as quantidade from infra_navegador where dth_acesso > '%s' and dth_acesso < '%s' group by year(dth_acesso) as ano, month(dth_acesso) as mes, identificacao as nome, versao order by 1,2,3,4"; + //$query = "SELECT year(dth_acesso) as ano, month(dth_acesso) as mes, recurso, count(*) as quantidade FROM infra_auditoria where dth_acesso > '%s' and dth_acesso < '%s' group by year(dth_acesso), month(dth_acesso), recurso order by 1, 2, 3"; + } elseif ($sgbd == 'Oracle'){ + $query = "SELECT to_char(dth_acesso, 'YYYY') AS ano, to_char(dth_acesso, 'MM') AS mes, identificacao as nome, versao, count(*) as quantidade from sei.infra_navegador WHERE dth_acesso > date '%s' AND dth_acesso < date '%s' group by to_char(dth_acesso, 'YYYY') AS ano, to_char(dth_acesso, 'MM') AS mes, identificacao as nome, versao order by to_char(dth_acesso, 'YYYY') AS ano, to_char(dth_acesso, 'MM') AS mes, identificacao as nome, versao"; + // $query = "SELECT to_char(dth_acesso, 'YYYY') AS ano, to_char(dth_acesso, 'MM') AS mes, recurso, count(*) as quantidade FROM sei.infra_auditoria WHERE dth_acesso > date '%s' AND dth_acesso < date '%s' GROUP BY to_char(dth_acesso, 'YYYY'), to_char(dth_acesso, 'MM'), recurso"; + } $lista = array(); - foreach ($rs as $r) { - $result = array( - 'nome' => utf8_encode($r['nome']), - 'quantidade' => $r['quantidade'], - 'versao' => $r['versao'] - ); - array_push($lista, $result); + if ($query) { + $query = sprintf($query, $ultimadata, $current_month); + echo $query; + $rs = BancoSEI::getInstance()->consultarSql($query); + foreach ($rs as $r) { + $result = array( + 'nome' => utf8_encode($r['nome']), + 'quantidade' => $r['quantidade'], + 'versao' => $r['versao'], + 'ano' => $r['ano'], + 'mes' => $r['mes'], + ); + array_push($lista, $result); + } + } return $lista; } diff --git a/rn/MdEstatisticasEnviarRN.php b/rn/MdEstatisticasEnviarRN.php index 566771e..cce4628 100644 --- a/rn/MdEstatisticasEnviarRN.php +++ b/rn/MdEstatisticasEnviarRN.php @@ -34,6 +34,11 @@ class MdEstatisticasEnviarRN extends InfraRN return date($data); } + public function obterUltimoNavegador() { + $data = $this->doGet($this->url . '/navegadores/ultimo?sigla=' . $this->orgaoSigla, false); + return date($data); + } + public function enviarAcessos($acessos, $id) { $url = $this->url . '/acessos'; $obj = array( -- libgit2 0.21.2