/** * 対象のフリマを取得 * * @access private * @return Model_Fleamarket array */ private function getFleamarkets() { $target_event_statuses = array(\Model_Fleamarket::EVENT_STATUS_SCHEDULE, \Model_Fleamarket::EVENT_STATUS_RESERVATION_RECEIPT, \Model_Fleamarket::EVENT_STATUS_RECEIPT_END); $date = \Date::forge(strtotime('- 1 day')); $fleamarkets = \Model_Fleamarket::find('all', array('select' => array('fleamarket_id', 'event_status'), 'where' => array(array('event_date', '<=', $date->format('mysql')), array('register_type', '=', \Model_Fleamarket::REGISTER_TYPE_ADMIN), array('event_time_end', '<=', $date::time()->format('mysql')), array('event_status', 'IN', $target_event_statuses)))); return $fleamarkets; }
/** * 会場詳細 * * @access public * @param mixed $location_id 会場ID * @param mixed $fleamarket_id フリマID * @return void * @author ida */ public function action_detail($location_id = null, $fleamarket_id = null) { if (!$location_id) { return $this->forward('errors/notfound', 404); } \Asset::css('jquery-ui.min.css', array(), 'add_css'); \Asset::js('jquery-ui.min.js', array(), 'add_js'); // 会場に紐づくフリマを取得する $fleamarket_date_list = \Model_Fleamarket::find('all', array('select' => array('fleamarket_id', 'event_date'), 'where' => array(array('location_id' => $location_id)), 'order_by' => array('event_date' => 'asc'))); if (!$location_id || !$fleamarket_date_list) { \Response::redirect('errors/notfound'); } if (!$fleamarket_id) { $first_fleamarket = end($fleamarket_date_list); $fleamarket_id = $first_fleamarket['fleamarket_id']; } $fleamarket = \Model_Fleamarket::findDetail($fleamarket_id); if (!$fleamarket) { \Response::redirect('errors/notfound'); } $this->setHtmlReplace(array('AREA' => $this->getArea($fleamarket['prefecture_id']), 'AREA_NAME' => $this->getAreaName($fleamarket['prefecture_id']), 'LOCATION_ID' => $fleamarket['location_id'], 'LOCATION_NAME' => $fleamarket['location_name'], 'FLEAMARKET_NAME' => $fleamarket['name'])); $fleamarket_abouts = \Model_Fleamarket_About::findByFleamarketId($fleamarket_id); $fleamarket_images = \Model_Fleamarket_Image::findByFleamarketId($fleamarket_id); $entry_styles = \Model_Fleamarket_Entry_Style::findByFleamarketId($fleamarket_id); $view_model = \ViewModel::forge('location/detail'); $view_model->set('fleamarket', $fleamarket, false); $view_model->set('fleamarket_date_list', $fleamarket_date_list, false); $view_model->set('fleamarket_images', $fleamarket_images, false); $view_model->set('fleamarket_abouts', $fleamarket_abouts, false); $view_model->set('fleamarket_entry_styles', $entry_styles, false); $view_model->set('prefectures', \Config::get('master.prefectures'), false); $view_model->set('user', $this->login_user, false); $this->template->content = $view_model; }
/** * 表示に必要なデータを取得し設定する * * @access private * @param array $input_data 入力データ * @return array * @author ida */ private function setupData($data) { $replace_data = array(); $replace_data['user'] = $this->user; $mail_magazine_type = $data['mail_magazine_type']; switch ($mail_magazine_type) { case \Model_Mail_Magazine::MAIL_MAGAZINE_TYPE_ALL: break; case \Model_Mail_Magazine::MAIL_MAGAZINE_TYPE_REQUEST: $this->set('prefectures', \Config::get('master.prefectures'), false); break; case \Model_Mail_Magazine::MAIL_MAGAZINE_TYPE_RESEVED_ENTRY: $fleamarket_id = $data['reserved_fleamarket_id']; $fleamarket = \Model_Fleamarket::find($fleamarket_id); $replace_data['fleamarket'] = $fleamarket; $this->set('fleamarket', $fleamarket, false); break; case \Model_Mail_Magazine::MAIL_MAGAZINE_TYPE_WAITING_ENTRY: $fleamarket_id = $data['waiting_fleamarket_id']; $fleamarket = \Model_Fleamarket::find($fleamarket_id); $replace_data['fleamarket'] = $fleamarket; $this->set('fleamarket', $fleamarket, false); break; } $users = \Model_Mail_Magazine_User::findListByMailMagazineId($this->mail_magazine_id, null, null); $this->set('users', $users, false); $body = $data['body']; $pattern = \Model_Mail_Magazine::getPatternParameter($mail_magazine_type); list($pattern, $replacement) = \Model_Mail_Magazine::createReplaceParameter($body, $pattern, $replace_data); $body = \Model_Mail_Magazine::replaceByParam($body, $pattern, $replacement); $this->set('body', $body, false); $this->set('input_data', $data, false); }
public function before() { parent::before(); if (!Auth::check()) { return $this->responseJson('nologin', true); } $this->fleamarket = Model_Fleamarket::find(Input::param('fleamarket_id')); if (!$this->fleamarket) { return $this->responseJson('nodata', true); } $this->input = array('user_id' => Auth::get_user_id(), 'fleamarket_id' => Input::param('fleamarket_id')); $this->favorite = Model_Favorite::query()->where($this->input)->get_one(); }
public function before() { parent::before(); $this->fieldset = $this->getFieldset(); if (!$this->fieldset) { throw new \SystemException(\Model_Error::ER00501); } $input = $this->fieldset->input(); $fleamarket = \Model_Fleamarket::find($input['fleamarket_id']); if (!$fleamarket) { throw new \SystemException(\Model_Error::ER00501); } $this->fleamarket = $fleamarket; if ($input['fleamarket_entry_style_id']) { $this->fleamarket_entry_style = \Model_Fleamarket_Entry_Style::find('first', array('where' => array('fleamarket_entry_style_id' => $input['fleamarket_entry_style_id'], 'fleamarket_id' => $input['fleamarket_id']))); } }
/** * fleamarkets テーブルへの登録 * * @access private * @param * @return Model_Fleamarketオブジェクト * @author kobayashi */ private function registerFleamarket() { $data = $this->getFleamarketData(); if (!$data) { throw new \Exception(\Model_Error::ER00502); } $fleamarket = \Model_Fleamarket::find(\Input::post('fleamarket_id')); $administrator_id = $this->administrator->administrator_id; if ($fleamarket) { $data['updated_user'] = $administrator_id; } else { $fleamarket = \Model_Fleamarket::forge(); $data['reservation_serial'] = 1; $data['created_user'] = $administrator_id; } $fleamarket->set($data)->save(); return $fleamarket; }
<?php use Model_Entry; use Model_Fleamarket; use Model_Fleamarket_Entry_Style; use Model_User; $item_categories = array('1' => 'リサイクル品', '2' => '手作り品'); $item_genres = \Model_Entry::getItemGenres(); $link_from_list = \Model_Entry::getLinkFromList(); $entry_statuses = \Model_Entry::getEntryStatuses(); $fleamarkets = \Model_Fleamarket::find('all', array('select' => array('fleamarket_id'))); $users = \Model_User::find('all', array('select' => array('user_id'))); for ($i = 1; $i < 1000; $i++) { $item_category = array_rand($item_categories); $item_genre = array_rand($item_genres); $link_from = array_rand($link_from_list); $entry_status = array_rand($entry_statuses); while (true) { $fleamarket_key = array_rand($fleamarkets); $fleamarket = $fleamarkets[$fleamarket_key]; $fleamarket_entry_styles = \Model_Fleamarket_Entry_Style::find('all', array('select' => array('fleamarket_entry_style_id'), 'where' => array(array('fleamarket_id', $fleamarket->fleamarket_id)))); if ($fleamarket_entry_styles) { $fleamarket_entry_style_key = array_rand($fleamarket_entry_styles); $fleamarket_entry_style = $fleamarket_entry_styles[$fleamarket_entry_style_key]; break; } } $user_key = array_rand($users); $user = $users[$user_key]; $data = array('user_id' => $user->user_id, 'fleamarket_id' => $fleamarket->fleamarket_id, 'fleamarket_entry_style_id' => $fleamarket_entry_style->fleamarket_entry_style_id, 'reservation_number' => str_pad($fleamarket->fleamarket_id, 5, "0", STR_PAD_LEFT) . '-' . str_pad($i, 5, "0", STR_PAD_LEFT), 'item_category' => $item_category, 'item_genres' => $item_genres[$item_genre], 'reserved_booth' => mt_rand(1, 3), 'link_from' => $link_from_list[$link_from], 'remarks' => '初めてフリマを予約します' . $i, 'entry_status' => $entry_status, 'created_user' => 0); $entry = \Model_Entry::forge($data);
/** * 予約履歴CSV出力 * * @access public * @param * @return void * @author kobayashi * @author ida */ public function action_csv() { $fleamarket = Model_Fleamarket::find(Input::param('fleamarket_id')); $csv = Lang::load('admin/csv'); $data = array($csv['header']); $prefectures = \Config::get('master.prefectures'); $entry_styles = \Config::get('master.entry_styles'); $entry_statuses = \Model_Entry::getEntryStatuses(); $gender_list = \Model_User::getGenderList(); foreach ($fleamarket->entries as $entry) { if ($entry->user && $entry->fleamarket_entry_style) { $prefecture_id = $entry->user->prefecture_id; if (!isset($prefectures[$prefecture_id])) { $prefecture_name = '-'; } else { $prefecture_name = $prefectures[$prefecture_id]; } $data[] = array($entry->created_at, $fleamarket->event_date, $fleamarket->name, $entry->user->user_id, $entry->reservation_number, $entry_styles[$entry->fleamarket_entry_style->entry_style_id], $entry->reserved_booth, $entry->user->last_name . $entry->user->first_name, $entry->user->zip, $prefecture_name, $entry->user->address, $entry->user->tel, @$gender_list[$entry->user->gender], $entry->user->email, $entry_statuses[$entry->entry_status]); } } return $this->response_csv($data, $fleamarket->name); }
/** * 表示に必要なデータを取得し設定する * * @access private * @param object $view_model ビューモデル * @param array $input_data 入力データ * @return array * @author ida */ private function setupData($view_model, $data) { $replace_data = array(); $replace_data['user'] = $this->administrator; $mail_magazine_type = $data['mail_magazine_type']; switch ($mail_magazine_type) { case \Model_Mail_Magazine::MAIL_MAGAZINE_TYPE_ALL: $users = \Model_User::getActiveUsers(); break; case \Model_Mail_Magazine::MAIL_MAGAZINE_TYPE_REQUEST: $users = \Model_User::getMailMagazineUserBy($data['prefecture_id'], $data['organization_flag']); $view_model->set('prefectures', \Config::get('master.prefectures'), false); break; case \Model_Mail_Magazine::MAIL_MAGAZINE_TYPE_RESEVED_ENTRY: $fleamarket_id = $data['reserved_fleamarket_id']; $users = \Model_Entry::getEntriesByFleamarketId($fleamarket_id, \Model_Entry::ENTRY_STATUS_RESERVED); $fleamarket = \Model_Fleamarket::find($fleamarket_id); $replace_data['fleamarket'] = $fleamarket; $view_model->set('fleamarket', $fleamarket, false); break; case \Model_Mail_Magazine::MAIL_MAGAZINE_TYPE_WAITING_ENTRY: $fleamarket_id = $data['waiting_fleamarket_id']; $users = \Model_Entry::getEntriesByFleamarketId($fleamarket_id, \Model_Entry::ENTRY_STATUS_WAITING); $fleamarket = \Model_Fleamarket::find($fleamarket_id); $replace_data['fleamarket'] = $fleamarket; $view_model->set('fleamarket', $fleamarket, false); break; } $view_model->set('users', $users, false); $body = $data['body']; $pattern = \Model_Mail_Magazine::getPatternParameter($mail_magazine_type); list($pattern, $replacement) = \Model_Mail_Magazine::createReplaceParameter($body, $pattern, $replace_data); $body = \Model_Mail_Magazine::replaceByParam($body, $pattern, $replacement); $view_model->set('body', $body, false); $view_model->set('input_data', $data, false); return array($view_model, $replace_data); }
/** * 出店予約可能のフリマ情報一覧を取得する * * $termが未指定の場合、1ヵ月間で取得する * * @access public * @param array $term 取得する期間 * @return object * @author ida */ public static function getReservationFleamarket($term = null) { if (!$term) { $term = array(\DB::expr('CURDATE()'), \DB::expr('CURDATE() + INTERVAL 6 MONTH')); } $result = \Model_Fleamarket::find('all', array('select' => array('fleamarket_id', 'name', 'event_date'), 'where' => array(array('event_status', '<=', \Model_Fleamarket::EVENT_STATUS_RECEIPT_END), array('display_flag', '=', \Model_Fleamarket::DISPLAY_FLAG_ON), array('register_type', '=', \Model_Fleamarket::REGISTER_TYPE_ADMIN), array('event_date', 'BETWEEN', $term)))); return $result; }
/** * フリマ情報登録・更新 * * @access private * @param object $fieldset フィールドセット * @param mixed $fleamarket_id フリマID * @return bool * @author ida */ private function saveFleamarket($fieldset, $location_id = null) { $fleamarket_data = $this->createFleamarket($fieldset, $location_id); if (!empty($fleamarket_data['fleamarket_id'])) { $fleamarket = \Model_Fleamarket::find($fleamarket_data['fleamarket_id']); } else { $fleamarket = \Model_Fleamarket::forge(); } unset($fleamarket_data['fleamarket_id']); if ($fleamarket->set($fleamarket_data)->save()) { return $fleamarket; } else { throw new Exception(); } }
/** * 本文のリプレイス情報を生成する * * @access private * @param array $mail_magazine メルマガ情報 * @return array * @author ida */ private function makeReplaceData($mail_magazine) { $replace_data = array(); $add_data = unserialize($mail_magazine['additional_serialize_data']); $mail_magazine_type = $mail_magazine['mail_magazine_type']; switch ($mail_magazine_type) { case \Model_Mail_Magazine::MAIL_MAGAZINE_TYPE_ALL: break; case \Model_Mail_Magazine::MAIL_MAGAZINE_TYPE_REQUEST: break; case \Model_Mail_Magazine::MAIL_MAGAZINE_TYPE_RESEVED_ENTRY: case \Model_Mail_Magazine::MAIL_MAGAZINE_TYPE_WAITING_ENTRY: $fleamarket_id = $add_data['fleamarket_id']; $fleamarket = \Model_Fleamarket::find($fleamarket_id); $replace_data['fleamarket'] = $fleamarket; break; } return $replace_data; }