diff --git a/app/Http/Controllers/Admin/PersonalController.php b/app/Http/Controllers/Admin/PersonalController.php index 72641d5..6424620 100644 --- a/app/Http/Controllers/Admin/PersonalController.php +++ b/app/Http/Controllers/Admin/PersonalController.php @@ -14,14 +14,27 @@ class PersonalController extends Controller */ public function list(Request $request) { - $query = User::query(); + $query = User::query() + // 本人確認手動処理:未チェック(1) または 手動NG(4) または 自動チェックNG(5) + ->whereIn('user_idcard_chk_flag', [1, 4, 5]) + // 本人確認書類アップロード済み + ->where(function($q) { + $q->whereNotNull('photo_filename1') + ->orWhereNotNull('photo_filename2'); + }) + // usertypeテーブルとLEFT JOINで分類情報を取得 + ->leftJoin('usertype', 'user.user_categoryid', '=', 'usertype.user_categoryid') + ->select('user.*', + 'usertype.usertype_subject1', + 'usertype.usertype_subject2', + 'usertype.usertype_subject3'); if ($request->filled('user_id')) { - $query->where('user_id', $request->input('user_id')); + $query->where('user.user_id', $request->input('user_id')); } + // データベースの物理順序(主キー昇順)で表示 $users = $query->paginate(20); - return view('admin.personal.list', [ 'users' => $users, 'request' => $request, @@ -31,33 +44,121 @@ class PersonalController extends Controller /** * 本人確認手動処理 編集画面 */ - public function edit(Request $request, $id) + public function edit(Request $request, $seq) { - // 利用者情報取得 - $user = User::where('user_id', $id)->firstOrFail(); + \Log::info('=== Personal Edit Method START ===', ['seq' => $seq, 'method' => $request->method()]); + + // 利用者情報取得(user_seqで検索) + $user = User::where('user_seq', $seq)->firstOrFail(); + + \Log::info('User found:', [ + 'user_seq' => $user->user_seq, + 'user_id' => $user->user_id, + 'current_flag' => $user->user_idcard_chk_flag + ]); // 利用者分類マスタ取得(ラジオボタン用) $usertypes = Usertype::orderBy('sort_order')->get(); // POST時の処理 if ($request->isMethod('post')) { - // 利用者分類IDの更新 + \Log::info('=== FULL REQUEST DEBUG ==='); + \Log::info('All request data:', $request->all()); + + \Log::info('=== Personal Edit POST Processing ==='); + + // 各フィールドの更新 $user->user_categoryid = $request->input('user_categoryid', $user->user_categoryid); + $user->user_regident_zip = $request->input('user_regident_zip', $user->user_regident_zip); + $user->user_regident_pre = $request->input('user_regident_pre', $user->user_regident_pre); + $user->user_regident_city = $request->input('user_regident_city', $user->user_regident_city); + $user->user_regident_add = $request->input('user_regident_add', $user->user_regident_add); + $user->user_relate_zip = $request->input('user_relate_zip', $user->user_relate_zip); + $user->user_relate_pre = $request->input('user_relate_pre', $user->user_relate_pre); + $user->user_relate_city = $request->input('user_relate_city', $user->user_relate_city); + $user->user_relate_add = $request->input('user_relate_add', $user->user_relate_add); + $user->user_remarks = $request->input('user_remarks', $user->user_remarks); + $user->user_idcard = $request->input('user_idcard', $user->user_idcard); - // 本人確認チェックOK/NG - if ($request->input('check') === 'ok') { - $user->user_idcard_chk_flag = 1; - } elseif ($request->input('check') === 'ng') { - $user->user_idcard_chk_flag = 0; - // 備考欄も更新(NG理由) - $user->user_remarks = $request->input('user_remarks', $user->user_remarks); + // 本人確認チェック処理(バックアップ値を優先使用) + $checkValue = $request->input('check') ?? $request->input('check_backup'); + + \Log::info('Check value received:', [ + 'check' => $request->input('check'), + 'check_backup' => $request->input('check_backup'), + 'final_value' => $checkValue, + 'type' => gettype($checkValue) + ]); + + if ($checkValue === 'ok') { + $user->user_idcard_chk_flag = 3; // 手動チェックOK + $user->ope_id = auth()->user()->ope_id ?? auth()->id(); // 現在ログイン中の操作者ID + \Log::info('Setting user_idcard_chk_flag to 3 (手動チェックOK)'); + \Log::info('Setting ope_id to current user:', ['ope_id' => $user->ope_id]); + } elseif ($checkValue === 'ng') { + $user->user_idcard_chk_flag = 4; // 手動チェックNG + $user->ope_id = auth()->user()->ope_id ?? auth()->id(); // 現在ログイン中の操作者ID + \Log::info('Setting user_idcard_chk_flag to 4 (手動チェックNG)'); + \Log::info('Setting ope_id to current user:', ['ope_id' => $user->ope_id]); + } else { + \Log::warning('No valid check value received', [ + 'checkValue' => $checkValue, + 'all_input' => $request->all() + ]); } - $user->save(); + \Log::info('Before save:', [ + 'user_idcard_chk_flag' => $user->user_idcard_chk_flag, + 'ope_id' => $user->ope_id, + 'isDirty' => $user->isDirty(), + 'getDirty' => $user->getDirty() + ]); - return redirect()->route('personal')->with('success', '更新しました'); + try { + $result = $user->save(); + \Log::info('User saved successfully', [ + 'result' => $result, + 'user_idcard_chk_flag' => $user->user_idcard_chk_flag + ]); + + // 保存結果の検証 + $user->refresh(); // モデルデータをリフレッシュ + $savedUser = User::where('user_seq', $seq)->first(); + \Log::info('Verification after save', [ + 'model_refresh' => $user->user_idcard_chk_flag, + 'user_idcard_chk_flag' => $savedUser->user_idcard_chk_flag + ]); + + // データベース直接確認 + $dbUser = \DB::table('user')->where('user_seq', $seq)->first(); + \Log::info('DB direct check:', [ + 'user_idcard_chk_flag' => $dbUser->user_idcard_chk_flag ?? 'NOT_FOUND' + ]); + + } catch (\Exception $e) { + \Log::error('Save failed', [ + 'error' => $e->getMessage(), + 'file' => $e->getFile(), + 'line' => $e->getLine() + ]); + return back()->withErrors('保存に失敗しました: ' . $e->getMessage()); + } + + \Log::info('=== POST Processing END ==='); + + // 成功メッセージ + $message = 'データを更新しました。'; + if ($checkValue === 'ok') { + $message = '本人確認チェックOKで更新しました。'; + } elseif ($checkValue === 'ng') { + $message = '本人確認チェックNGで更新しました。'; + } + + return redirect()->route('personal')->with('success', $message); } + \Log::info('=== Personal Edit Method END (GET) ==='); + return view('admin.personal.edit', [ 'user' => $user, 'usertypes' => $usertypes, diff --git a/resources/views/admin/personal/edit.blade.php b/resources/views/admin/personal/edit.blade.php index d4ddc87..c8e1776 100644 --- a/resources/views/admin/personal/edit.blade.php +++ b/resources/views/admin/personal/edit.blade.php @@ -22,7 +22,7 @@
-
+ @csrf
@@ -34,7 +34,7 @@
本人確認写真ファイル名1
@if($user->photo_filename1) - + @endif
@@ -42,7 +42,7 @@
本人確認写真ファイル名2
@if($user->photo_filename2) - + @endif
@@ -68,7 +68,9 @@ name="user_categoryid" value="{{ $type->user_categoryid }}" {{ (string)$user->user_categoryid === (string)$type->user_categoryid ? 'checked' : '' }}> - {{ $type->print_name }} + {{ $type->usertype_subject1 }} + @if($type->usertype_subject2)/{{ $type->usertype_subject2 }}@endif + @if($type->usertype_subject3)/{{ $type->usertype_subject3 }}@endif @endforeach @@ -97,25 +99,25 @@ {{-- 居住所 --}} 居住所 - 郵便番号{{ $user->user_regident_zip }} - 都道府県{{ $user->user_regident_pre }} + 郵便番号 + 都道府県 - 市区群{{ $user->user_regident_city }} - 住所{{ $user->user_regident_add }} + 市区群 + 住所 {{-- 関連住所 --}} 関連住所 - 郵便番号{{ $user->user_relate_zip }} - 都道府県{{ $user->user_relate_pre }} + 郵便番号 + 都道府県 - 市区群{{ $user->user_relate_city }} - 住所{{ $user->user_relate_add }} + 市区群 + 住所 @@ -126,42 +128,55 @@ 備考 - {{ $user->user_remarks }} + 本人確認書類 - {{ $user->user_idcard }} + {{-- 注意文&アクション --}} -
+
本人確認書類写真と登録情報を比較して問題なければ、「本人確認チェックOK」ボタンを押下してください。
問題がある場合は「備考」にNG理由を記載のうえ、「本人確認チェックNG」ボタンを押下してください。
-
-
+ {{-- 隐藏字段备份check值 --}} + {{-- check値のバックアップ用隠しフィールド --}} + +
+{{-- check値が隠しフィールドに保存されることを確保 --}} + + {{-- 専用スタイル(目標画像の見た目に寄せる) --}} @endsection diff --git a/resources/views/admin/personal/list.blade.php b/resources/views/admin/personal/list.blade.php index 81eb8a8..4fbc6bf 100644 --- a/resources/views/admin/personal/list.blade.php +++ b/resources/views/admin/personal/list.blade.php @@ -22,18 +22,6 @@
- {{-- フィルター(必要なら追加) --}} - {{--
-
-
- -
-
- -
-
-
--}} -
@@ -61,16 +49,21 @@ + @forelse($users as $user) - + @@ -90,10 +83,20 @@ + @empty - + @endforelse diff --git a/routes/web.php b/routes/web.php index 8f0256d..9173959 100644 --- a/routes/web.php +++ b/routes/web.php @@ -261,7 +261,7 @@ Route::middleware('auth')->group(function () { // 本人確認手動処理 Route::match(['get', 'post'], '/personal', [PersonalController::class, 'list'])->name('personal'); - Route::match(['get', 'post'], '/personal/edit/{id}', [PersonalController::class, 'edit'])->name('personal_edit')->where(['id' => '[0-9]+']); + Route::match(['get', 'post'], '/personal/edit/{seq}', [PersonalController::class, 'edit'])->name('personal_edit')->where(['seq' => '[0-9]+']); // 常時表示インフォメーション Route::get('/information', [InformationController::class, 'list'])->name('information');
卒業予定 備考 本人確認書類確認状態
- 編集 + 編集 {{ $user->user_id }}{{ $user->user_categoryid }} + {{ $user->usertype_subject1 ?? '' }} + @if($user->usertype_subject2)/{{ $user->usertype_subject2 }}@endif + @if($user->usertype_subject3)/{{ $user->usertype_subject3 }}@endif + {{ $user->user_name }} {{ $user->user_phonetic }} {{ $user->user_gender }}{{ $user->user_graduate }} {{ $user->user_remarks }} {{ $user->user_idcard }} + @switch($user->user_idcard_chk_flag) + @case(1)未チェック@break + @case(2)自動OK@break + @case(3)手動OK@break + @case(4)手動NG@break + @case(5)自動NG@break + @default不明 + @endswitch +
データがありません。データがありません。