Commit f9b81ba2bf6adcc752d9f25366f5f3d7446e8927

Authored by Starlone Passos
1 parent 4a178b15

Indicador 27 - Enviando apenas a quantidade de acessos de usuarios dos dias ainda não enviados

rn/MdEstatisticasAgendamentoRN.php
... ... @@ -15,10 +15,32 @@ class MdEstatisticasAgendamentoRN extends InfraRN {
15 15 InfraDebug::getInstance()->setBolEcho(false);
16 16 InfraDebug::getInstance()->limpar();
17 17  
18   - $indicadores = (new MdEstatisticasColetarRN())-> coletarIndicadores();
19   - (new MdEstatisticasEnviarRN())-> enviarIndicadores($indicadores);
  18 + try {
  19 + $coletor = new MdEstatisticasColetarRN();
  20 + $indicadores = $coletor->coletarIndicadores();
  21 + InfraDebug::getInstance()->gravar('JSON: ' . json_encode($indicadores), InfraLog::$INFORMACAO);
20 22  
21   - LogSEI::getInstance()->gravar(InfraDebug::getInstance()->getStrDebug(),InfraLog::$INFORMACAO);
  23 + $enviar = new MdEstatisticasEnviarRN();
  24 +
  25 + $saida = $enviar->enviarIndicadores($indicadores);
  26 + InfraDebug::getInstance()->gravar('Retorno: ' . json_encode($saida), InfraLog::$INFORMACAO);
  27 +
  28 + $id = $saida['id'];
  29 +
  30 + $data = $enviar->obterUltimoAcesso();
  31 + InfraDebug::getInstance()->gravar('Data: ' . $data, InfraLog::$INFORMACAO);
  32 +
  33 + $acessos = $coletor->obterAcessosUsuarios($data);
  34 + $enviar->enviarAcessos($acessos, $id);
  35 +
  36 + LogSEI::getInstance()->gravar(InfraDebug::getInstance()->getStrDebug(),InfraLog::$INFORMACAO);
  37 +
  38 + } catch(Exception $e) {
  39 + InfraDebug::getInstance()->setBolLigado(false);
  40 + InfraDebug::getInstance()->setBolDebugInfra(false);
  41 + InfraDebug::getInstance()->setBolEcho(false);
  42 + throw new InfraException('Erro processando estatísticas do sistema.',$e);
  43 + }
22 44 }
23 45  
24 46 }
... ...
rn/MdEstatisticasColetarRN.php
... ... @@ -48,8 +48,7 @@ class MdEstatisticasColetarRN extends InfraRN {
48 48 'tamanhoFilesystem' => $this->obterTamanhoFileSystem(),
49 49 'anexosTamanhos' => $this->obterTamanhoDocumentosExternos(),
50 50 'extensoes' => $this->obterQuantidadeDocumentosExternosPorExtensao(),
51   - 'velocidades' => $this->obterVelocidadePorCidade(),
52   - 'acessosUsuarios' => $this->obterAcessosUsuarios()
  51 + 'velocidades' => $this->obterVelocidadePorCidade()
53 52 );
54 53  
55 54 return $indicadores;
... ... @@ -452,11 +451,11 @@ class MdEstatisticasColetarRN extends InfraRN {
452 451 $sgbd = $this->obterTipoSGBD();
453 452 $query = '';
454 453 if ($sgbd == 'MySql') {
455   - $query = "select count(*) as quantidade, date(dth_acesso) as data from infra_navegador where dth_acesso >= '" . $ultimadata . "' group by date(dth_acesso)";
  454 + $query = "select count(*) as quantidade, date(dth_acesso) as data from infra_navegador where date(dth_acesso) > " . $ultimadata . " group by date(dth_acesso)";
456 455 } elseif ($sgbd == 'SqlServer') {
457   - $query = "select count(*) as quantidade, CONVERT(date, dth_acesso) as data from infra_navegador where dth_acesso >= '" . $ultimadata . "' group by CONVERT(date, dth_acesso)";
  456 + $query = "select count(*) as quantidade, CONVERT(date, dth_acesso) as data from infra_navegador where dth_acesso >= " . $ultimadata . " group by CONVERT(date, dth_acesso)";
458 457 } elseif ($sgbd == 'Oracle') {
459   - $query = "select count(*) as quantidade, to_char(dth_acesso,'YYYY-MM-DD') AS data from infra_navegador where dth_acesso >= date '" . $ultimadata . "' group by to_char(dth_acesso,'YYYY-MM-DD')";
  458 + $query = "select count(*) as quantidade, to_char(dth_acesso,'YYYY-MM-DD') AS data from infra_navegador where dth_acesso >= date " . $ultimadata . " group by to_char(dth_acesso,'YYYY-MM-DD')";
460 459 }
461 460  
462 461 $rs = array();
... ...
rn/MdEstatisticasEnviarRN.php
... ... @@ -6,6 +6,10 @@ class MdEstatisticasEnviarRN extends InfraRN {
6 6  
7 7 public function __construct(){
8 8 parent::__construct();
  9 +
  10 + $objConfiguracaoSEI = ConfiguracaoSEI::getInstance();
  11 + $this->url = $objConfiguracaoSEI->getValor('MdEstatisticas','url', false, 'http://estatisticas.planejamento.gov.br');
  12 + $this->orgaoSigla = $objConfiguracaoSEI->getValor('MdEstatisticas','sigla', false, '');
9 13 }
10 14  
11 15 protected function inicializarObjInfraIBanco(){
... ... @@ -13,48 +17,43 @@ class MdEstatisticasEnviarRN extends InfraRN {
13 17 }
14 18  
15 19 public function enviarIndicadores($indicadores) {
  20 + return $this->doPost($this->url, $indicadores);
  21 + }
16 22  
17   - try {
18   -
19   - $json = json_encode($indicadores);
20   - InfraDebug::getInstance()->gravar('JSON: ' . $json, InfraLog::$INFORMACAO);
21   -
22   - $objConfiguracaoSEI = ConfiguracaoSEI::getInstance();
23   - $url = $objConfiguracaoSEI->getValor('MdEstatisticas','url', false, 'http://estatisticas.planejamento.gov.br');
24   - $orgaoSigla = $objConfiguracaoSEI->getValor('MdEstatisticas','sigla', false, '');
25   -
26   - $output = $this->doPost($url, $json);
27   - $id = $output['id'];
28   - InfraDebug::getInstance()->gravar('Output: ' . json_encode($output), InfraLog::$INFORMACAO);
29   - InfraDebug::getInstance()->gravar('iD: ' . $id, InfraLog::$INFORMACAO);
30   -
31   - $data = $this->doGet($url . '/ultimoacesso?sigla=' . $orgaoSigla);
32   - $data = date($data);
33   - InfraDebug::getInstance()->gravar('Data: ' . $data, InfraLog::$INFORMACAO);
34   -
35   - return true;
  23 + public function obterUltimoAcesso() {
  24 + $data = $this->doGet($this->url . '/ultimoacesso?sigla=' . $this->orgaoSigla, false);
  25 + return date($data);
  26 + }
36 27  
37   - } catch(Exception $e) {
38   - InfraDebug::getInstance()->setBolLigado(false);
39   - InfraDebug::getInstance()->setBolDebugInfra(false);
40   - InfraDebug::getInstance()->setBolEcho(false);
41   - throw new InfraException('Erro processando estatísticas do sistema.',$e);
42   - }
  28 + public function enviarAcessos($acessos, $id) {
  29 + $url = $this->url . '/acessos';
  30 + InfraDebug::getInstance()->gravar('URL: ' . $url, InfraLog::$INFORMACAO);
  31 + $obj = array(
  32 + id => $id,
  33 + acessosUsuarios => $acessos
  34 + );
  35 + InfraDebug::getInstance()->gravar('URL: ' . json_encode($obj), InfraLog::$INFORMACAO);
  36 + return $this->doPost($url, $obj, false);
43 37 }
44 38  
45   - private function doPost($url, $json) {
  39 + private function doPost($url, $json, $isjson=true) {
  40 + $data = json_encode($json);
46 41 $ch = curl_init();
47 42 curl_setopt($ch, CURLOPT_URL, $url);
48 43 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
49 44 curl_setopt($ch, CURLOPT_POST, true);
50 45 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
51   - curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
  46 + curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
52 47 $output = curl_exec($ch);
53 48 curl_close($ch);
54   - return json_decode($output, true);
  49 +
  50 + if ($isjson) {
  51 + return json_decode($output, true);
  52 + }
  53 + return $output;
55 54 }
56 55  
57   - private function doGet($url, $isjson=false) {
  56 + private function doGet($url, $isjson=true) {
58 57 $ch = curl_init();
59 58 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
60 59 curl_setopt($ch, CURLOPT_URL, $url);
... ...