/** * 登録&送信 * * @access public * @param * @return void * @author ida */ public function action_thanks() { if (!Security::check_token()) { \Response::redirect('errors/doubletransmission'); } Asset::css('jquery-ui.min.css', array(), 'add_css'); Asset::js('jquery-ui.min.js', array(), 'add_js'); $input_data = $this->getInputData(true); $input_data['created_user'] = $this->administrator->administrator_id; $input_data['send_status'] = \Model_Mail_Magazine::SEND_STATUS_WAITING; $additional_data = $this->getAdditionalData($input_data); $input_data['additional_serialize_data'] = serialize($additional_data); try { $db = Database_Connection::instance('master'); \DB::start_transaction(); $mail_magazine = \Model_Mail_Magazine::forge(); $mail_magazine->set($input_data)->save(); // メルマガ対象ユーザ登録 $query = $input_data['query']; $users = \DB::query($query)->execute(); foreach ($users as $user) { $data = array('mail_magazine_id' => $mail_magazine->mail_magazine_id, 'user_id' => $user['user_id'], 'send_status' => \Model_Mail_Magazine_User::SEND_STATUS_WAITING, 'created_user' => $this->administrator->administrator_id); $mail_magazine_user = \Model_Mail_Magazine_User::forge(); $mail_magazine_user->set($data)->save(); } \DB::commit_transaction(); } catch (\Exception $e) { \DB::rollback_transaction(); throw new \SystemException(\Model_Error::ER00000); } $view_model = \ViewModel::forge('admin/mailmagazine/thanks'); list($view_model, $replace_data) = $this->setupData($view_model, $input_data); // タスク実行 $oil_path = realpath(APPPATH . '/../../') . DS; $param = $mail_magazine->mail_magazine_id . ' ' . $this->administrator->administrator_id; exec('php ' . $oil_path . 'oil refine mail_magazine ' . $param . ' > /dev/null &'); $view_model->set('mail_magazine', $mail_magazine, true); $this->template->content = $view_model; }