✏️ 正在编辑: Sincronizacao.php
路径:
/srv/systems_dir/yuppiecred-lidernegocios/library/Core/Sincronizacao.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Core_Sincronizacao { private $_url = null; private $_token = null; private $_sistema = null; private $_idSinc = null; private $_dataSinc = null; private $_empresaId = null; private $_subId = null; function __construct(array $token = null) { if (!$token) { Yuppie_Log::write("Sincronização Entre Yuppies (Automação): Token não identificado.", $this); return; } $this->setOptions($token); Yuppie_Log::write("Dados do token atual " . print_r($this, true), $this); } public function setUrl($value) { $this->_url = $value; } public function setOptions($token) { $this->_url = $token['dominio'] . "/public/service/sinc-yuppies"; $this->_token = $token['token']; $this->_sistema = $token['sistema']; $this->_idSinc = $token['id']; $this->_subId = $token['subestabelecido_id']; $this->_dataSinc = $token['ultima_sincronizacao'] ?? (new Zend_Date())->now()->subDay(3)->get('yyyy-MM-dd HH:mm:ss'); $this->_empresaId = $token['empresa_id'] ?? (new Model_Empresa())->getPrimeiraEmpresaAtiva()['id']; return $this; } public function getDadosOrigem($offset = 0) { try { $json = $this->getResponse($offset); if ($json->alert) { return ['erro' => $json->alert]; } $contratos = $json->contratos; $comissoes = $json->comissoes; $sincronizacao = new Core_Contrato_Sincronizacao($this->_idSinc, $this->_token, $this->_sistema, $this->_subId, $this->_empresaId); if (is_array($contratos) && count($contratos) > 0) { $this->convertToArray($contratos); $sincronizacao->importar($contratos, true); } if (is_array($comissoes) && count($comissoes) > 0) { $this->convertToArray($comissoes); $sincronizacao->setarComissoes($comissoes, true); } if (count($contratos) == 100 || count($comissoes) == 100) { $offset += 100; $this->getDadosOrigem($offset); } return ["success" => true]; } catch (Exception $e){ Yuppie_Log::write("Erro no processamento em " . print_r($this->_url, true) . ": " . $e->getMessage(), $this); return ["erro" => $e->getMessage()]; } } public function getResponse($offset) { $body = [ 'token' => $this->_token, 'offset' => $offset, 'ultimaSinc' => $this->_dataSinc, ]; $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_URL => $this->_url, CURLOPT_POST => true, CURLOPT_ENCODING => "UTF-8", CURLOPT_CONNECTTIMEOUT => 15, CURLOPT_POSTFIELDS => $body, ] ); Yuppie_Log::write("Importando de => " . print_r($this->_url, true), $this); $json = json_decode(curl_exec($curl)); $info = curl_getinfo($curl); curl_close($curl); Yuppie_Log::write("Result getResponse Sincronização => " . print_r($json, true), $this); if (empty($json)) { throw new Core_Exception($this->_url . " não retornou informações."); } if ($info['http_code'] != 200) { throw new Core_Exception("Yuppie: Ocorreu um erro na conexão em " . $this->_url); } return $json; } private function convertToArray(&$objeto) { foreach ($objeto as $key => $item) { $objeto[$key] = (array) $item; } } public function getComissionamentoOrigem($page = 0) { try { $json = $this->getResponse($page); if ($json->alert) { return ['erro' => $json->alert]; } $individual = $json->individual; $grupo = $json->grupo; $sincronizacao = new Core_Comissionamento_Sincronizacao($this->_idSinc, $this->_token, $this->_sistema, $this->_subId, $this->_empresaId); if (is_array($individual) && count($individual) > 0) { $this->convertToArray($individual); $sincronizacao->importarDados($individual, true); } if (is_array($grupo) && count($grupo) > 0) { $this->convertToArray($grupo); $sincronizacao->importarDados($grupo, true); } if (count($individual) == 100 || count($grupo) == 100) { $page += 1; $this->getComissionamentoOrigem($page); } return ["success" => true]; } catch (Exception $e){ Yuppie_Log::write("Erro no processamento em " . print_r($this->_url, true) . ": " . $e->getMessage(), $this); return ["erro" => $e->getMessage()]; } } }
💾 保存文件
← 返回文件管理器