Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Route::get('teste-processo/{numeroProcesso}', function($numeroProcesso) {
- $servico = new \SimpleApi\Litispendencia\ReceberDadosClienteServico(
- new \SimpleApi\Litispendencia\ValidarClientesPrecatorioServico);
- return response()->json(['message' => $servico->dadosProcesso($numeroProcesso)]);
- });
- ===============================================================================
- <?php
- declare(strict_types=1);
- namespace SimpleApi\Litispendencia;
- use SimpleApi\Litispendencia\ValidarClientesPrecatorioServico;
- class ReceberDadosClienteServico
- {
- protected $urlBase = 'https://processual.trf1.jus.br';
- protected $urlCpf = 'https://processual.trf1.jus.br/consultaProcessual/parte/listarPorCpfCnpj.php?secao=BA&pg=5&enviar=Pesquisar&cpf_cnpj=';
- protected $urlNumeroProceso = 'https://processual.trf1.jus.br/consultaProcessual/processo.php?secao=TRF1&pg=1&enviar=Pesquisar&proc=';
- protected $salvarProcessos = [];
- const DIRETORIO_COOKIE = '/cookies';
- const PROCESSO_NAO_FOI_ENCONTRADO = 'Processo não foi encontrado.';
- const SEM_INFORMACOES_PROCESSUAIS = '20001 - pkg_consulta_processual.getdadosprocessuais - 10004 - O processo não possui informações processuais nesta Seção/Subseção Judiciária.';
- /**
- * @var ValidarClientesPrecatorioServico
- */
- protected $ValidarClientesPrecatorioServico;
- public function __construct(ValidarClientesPrecatorioServico $ValidarClientesPrecatorioServico)
- {
- $this->ValidarClientesPrecatorioServico = $ValidarClientesPrecatorioServico;
- }
- public function dadosProcesso(string $numeroProcesso)
- {
- if (stristr($numeroProcesso, ': ')) {
- $numeroProcesso = str_replace(': ', '%20', $numeroProcesso);
- //var_dump($numeroProcesso);die;
- }
- $urlProcesso = "{$this->urlNumeroProceso}{$numeroProcesso}";
- //dd($urlProcesso);
- $caminhoCookieProcesso = $this->getCaminhoCookie();
- $htmlCpf = $this->getHtmlComCurl($urlProcesso, $caminhoCookieProcesso);
- $divProcessos = $htmlCpf->find('.noticia-letra');
- if (empty($divProcessos)) {
- var_dump($urlProcesso);
- var_dump($htmlCpf);die;
- }
- if ($this->tratarTexto($divProcessos[0]->children(0)->plaintext) === self::PROCESSO_NAO_FOI_ENCONTRADO) {
- return 'processo nao encontrado';
- }
- if ($this->tratarTexto($divProcessos[0]->children(0)->plaintext) === self::SEM_INFORMACOES_PROCESSUAIS) {
- return 'processo nao encontrado';
- }
- dd($divProcessos[0]->children(0));
- // Dados do processo
- if (is_null($divProcessos[0]->children(0)->children(1)->children(1))) {
- $abaProcesso = $divProcessos[0]->children(0)->children(1)->children(0)->children(1);
- } else {
- $abaProcesso = $divProcessos[0]->children(0)->children(1)->children(1)->children(1);
- }
- $linhasAbaProcesso = $abaProcesso->find('tr');
- $itensProcesso = [
- 'numero-processo' => null,
- 'nova-numeracao' => null,
- 'classe' => null,
- 'vara' => null,
- 'data-de-autuacao' => null,
- 'distribuicao' => null,
- 'assunto-da-peticao' => null,
- 'juiz' => null,
- 'principal' => null,
- ];
- foreach ($linhasAbaProcesso as $linhaAbaProcesso) {
- switch ($this->tratarTexto($linhaAbaProcesso->children(0)->plaintext)) {
- case 'Processo:':
- case 'Processo::':
- $itensProcesso['numero-processo'] = $this->tratarTexto($linhaAbaProcesso->children(1)->plaintext);
- break;
- case 'Nova Numeração:':
- $itensProcesso['nova-numeracao'] = $this->tratarTexto($linhaAbaProcesso->children(1)->plaintext);
- break;
- case 'Classe:':
- $itensProcesso['classe'] = $this->tratarTexto($linhaAbaProcesso->children(1)->plaintext);
- break;
- case 'Vara:':
- $itensProcesso['vara'] = $this->tratarTexto($linhaAbaProcesso->children(1)->plaintext);
- break;
- case 'Data de Autuação:':
- $itensProcesso['data-de-autuacao'] = $this->tratarTexto($linhaAbaProcesso->children(1)->plaintext);
- break;
- case 'Distribuição:':
- $itensProcesso['distribuicao'] = $this->tratarTexto($linhaAbaProcesso->children(1)->plaintext);
- break;
- case 'Assunto da petição':
- $itensProcesso['assunto-da-peticao'] = $this->tratarTexto($linhaAbaProcesso->children(1)->plaintext);
- break;
- case 'Juíz':
- case 'Juíza':
- $itensProcesso['juiz'] = $this->tratarTexto($linhaAbaProcesso->children(1)->plaintext);
- break;
- case 'Principal':
- $itensProcesso['principal'] = $this->tratarTexto($linhaAbaProcesso->children(1)->plaintext);
- break;
- }
- }
- return $itensProcesso;
- }
- protected function getHtml(string $url): \simple_html_dom
- {
- return file_get_html($url, false, null, 0);
- }
- /**
- * @return string
- * @throws \Exception
- */
- protected function getCaminhoCookie(): string
- {
- $cookiesDiretorio = storage_path(self::DIRETORIO_COOKIE);
- if (!is_dir($cookiesDiretorio)) {
- mkdir($cookiesDiretorio);
- }
- $hoje = (new \DateTime('now'))->format('YmdHisu');
- return "{$cookiesDiretorio}/cookie-{$hoje}.txt";
- }
- protected function getHtmlComCurl(string $url, string $caminhoCookie): \simple_html_dom
- {
- // Inicializa o objeto CURL
- $curl = curl_init();
- // Configurações do CURL
- curl_setopt($curl, CURLOPT_URL, $url);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($curl, CURLOPT_COOKIEFILE, $caminhoCookie);
- curl_setopt($curl, CURLOPT_COOKIEJAR, $caminhoCookie);
- $resultado = curl_exec($curl);
- curl_close($curl);
- $html = new \simple_html_dom();
- return $html->load($resultado);
- }
- protected function removerEspacos(string $string): string
- {
- return trim(str_replace(' ', '', $string));
- }
- protected function tratarTexto(string $string): string
- {
- return $this->removerEspacos(html_entity_decode($string));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement