krgm.so-manager-dev.com/app/Http/Controllers/Admin/PersonalController.php
你的名字 4137794126
All checks were successful
Deploy main / deploy (push) Successful in 22s
【本人確認手動処理】本人確認チェックOK/本人確認チェックNG ボダン実装
2025-09-29 15:47:02 +09:00

167 lines
7.1 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use App\Models\Usertype;
class PersonalController extends Controller
{
/**
* 本人確認手動処理 一覧画面
*/
public function list(Request $request)
{
$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.user_id', $request->input('user_id'));
}
// データベースの物理順序(主キー昇順)で表示
$users = $query->paginate(20);
return view('admin.personal.list', [
'users' => $users,
'request' => $request,
]);
}
/**
* 本人確認手動処理 編集画面
*/
public function edit(Request $request, $seq)
{
\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')) {
\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);
// 本人確認チェック処理(バックアップ値を優先使用)
$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()
]);
}
\Log::info('Before save:', [
'user_idcard_chk_flag' => $user->user_idcard_chk_flag,
'ope_id' => $user->ope_id,
'isDirty' => $user->isDirty(),
'getDirty' => $user->getDirty()
]);
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,
]);
}
}