✏️ 正在编辑: ApiAutocontratacaoController.php
路径:
/srv/systems_dir/yuppiecred/application/controllers/ApiAutocontratacaoController.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php use Modules\SimulacaoAberta\Service\SimulacaoAbertaService; use Yuppie_Core_SecretSiteKey as Secret; use Zend_Controller_Action as ZendController; /** * @sem_permissao */ class ApiAutocontratacaoController extends ZendController { /** @var string */ public const ERRO = 'Ocorreu um erro durante a solicitação.'; public const ERRO_EFETIVAR = 'Houve um erro ao efetivar a proposta. '; public const ERRO_DADOS = 'Dados enviados estão incompletos! '; public const ERRO_ENVIAR = 'Houve um erro ao enviar a proposta. '; public const FALHA_INCLUSAO = 'Falha na inclusão da proposta'; public function init() { try { $enable = service('config')->get()->yuppie->api ?: null; Secret::valid(getallheaders(), $enable); } catch (Throwable $throwable) { Yuppie_Log::write(self::ERRO . ": " . $throwable->getMessage() . "\n" . $throwable->getTraceAsString(), $this); $this->_helper->json([ 'error' => self::ERRO, 'description' => "Não há autorização para o acesso" ]); } $this->_helper->viewRenderer->setNoRender(); $this->_helper->layout->disableLayout(); parent::init(); } public function credcestaAction() { try { $service = new SimulacaoAbertaService(); $service->validarPost($this->getRequest()); $dados = $this->getRequest()->getPost(); $dados['tipo'] = 'credcesta'; $dados['tipo_operacao'] = 'CREDCESTA'; $dados['tipo_valor'] = "PARCELA"; $dados['consulta_banco'] = "_consultarMaster"; $convenioModel = new Model_Convenio(); $dados['convenio'] = $convenioModel->getOrCreateConvenio($dados['codigo_orgao']); Yuppie_Log::write("Dados enviados para api-autocontratacaoCredcestaAction: " . print_r($dados, true), $this); $service->salvarCliente($dados); $service->checaSimulacaoExistente(false); if (!$service->getSimulacaoExistenteId()) { $service->salvarSimulacao(false); } $simulacaoId = $service->getSimulacaoExistenteId(); $service->marcarAtendimentoEmAndamento($simulacaoId); $serviceInss = new \Core_Banco_Service_Autocontratacao_Inss(); $baseId = $service->getDados()['cliente_id']; $retorno = $serviceInss->consultar($dados, $baseId); $origemConsulta = $retorno->origem_consulta; $retorno = current($retorno->condicoes_credito); if (!$retorno) { $service->liberarStatusAtendimento($simulacaoId); $service->notificarLeadContratacaoIncompletaInss($dados['nome'], null, $dados['fone'], 'credcesta'); $this->_helper->json([ 'error' => 'Existe uma instabilidade no ' . $origemConsulta . 'e sua simulação não foi processada corretamente. Recarregue a tela e tente novamente ou volte mais tarde!' ]); return; } $ns = new stdClass; $ns->condicoes_credito = $retorno; $ns->condicoes_credito->simulacao_id = $simulacaoId; $serviceApi = $serviceInss->getBancoFromClass($origemConsulta); if (empty($serviceApi)) { $this->_helper->json([ 'error' => 'Existe uma instabilidade no ' . $origemConsulta . 'e sua simulação não foi processada corretamente. Recarregue a tela e tente novamente ou volte mais tarde!' ]); return; } $bancoId = Model_Banco::bancoPorNome($origemConsulta); $condicoesCredito = $ns->condicoes_credito; $proposta = new Model_Proposta(['banco_id' => $bancoId]); $propostaId = $proposta->saveByInclusaoAutocontratacao($dados, $condicoesCredito, $dados['codigo_orgao'], $dados['codigo_orgao']); $efetivado = null; if ($propostaId) { $retornoInclusao = $serviceApi->inclusaoConsignado($dados, (array)$condicoesCredito, $propostaId); $serviceApi->tratarMensagemErro($baseId, $retornoInclusao, 'INSS'); Yuppie_Log::write(print_r($retornoInclusao, true), $this); $service->marcarAtendimentoDigitado($simulacaoId); $efetivado = (new Model_Proposta())->efetivarPropostaInclusao($propostaId, current($retornoInclusao)); } if (empty($efetivado)) { Yuppie_Log::write( self::ERRO_EFETIVAR . print_r(['post' => $dados, 'retorno' => $retornoInclusao, 'condicoes_credito' => $condicoesCredito], true), $this); $service->notificarErroParaYuppie("Erro na autocontratação ao efetivar a proposta", print_r(['post' => $dados,'retorno' => $retornoInclusao, 'condicoes_credito' => $condicoesCredito], true)); $service->adicionarPendencia($propostaId, "Erro na autocontratação ao efetivar a proposta"); $this->_helper->json(['error' => self::ERRO_EFETIVAR]); return; } $resultMsg = [ 'success' => 'Dados enviados com sucesso!', 'description' => 'Você receberá um SMS para envio dos seus documentos.' . 'Para concluir, acesse o link enviado pelo banco para o número de celular que você informou.', 'url_formalizacao' => current($retornoInclusao)->url_formalizacao ?? "" ]; Yuppie_Log::write(print_r($resultMsg, true), $this); $service->notificarErroParaYuppie("Autocontratação efetuada com sucesso!", "Dados da autocontratação: <br><br>" . print_r(['post' => $dados, 'retorno' => $retornoInclusao, 'condicoes_credito' => $condicoesCredito], true)); $this->_helper->json($resultMsg); } catch (Zend_Db_Statement_Exception $e) { $service->notificarErroParaYuppie("Erro de banco na api-autocontratação credcesta", $e->getMessage() . "<br><br>" . $e->getTraceAsString()); Yuppie_Log::write(self::ERRO_DADOS . $e->getMessage() . "\n" . $e->getTraceAsString(), $this); $this->_helper->json(['error' => self::ERRO_DADOS]); } catch (Core_Exception $e) { Yuppie_Log::write(self::ERRO_ENVIAR . $e->getMessage() . "\n" . $e->getTraceAsString() . "\n" . print_r($ns->condicoes_credito, true), $this); // $service->notificarErroParaYuppie("Erro na api-autocontratação ao enviar a proposta", $e->getMessage() . "<br><br>" . $e->getTraceAsString()); $service->adicionarPendencia($propostaId, $e->getMessage()); $this->_helper->json([ 'error' => self::ERRO_ENVIAR, 'description' => $e->getMessage() ]); } catch (Throwable $e) { Yuppie_Log::write(self::FALHA_INCLUSAO . ": " . $e->getMessage() . "\n" . $e->getTraceAsString() . "\n" . print_r($ns->condicoes_credito, true), $this); $service->notificarErroParaYuppie("Erro na api-autocontratação na inclusão da proposta", $e->getMessage() . "<br><br>" . $e->getTraceAsString()); $service->adicionarPendencia($propostaId, $e->getMessage()); $this->_helper->json([ 'error' => 'Erro!', 'description' => self::FALHA_INCLUSAO . '! Tente novamente mais tarde.' ]); } } }
💾 保存文件
← 返回文件管理器