diff --git a/app/Http/Controllers/LoginController.php b/app/Http/Controllers/LoginController.php index 07224d5..c067cc4 100644 --- a/app/Http/Controllers/LoginController.php +++ b/app/Http/Controllers/LoginController.php @@ -15,7 +15,7 @@ class LoginController extends Controller public function login(Request $request) { // ID・パスワードチェック - $existingMember = User::where('user_primemail', $request->input('login_id'))->first(); + $existingMember = User::where('user_primemail', $request->input('login_id'))->where('user_quit_flag', 0)->first(); if (!$existingMember || !CommonFunction::verifyPassword($existingMember->user_seq, $request->input('password'), $existingMember->user_pass)) { return redirect('swo8_1') ->withErrors(['login' => 'ID/パスワードが間違っています']) diff --git a/app/Http/Controllers/ParkingSearchController.php b/app/Http/Controllers/ParkingSearchController.php index 900b870..ee886db 100644 --- a/app/Http/Controllers/ParkingSearchController.php +++ b/app/Http/Controllers/ParkingSearchController.php @@ -11,6 +11,25 @@ class ParkingSearchController extends Controller { // 初期表示 public function index() + { + $result = $this->getParkData('', '', ''); + return view('general.swo5_1', $result); + } + + // プルダウン選択 + public function search(Request $request) + { + $result = $this->getParkData( + $request->input('conditions_city'), + $request->input('conditions_station'), + $request->input('conditions_park') + ); + + return view('general.swo5_1', $result); + } + + // 検索処理 + public function getParkData($city_name, $station_neighbor_station, $park_name) { // 検索仕様 // 駐輪場マスタの全件(条件を絞った場合はその条件に一致するもの)を取得。 @@ -21,27 +40,39 @@ class ParkingSearchController extends Controller $park = \DB::table('park as p') ->select( 'p.park_name', + 'p.park_adrs', + 'p.price_memo', + 'p.park_latitude', + 'p.park_longitude', 'p.update_grace_period_start_date', 'p.update_grace_period_start_time', 'p.update_grace_period_end_date', 'p.update_grace_period_end_time', 'c.city_name', 's.station_neighbor_station', - 'z.psection_id' + 'z.psection_id', + 'z.zone_standard' ) ->leftJoin('city as c', 'p.city_id', '=', 'c.city_id') ->leftJoin(\DB::raw( '(SELECT park_id, station_neighbor_station FROM station WHERE station_id IN (SELECT MAX(station_id) FROM station GROUP BY park_id)) as s' ),'p.park_id','=','s.park_id') - ->leftJoin('zone as z', 'p.park_id', '=', 'z.park_id') - //->where('p.park_name', 'a') - //->where('c.city_name', 'b') - //->where('s.station_neighbor_station', 'c') - ->orderBy('p.park_ruby') - ->get(); + ->leftJoin('zone as z', 'p.park_id', '=', 'z.park_id'); + + // プルダウン指定の条件でwhere句を付与 + if (!empty($city_name)) { + $park = $park->where('c.city_name', $city_name); + } + if (!empty($station_neighbor_station)) { + $park = $park->where('s.station_neighbor_station', $station_neighbor_station); + } + if (!empty($park_name)) { + $park = $park->whereRaw("LEFT(p.park_ruby, 1) REGEXP '^[".$park_name."]'"); + } + $park = $park->orderBy('p.park_ruby')->get(); // 各マスタから追加情報を取得し、各ボタンの表示有無を判定する - $result = []; + $form_data = []; $now = date('Y-m-d H:i:s'); foreach ($park as $row) { @@ -58,27 +89,25 @@ class ParkingSearchController extends Controller ->where('valid_flag', 1) ->count(); - // 空き台数を計算 - $vacant = ($vacantInfo ? $vacantInfo->vacant : 0) - $reservedCount; - // 更新期間内判定 $update_start = $row->update_grace_period_start_date . ' ' . $row->update_grace_period_start_time; $update_end = $row->update_grace_period_end_date . ' ' . $row->update_grace_period_end_time; $is_update_period = ($now >= $update_start && $now <= $update_end); // ボタン表示有無判定 - if ($vacant > 0 && $is_update_period) { // 定期契約ボタン (空き台数が1台以上かつ更新期間内) + $vacant = ($vacantInfo ? $vacantInfo->vacant : 0) - $reservedCount; + if ($vacant > 0 && $is_update_period) { // 定期契約ボタン (空き台数が1台以上かつ更新期間内) $status = 1; - } elseif ($vacant <= 0 && $is_update_period) { // 当日予約ボタン (空き台数が0台以下かつ更新期間内) + } elseif ($vacant <= 0 && $is_update_period) { // 空き待ち予約ボタン (空き台数が0台以下かつ更新期間内) $status = 2; - } elseif ($vacant <= 0 && !$is_update_period) { // 販売期間外ボタン (空き台数が0台以下かつ更新期間外) + } elseif ($vacant <= 0 && !$is_update_period) { // 販売期間外ボタン (空き台数が0台以下かつ更新期間外) $status = 3; } else { $status = null; } // 画面返却用データに追加 - $result[] = [ + $form_data[] = [ 'park_name' => $row->park_name, 'city_name' => $row->city_name, 'station_neighbor_station' => $row->station_neighbor_station, @@ -86,12 +115,25 @@ class ParkingSearchController extends Controller ]; } - // 検索用プルダウン取得 - $cities = \DB::table('city')->select('city_name')->orderBy('city_ruby')->get(); + // プルダウン用データ取得 + $conditions = [$city_name, $station_neighbor_station, $park_name]; + $cities = \DB::table('city')->select('city_name')->orderBy('city_id')->get(); $stations = \DB::table('station')->select('station_neighbor_station')->distinct()->orderBy('station_neighbor_station')->get(); - $parkings = ['全て', 'あ行', 'か行', 'さ行', 'た行', 'な行', 'は行', 'ま行', 'や行', 'ら行', 'わ行']; - - // 検索結果返却 - return view('general.swo5_1',['form_data' => $result, 'cities' => $cities, 'stations' => $stations, 'parkings' => $parkings]); + $parks = [ + '全て'=>'', + 'あ行'=>'あいうえおアイウエオ', + 'か行'=>'かきくけこがぎぐげごカキクケコガギグゲゴ', + 'さ行'=>'さしすせそざじずぜぞサシスセソザジズゼゾ', + 'た行'=>'たちつてとだぢづでどタチツテトダヂヅデド', + 'な行'=>'なにぬねのナニヌネノ', + 'は行'=>'はひふへほばびぶべぼぱぴぷぺぽハヒフヘホバビブベボパピプペポ', + 'ま行'=>'まみむめもマミムメモ', + 'や行'=>'やゆよヤユヨ', + 'ら行'=>'らりるれろラリルレロ', + 'わ行'=>'わをんワヲン ' + ]; + + // 情報返却 + return ['form_data' => $form_data, 'cities' => $cities, 'stations' => $stations, 'parks' => $parks, 'conditions' => $conditions]; } } \ No newline at end of file diff --git a/resources/views/general/swo5_1.blade.php b/resources/views/general/swo5_1.blade.php index eb5f5ed..f323344 100644 --- a/resources/views/general/swo5_1.blade.php +++ b/resources/views/general/swo5_1.blade.php @@ -9,50 +9,58 @@
駐輪場をお選びください。
-
+
市町村名
- + + @foreach($cities as $city) + @if(isset($conditions) && $conditions[0] == $city->city_name) { + + @else + + @endif + @endforeach
駅名
- + + @foreach($stations as $station) + @if(isset($conditions) && $conditions[1] == $station->station_neighbor_station) { + + @else + + @endif + @endforeach
駐車場名
- + @foreach($parks as $key => $value) + @if(isset($conditions) && $conditions[2] == $value) { + + @else + + @endif + @endforeach
+ + @csrf
@@ -64,85 +72,54 @@ + @php + $perPage = 10; + $page = request()->get('page', 1); + $total = count($form_data); + $start = ($page - 1) * $perPage; + $pagedData = array_slice($form_data, $start, $perPage); + $lastPage = ceil($total / $perPage); + @endphp + @foreach($pagedData as $data) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + @endforeach
あマルバツ駐輪場A〇〇市〇〇駅定期契約
かマルバツ駐輪場B〇〇市〇〇駅空き待ち申込
あマルバツ駐輪場A〇〇市〇〇駅定期契約
かマルバツ駐輪場B〇〇市〇〇駅空き待ち申込
あマルバツ駐輪場A〇〇市〇〇駅定期契約
かマルバツ駐輪場B〇〇市〇〇駅空き待ち申込
あマルバツ駐輪場A〇〇市〇〇駅定期契約
かマルバツ駐輪場B〇〇市〇〇駅空き待ち申込
あマルバツ駐輪場A〇〇市〇〇駅定期契約
かマルバツ駐輪場B〇〇市〇〇駅空き待ち申込
{{ $data['park_name'] }}{{ $data['city_name'] }}{{ $data['station_neighbor_station'] }} + @if($data['status'] == 1) + 定期契約 + @elseif($data['status'] == 2) + 空き待ち予約 + @elseif($data['status'] == 3) + 販売期間外 + @endif +
@@ -151,64 +128,34 @@ -