/** * フリーマーケット詳細表示画面 * * @access public * @param mixed $fleamarket_id フリーマーケットID * @return void * @author ida */ public function get_detail($fleamarket_id) { Asset::css('jquery-ui.min.css', array(), 'add_css'); Asset::js('jquery-ui.min.js', array(), 'add_js'); if (!$fleamarket_id) { return $this->forward('errors/notfound', 404); } $fleamarket = \Model_Fleamarket::findDetail($fleamarket_id); if (!$fleamarket) { return $this->forward('errors/notfound', 404); } $this->setHtmlReplace(array('AREA' => $this->getArea($fleamarket['prefecture_id']), 'AREA_NAME' => $this->getAreaName($fleamarket['prefecture_id']), 'FLEAMARKET_NAME' => $fleamarket['name'], 'LOCATION_ID' => $fleamarket['location_id'], 'LOCATION_NAME' => $fleamarket['location_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); $entries = \Model_Entry::getTotalEntryByFleamarketId($fleamarket_id); $fleamarket['entries'] = $entries; $view_model = \ViewModel::forge('search/detail'); $view_model->set('fleamarket', $fleamarket, 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('entries', $entries, false); $view_model->set('prefectures', \Config::get('master.prefectures'), false); $view_model->set('user', $this->login_user, false); $this->template->content = $view_model; }
/** * 会場詳細 * * @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 * @return void * @author shimma */ public function addDisplayStrings($fleamarket) { /** * エントリースタイル名 * '1' => '手持ち出店', * '2' => '手持ち出店(プロ)', * '3' => '車出店', * '4' => '車出店(プロ)', * '5' => '企業手持ち出店', * '6' => '企業車出店', * '7' => '飲食店', */ if (!empty($fleamarket['fleamarket_entry_style_id'])) { $fleamarket['fleamarket_entry_style_name'] = Config::get("master.entry_styles.{$fleamarket['fleamarket_entry_style_id']}", '-'); } /** * エントリー費用 * 現在の所、車出店など横に出している */ if (isset($fleamarket['booth_fee']) && isset($fleamarket['fleamarket_entry_style_name'])) { $fleamarket['booth_fee_string'] = $this->createFeeString($fleamarket['fleamarket_entry_style_name'], $fleamarket['booth_fee']); } else { $fleamarket['booth_fee_string'] = 'お問い合わせ'; } //@todo 果たしてfleamarketで丸ごとarrayを渡すのはいいのか確認 $fleamarket['entry_styles'] = \Model_Fleamarket_Entry_Style::getFleamarketEntryStyle($fleamarket); $fleamarket['total_booth'] = \Model_Fleamarket_Entry_Style::getTotalBooth($fleamarket); return $fleamarket; }
/** * フリーマーケット情報に紐づくフリーマーケット出店形態情報を取得する * * @access private * @param array $fleamarket フリーマーケット情報 * @return array * @author shimma * @author ida */ private function getFleamarketEntryStyle($fleamarket_id) { if (empty($fleamarket_id)) { return false; } $entry_style_fields = array('field' => array('entry_style_id', 'booth_fee', 'max_booth', 'reservation_booth_limit')); $result = \Model_Fleamarket_Entry_Style::findByFleamarketId($fleamarket_id, $entry_style_fields); return $result; }
/** * フリーマーケット情報に紐づくフリーマーケット出店形態情報を取得する * * @access private * @param array $fleamarket_list フリーマーケット情報 * @return array * @author ida */ private function getFleamarketEntryStyle($fleamarket_list) { if (!$fleamarket_list) { return false; } $entry_style_fields = array('field' => array('entry_style_id', 'booth_fee', 'max_booth', 'reservation_booth_limit')); $result = array(); foreach ($fleamarket_list as $fleamarket) { $entry_styles = \Model_Fleamarket_Entry_Style::findByFleamarketId($fleamarket['fleamarket_id'], $entry_style_fields); $fleamarket['entry_styles'] = $entry_styles; $result[] = $fleamarket; } return $result; }
/** * フリーマーケット情報に紐づくフリーマーケット出店形態情報を取得する * * @access private * @param array $fleamarket フリーマーケット情報 * @return array * @author ida */ private function getFleamarketEntryStyle($fleamarket) { if (!$fleamarket) { return false; } $entry_style_fields = array('field' => array('entry_style_id', 'booth_fee', 'max_booth', 'reservation_booth_limit')); $entry_styles = \Model_Fleamarket_Entry_Style::findByFleamarketId($fleamarket['fleamarket_id'], $entry_style_fields); $fleamarket['entry_styles'] = $entry_styles; $total_reserved_booth = 0; $entry = \Model_Entry::getTotalEntryByFleamarketId($fleamarket['fleamarket_id'], false); if ($entry) { $total_reserved_booth = $entry[0]['reserved_booth']; } $fleamarket['total_reserved_booth'] = $total_reserved_booth; return $fleamarket; }
/** * フリーマーケット情報に紐づくフリーマーケット出店形態情報を取得する * * @access private * @param array $fleamarket_list フリーマーケット情報 * @return array * @author ida */ private function getFleamarketEntryStyle($fleamarket_list = array()) { if (!$fleamarket_list) { return false; } $result = array(); foreach ($fleamarket_list as $fleamarket) { $fleamarket_entry_styles = \Model_Fleamarket_Entry_Style::find('all', array('where' => array(array('fleamarket_id', $fleamarket['fleamarket_id'])), 'order_by' => array('entry_style_id'))); $results = $this->createReservation($fleamarket_entry_styles); list($entry_styles, $total_reseved_booth, $total_booth) = $results; $fleamarket['total_reseved_booth'] = $total_reseved_booth; $fleamarket['total_booth'] = $total_booth; $fleamarket['entry_styles'] = $entry_styles; $result[] = $fleamarket; } return $result; }
/** * フリマ出店形態情報を登録する * * @access private * @param object フリマ情報 * @return void * @author kobayashi * @author ida */ private function registerFleamarketEntryStyle($fleamarket) { $entry_styles = \Config::get('master.entry_styles'); $fieldsets = $this->getFieldsets(); foreach ($entry_styles as $id => $entry_style) { $fieldset = $fieldsets['fleamarket_entry_styles'][$id]; $input = $fieldset->input(); $fleamarket_entry_style = \Model_Fleamarket_Entry_Style::find('first', array('where' => array('fleamarket_id' => $fleamarket->fleamarket_id, 'entry_style_id' => $id))); $data = array('booth_fee' => $input['booth_fee'], 'max_booth' => $input['max_booth'], 'reservation_booth_limit' => $input['reservation_booth_limit']); if (strlen($input['booth_fee'])) { $administrator_id = $this->administrator->administrator_id; if ($fleamarket_entry_style) { $data['updated_user'] = $administrator_id; } else { $fleamarket_entry_style = \Model_Fleamarket_Entry_Style::forge(array('fleamarket_id' => $fleamarket->fleamarket_id, 'entry_style_id' => $id)); $data['created_user'] = $administrator_id; } $fleamarket_entry_style->set($data)->save(); } else { if ($fleamarket_entry_style) { $fleamarket_entry_style->delete(); } } } }
if ($entry_style_rand > 0) { $entry_style_list = array_rand($entry_styles, $entry_style_rand); if (!is_array($entry_style_list)) { $entry_style_list = (array) $entry_style_list; } foreach ($entry_style_list as $entry_style_id) { if ($shop_fee_list[$shop_fee] == \Model_Fleamarket::SHOP_FEE_FLAG_FREE) { $booth_fee = 0; } else { $booth_fee_key = array_rand($booth_fee_list); $booth_fee = $booth_fee_list[$booth_fee_key]; } $max_booth = mt_rand(20, 100); $reservation_booth_limit = mt_rand(1, 10); $entry_style_line = array('fleamarket_id' => $fleamarket_id, 'entry_style_id' => $entry_style_id, 'booth_fee' => $booth_fee, 'max_booth' => $max_booth, 'reservation_booth_limit' => $reservation_booth_limit, 'created_user' => 0, 'updated_user' => null, 'created_at' => \Date::forge()->format('mysql')); \Model_Fleamarket_Entry_Style::forge($entry_style_line)->save(); } } // フリマ説明情報 $about_rand = mt_rand(0, 7); if ($about_rand > 0) { $about_list = array_rand($about_titles, $about_rand); if (!is_array($about_list)) { $about_list = (array) $about_list; } foreach ($about_list as $about_id) { $about_line = array('fleamarket_id' => $fleamarket_id, 'about_id' => $about_id, 'title' => $about_titles[$about_id], 'description' => $abouts[$about_id], 'created_user' => 0, 'updated_user' => null, 'created_at' => \Date::forge()->format('mysql')); \Model_Fleamarket_About::forge($about_line)->save(); } } }
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); $entry->save(); } // foreach ($seeds as $line) { // $model = Model_Entry::forge($line); // $model->save();
/** * 空きブース判定 * * @access public * @param mixed $fleamarket_id * @return bool * @author kobayasi */ public static function hasEmptyBooth($fleamarket_id = null) { if (!$fleamarket_id) { $fleamarket_id = $this->fleamarket_id; } $max_booth = 0; $max_booth_result = \Model_Fleamarket_Entry_Style::getMaxBoothByFleamarketId($fleamarket_id, false); if (isset($max_booth_result[0]['max_booth'])) { $max_booth = $max_booth_result[0]['max_booth']; } $total_entry = 0; $total_entry_result = \Model_Entry::getTotalEntryByFleamarketId($fleamarket_id, false); if (isset($total_entry_result[0]['reserved_booth'])) { $total_entry = $total_entry_result[0]['reserved_booth']; } return $max_booth - $total_entry > 0; }
/** * 出店予約情報の登録 * * @access private * @param * @return object * @author kobayashi * @author ida */ private function registerWaitingEntry() { $fleamarket_id = \Input::post('fleamarket_id'); $fleamarket_entry_style_id = \Input::post('fleamarket_entry_style_id'); $fleamarket_entry_style = \Model_Fleamarket_Entry_Style::find('first', array('where' => array('fleamarket_entry_style_id' => $fleamarket_entry_style_id, 'fleamarket_id' => $fleamarket_id))); if (!$fleamarket_entry_style) { return false; } $condition = array('user_id' => $this->login_user->user_id, 'fleamarket_id' => $fleamarket_id, 'fleamarket_entry_style_id' => $fleamarket_entry_style_id); $entry = \Model_Entry::findBy($condition); if ($entry) { $entry->set(array('entry_status' => Model_Entry::ENTRY_STATUS_WAITING, 'updated_user' => $this->login_user->user_id)); } else { $entry = \Model_Entry::forge($condition); $entry->set(array('reservation_number' => '', 'entry_status' => Model_Entry::ENTRY_STATUS_WAITING, 'item_category' => '', 'item_genres' => '', 'reserved_booth' => 0, 'link_from' => '', 'remarks' => '', 'created_user' => $this->login_user->user_id)); } $entry->save(); return $entry; }
<?php use Model_FleamarketEntryStyle; $seeds = array(array('fleamarket_entry_style_id' => 1, 'fleamarket_id' => 1, 'entry_style_id' => 1, 'booth_fee' => 100, 'max_booth' => 100, 'reservation_booth_limit' => 10, 'created_user' => 1, 'updated_user' => 1), array('fleamarket_entry_style_id' => 2, 'fleamarket_id' => 1, 'entry_style_id' => 2, 'booth_fee' => 100, 'max_booth' => 100, 'reservation_booth_limit' => 5, 'created_user' => 1, 'updated_user' => 1)); foreach ($seeds as $line) { $model = Model_Fleamarket_Entry_Style::forge($line); $model->save(); }
/** * fleamarket_entry_style_id が fleamarket_entry_styles テーブルに * 存在するかチェック * * @access public * @param int * @return bool * @author kobayasi */ public function _validation_fleamarket_entry_style_id($fleamarket_entry_style_id) { if (!$this->fleamarket_id) { return false; } $count = \Model_Fleamarket_Entry_Style::query()->where(array('fleamarket_id' => $this->fleamarket_id, 'fleamarket_entry_style_id' => $fleamarket_entry_style_id))->count(); return $count > 0; }