✏️ 正在编辑: MensagemController.php
路径:
/srv/systems_dir/oakberry/application/controllers/MensagemController.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class MensagemController extends Yuppie_Controller_Crud { protected $title = 'Mensagem'; protected $titleIcon = 'glyphicon-reg glyphicon-reg-envelope'; protected $sideMenu = null; protected $_bucketFolder = 'mensagem'; protected $_url; public function init() { $this->_url = "https://" . $_SERVER['SERVER_NAME'] . $this->getRequest()->getBaseUrl(); $this->formFiltro = 'Form_Filtro_Mensagem'; $this->formSave = 'Form_Mensagem'; parent::init(); } public function saveAction() { $request = $this->getRequest(); $id = (int) $request->getParam('id'); $form = new $this->formSave; if ($request->getPost('back')) { $this->_helper->redirector('listar'); } if ($request->getPost('new')) { $this->_helper->redirector('save'); } $alerts = $this->getHelper('Alerts'); $model = null; if ($id) { $model = $this->dbtable->findById($id); if (!$model) { $alerts->addWarning('Id inválido.'); $this->_helper->redirector('listar'); } $form->populate($model->toArray()); } if ($request->isPost() && $form->isValid($request->getPost())) { $fields = array_filter($request->getPost()); try { Core_Upload::save((new \Zend_File_Transfer_Adapter_Http()), $fields, $this->_bucketFolder); if (!$model) { $model = $this->dbtable->createRow(); } $model->setFromArray($fields); $id = $model->save(); if ($id) { $alerts->addSuccess('Dados salvos com sucesso.'); $this->_helper->redirector('save', $request->getControllerName(), $request->getModuleName(), array( 'id' => $id )); } else { $alerts->addDanger('Nenhum registro foi alterado.'); } } catch (Exception $e) { $alerts->addDanger($e->getMessage()); } } $this->view->form = $form; $this->view->model = $model; $this->view->tab = $this->_getParam('tab', 0); } public function duplicateAction() { $this->_helper->viewRenderer->setNoRender(); $this->_helper->layout->disableLayout(); $request = $this->getRequest(); $id = (int) $request->getParam('id'); $alerts = $this->getHelper('Alerts'); $model = null; $model = $this->dbtable->findById($id); if (!$model) { $alerts->addWarning('Id inválido.'); $this->_helper->redirector('listar'); } $fields = $model->toArray(); $modelDuplicate = $this->dbtable->createRow(); $modelDuplicate->setFromArray($fields); $id = $modelDuplicate->duplicate(); if ($id) { $alerts->addSuccess('Registro duplicado com sucesso.'); } else { $alerts->addDanger('Nenhum registro foi duplicado.'); } $this->_helper->redirector('listar'); } public function listarLeadsAction() { $request = $this->getRequest(); $mensagemId = $request->getParam('mensagem_id'); $alerts = $this->getHelper('Alerts'); if (empty($mensagemId)) { $alerts->addDanger("Mensagem não identificada."); $this->_helper->redirector('index'); } $form = new Form_Filtro_EnviarMensagem(); $paginator = $form->search(); $this->view->mensagem_id = $mensagemId; $this->view->paginator = $paginator; $this->view->form = $form; } public function enviarMensagensAction() { $request = $this->getRequest(); if (!$request->isPost()) { $this->_redirect('/mensagem/listar'); } if ($request->getParam('bt-enviar-wa')) { $this->_forward('enviar-whatsapp'); return; } if ($request->getParam('bt-enviar-sms')) { $this->_forward('enviar-sms'); return; } } public function enviarWhatsappAction() { $request = $this->getRequest(); $mensagemId = (int) $request->getParam('mensagem_id'); $alerts = $this->getHelper('Alerts'); $empresa = Model_Container::getEmpresa()->findById(Yuppie_Auth::getIdentity()->empresa_id); $params = json_encode($request->getParams() + ['empresa_id' => $empresa->id]); $secret = md5(Yuppie_Core_Secret::SECRETS['oakberry']); if (empty($mensagemId)) { $alerts->addDanger("Mensagem não identificada!"); $this->_redirect('/mensagem/listar'); } try { $whatsapp = \Yuppie_Service_Whatsapp_Factory::load($empresa); } catch (\Throwable $e) { $whatsapp = null; Yuppie_Log::write($e->getMessage() . $e->getTraceAsString(), $this); $alerts->addDanger("Sistema não possui whatsapp configurado"); $this->_redirect('/mensagem/listar'); } $mensagem = Model_Container::getMensagem()->findById($mensagemId); if (!$mensagem) { $alerts->addDanger("Mensagem não localizada!"); $this->_redirect('/mensagem/listar'); } $mensagem->status_envio = "PROCESSANDO"; $mensagem->save(); $curlString = "curl --location '{$this->_url}/automacoes/enviar-whatsapp?secret={$secret}' " . "--header 'Content-Type: application/json' " . "--data '{$params}' > /dev/null 2>&1 &"; shell_exec($curlString); $alerts->addInfo("Envio em processamento"); $this->_redirect('/mensagem/listar'); } public function enviarSmsAction() { $request = $this->getRequest(); $mensagemId = (int) $request->getParam('mensagem_id'); $alerts = $this->getHelper('Alerts'); if (empty($mensagemId)) { $alerts->addDanger("Mensagem não identificada!"); $this->_redirect('/mensagem/listar'); } $mensagem = Model_Container::getMensagem(); $dadosMensagem = $mensagem->findById($mensagemId); if (empty($dadosMensagem)) { $alerts->addDanger("Mensagem não localizada!"); $this->_redirect('/mensagem/listar'); } if ($request->isPost()) { $fields = $request->getPost('leads'); $cont = 0; $result = null; $sms = new Core_Service_Sms(); foreach ($fields as $field) { $result = null; $lead = Model_Container::getLead(); $dadosLead = $lead->findById($field); $result = $sms->sendMessage($dadosLead->celular, strip_tags($dadosMensagem->texto), $dadosMensagem->id); if ($result) { $cont++; } } if ($cont > 0) { $alerts->addSuccess("({$cont}) Mensagem enviada com sucesso."); } else { $alerts->addWarning('Atenção! A mensagem não foi enviada.'); $alerts->addDanger($result); } } $this->_redirect('/mensagem/listar'); } public function viewAction() { $this->_helper->layout->setLayout('layout_popup'); $mensagemId = (int) $this->getRequest()->getParam('id'); $alerts = $this->getHelper('Alerts'); if (!$mensagemId) { $alerts->addDanger('Registro inválido!'); $this->helper->redirector('index', 'dashboard'); } $model = $this->dbtable->findById($mensagemId); if (!$model) { $alerts->addWarning('Mensagem não encontrada.'); $this->helper->redirector('index', 'dashboard'); } $this->view->model = $model; } public function responseViewAction() { $this->_helper->viewRenderer->setNoRender(); $this->_helper->getHelper('layout')->disableLayout(); $params = Core_Link::trataQuery(); $fields = array( "email_from" => $params['mail_from'], "email_to" => $params['mail_to'], "mensagem_id" => $params['mensagem_id'], ); $dbtable = Model_Container::getMensagemEnviada(); $model = $dbtable->getSent($fields); if (!$model) { $model = $dbtable->createRow(); } $fields["leitura"] = 1; $fields["data_hora_leitura"] = Zend_Date::now()->get('yyyy-MM-dd HH:mm:ss'); $model->setFromArray($fields); $model->save(); } public function downloadAnexoAction() { $this->_helper->layout->disableLayout(); $request = $this->getRequest(); $id = (int) $request->getParam('id'); $alerts = $this->getHelper('Alerts'); if (empty($id)) { $alerts->addWarning('Mensagem não identificada.'); $this->_redirect("/mensagem"); } $model = Model_Container::getMensagem()->findById($id); $urlAnexo = parse_url($model->anexo, PHP_URL_PATH); try { Core_Upload::downloadFromUrl($urlAnexo); } catch (Exception $ex) { $alerts->addDanger($ex->getMessage()); } $this->_redirect("/mensagem"); } }
💾 保存文件
← 返回文件管理器