167 lines
7.1 KiB
PHP
167 lines
7.1 KiB
PHP
<?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,
|
||
]);
|
||
}
|
||
} |