✏️ 正在编辑: AutomacoesController.php
路径:
/srv/systems_dir/oakberry/application/controllers/AutomacoesController.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php use Modules\Automatizacao\Service\AutomacoesService; use Yuppie_Core_Secret as Secret; use Zend_Controller_Action as ZendController; class AutomacoesController extends ZendController { /** @var string */ public const ERRO = 'Ocorreu um erro durante a solicitação.'; public function init() { try { Secret::valid($this->getRequest(), 'oakberry'); } catch (Throwable $throwable) { echo $throwable->getMessage(); die(); } $this->_helper->viewRenderer->setNoRender(); $this->_helper->layout->disableLayout(); parent::init(); } protected function _logarWebservice($empresaId) { $usuario = new stdClass(); $usuario->{'login'} = "webservice"; $usuario->hora_inicio = "00:00"; $usuario->hora_fim = "23:59"; $usuario->dias = "0,1,2,3,4,5,6"; $usuario->empresa_id = $empresaId; $usuario->grupo = "LOJISTA"; Yuppie_Auth::writeStorage($usuario); } public function notificarAniversariantesAction() { try { AutomacoesService::notificarAniversariantes(); } catch (Throwable $throwable) { Yuppie_Log::write('Falha no envio das notificações . ' . $throwable->getMessage()); } } public function notificarResgateDisponivelAction() { try { AutomacoesService::notificarResgateDisponivel(); } catch (Throwable $throwable) { Yuppie_Log::write('Falha no envio das notificações . ' . $throwable->getMessage()); } } public function notificarPontosRestantesParaResgateAction() { try { AutomacoesService::notificarPontosRestantesParaResgate(); } catch (Throwable $throwable) { Yuppie_Log::write('Falha no envio das notificações . ' . $throwable->getMessage()); } } public function checkNewOrderDeliveryAction() { Yuppie_Log::write("Executou checkNewOrderDeliveryAction"); //checkar se a empresa está aberta na plataforma $merchants = Model_Container::getEmpresaDelivery()->fetchAll([ 'platform = ?' => 'IFOOD', // 'start_delivery_time >= ?' => Zend_Date::now()->get('HH:mm'), // 'end_delivery_time <= ?' => Zend_Date::now()->get('HH:mm') ]); if ($merchants->count() == 0) { return $this->_helper->json(['execution' => false]); } $results = []; foreach ($merchants as $merchant) { try { $this->_logarWebservice($merchant->empresa_id); $delivery = Core_Service_Delivery_Factory::load($merchant); $delivery->checkNewOrder($merchant); } catch (Yuppie_Exception $e) { $results[] = $e->getMessage(); } } $this->_helper->json(['execution' => true, 'results' => $results]); } public function checkScoreLeadsAction() { Yuppie_Log::write("Executou checkScoreLeadsAction"); try { $empresas = (Model_Container::getEmpresa())->fetchAll(); foreach ($empresas as $empresa) { Model_Lead::checkScoreLeads($empresa); } } catch (Throwable $throwable) { Yuppie_Log::write('Falha na verificação do Score . ' . $throwable->getMessage()); } } public function enviarWhatsappAction() { $request = $this->getRequest(); $params = json_decode($request->getRawBody()); $mensagemId = (int) $params->mensagem_id; $empresa = Model_Container::getEmpresa()->findById($params->empresa_id); $mensagem = Model_Container::getMensagem(); $dadosMensagem = $mensagem->findById($mensagemId); $mensagemOriginal = $dadosMensagem->texto; if (empty($dadosMensagem)) { Yuppie_Log::write("Mensagem não localizada!"); $this->_helper->json(['error' => 'Mensagem não localizada!']); } try { $whatsapp = \Yuppie_Service_Whatsapp_Factory::load($empresa); } catch (\Throwable $e) { $whatsapp = null; Yuppie_Log::write($e->getMessage() . $e->getTraceAsString(), $this); $this->_helper->json(['error' => 'Sistema não possui whatsapp configurado']); } if ($request->isPost()) { $fields = $params->leads; $cont = 0; $result = null; $base64Arquivo = null; if (!empty($dadosMensagem->anexo)) { $info = pathinfo($dadosMensagem->anexo); $path = explode("/", $info['dirname']); $dir = $path[count($path)-1]; $base64Arquivo = Core_Upload::getSignedUrl($dadosMensagem->anexo, $dir); } foreach ($fields as $field) { $delay = rand(15,90); $dadosMensagem->texto = $mensagemOriginal; $result = null; $dadosLead = Model_Container::getLead()->findById($field); $leadEmpresa = Model_Container::getLeadEmpresa()->findByLeadId($dadosLead->id, $params->empresa_id); if ($leadEmpresa->nao_perturbe) { sleep($delay); continue; } if ($dadosMensagem->cupom_id > 0) { $dadosCupom = Model_Container::getCupom()->findById($dadosMensagem->cupom_id); $dataValidade = $dadosCupom->dias_validade ? Zend_Date::now()->addDay($dadosCupom->dias_validade)->get('yyyy-MM-dd') : null; $leadCupom = Model_Container::getLeadCupom()->createRow([ 'lead_id' => $dadosLead->id, 'empresa_id' => $params->empresa_id, 'cupom' => $dadosCupom->gerarCupomInterno(), 'cupom_id' => $dadosCupom->id, 'descricao' => $dadosCupom->descricao, 'data_validade' => $dataValidade ]); $leadCupom->save(); } $dadosMensagem->prepareToSend($dadosLead, $params->empresa_id); $result = $whatsapp->sendMessage($dadosLead->ddi . $dadosLead->celular, $dadosMensagem->texto, $base64Arquivo, $dadosMensagem->link_url, $dadosMensagem->link_caption, null, $delay); if ($result) { $cont++; } sleep($delay); } //retorna ao texto principal $dadosMensagem->texto = $mensagemOriginal; if ($cont > 0) { $dadosMensagem->status_envio = "ENVIADA"; $dadosMensagem->qtd_envios = $dadosMensagem->qtd_envios + $cont; $dadosMensagem->save(); $this->_helper->json([ 'success' => "({$cont}) Mensagem enviada com sucesso."]); } else { $dadosMensagem->status_envio = "NÃO ENVIADA"; $dadosMensagem->save(); $this->_helper->json(['error' => 'Atenção! A mensagem não foi enviada.']); } } } public function enviarPerguntaAction() { $request = $this->getRequest(); $params = json_decode($request->getRawBody()); $perguntaId = (int) $params->pergunta_id; $empresa = Model_Container::getEmpresa()->findById($params->empresa_id); $pergunta = Model_Container::getPosvendaPergunta(); $dadosMensagem = $pergunta->findById($perguntaId); $mensagemOriginal = $dadosMensagem->descricao; if (empty($dadosMensagem)) { Yuppie_Log::write("Pesquisa não localizada!"); $this->_helper->json(['error' => 'Pesquisa não localizada!']); } try { $whatsapp = \Yuppie_Service_Whatsapp_Factory::load($empresa); } catch (\Throwable $e) { $whatsapp = null; Yuppie_Log::write($e->getMessage() . $e->getTraceAsString(), $this); $this->_helper->json(['error' => 'Sistema não possui whatsapp configurado']); } if ($request->isPost()) { $fields = $params->leads; $cont = 0; $result = null; $optionList = []; foreach ($dadosMensagem->getOpcoes() as $op) { $optionList[] = [ 'id' => $op['id'], 'description' => $op['legenda'] ?: null, 'title' => $op['opcao'], ]; } foreach ($fields as $field) { $dadosMensagem->descricao = $mensagemOriginal; $result = null; $dadosLead = Model_Container::getLead()->findById($field); $dadosMensagem->prepareToSend($dadosLead); $result = $whatsapp->sendOptionList($dadosLead->ddi . $dadosLead->celular, $dadosMensagem->descricao, $optionList); if ($result) { $posvendaResposta = Model_Container::getPosvendaResposta()->createRow([ 'pergunta_id' => $dadosMensagem->id, 'lead_id' => $dadosLead->id, 'message_id' => $result ]); $posvendaResposta->save(); $cont++; } sleep(1); } //retorna ao texto principal $dadosMensagem->descricao = $mensagemOriginal; if ($cont > 0) { $dadosMensagem->status_envio = "ENVIADA"; $dadosMensagem->qtd_envios = $dadosMensagem->qtd_envios + $cont; $dadosMensagem->save(); $this->_helper->json([ 'success' => "({$cont}) Pesquisa enviada com sucesso."]); } else { $dadosMensagem->status_envio = "NÃO ENVIADA"; $dadosMensagem->save(); $this->_helper->json(['error' => 'Atenção! A pesquisa não foi enviada.']); } } } }
💾 保存文件
← 返回文件管理器