so-manager-dev.com/resources/views/regular_contract/upload_identity_fail.blade.php
2025-09-19 19:01:21 +09:00

157 lines
8.1 KiB
PHP
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>本人確認処理 - 失敗</title>
<style>
body { font-family: Arial, sans-serif; margin: 20px; background-color: #f8f9fa; }
.container { max-width: 1200px; margin: 0 auto; background: white; padding: 20px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
.header { text-align: center; color: #dc3545; margin-bottom: 30px; }
.section { margin-bottom: 30px; border: 1px solid #dee2e6; border-radius: 5px; padding: 15px; }
.section-title { font-size: 18px; font-weight: bold; color: #333; margin-bottom: 15px; background-color: #e9ecef; padding: 10px; margin: -15px -15px 15px -15px; }
.failure { background-color: #f8d7da; border-color: #f5c6cb; }
.failure .section-title { background-color: #dc3545; color: white; }
.warning { background-color: #fff3cd; border-color: #ffeaa7; }
.warning .section-title { background-color: #ffc107; color: #212529; }
pre { background-color: #f8f9fa; padding: 10px; border-radius: 4px; overflow-x: auto; font-size: 12px; line-height: 1.4; }
.btn { display: inline-block; padding: 10px 20px; background-color: #007bff; color: white; text-decoration: none; border-radius: 4px; margin-top: 20px; }
.btn:hover { background-color: #0056b3; }
.btn-retry { background-color: #ffc107; color: #212529; }
.btn-retry:hover { background-color: #e0a800; }
.status-error { color: #dc3545; font-weight: bold; }
.timestamp { text-align: right; color: #6c757d; font-size: 12px; }
.error-highlight { background-color: #ffebee; padding: 5px; border-radius: 3px; }
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1> SHJ-1 本人確認自動処理 - 失敗</h1>
<p>本人確認処理でエラーが発生しました。手動確認が必要です。</p>
</div>
<div class="timestamp">
処理日時: {{ $debugInfo['timestamp'] }}
</div>
@if(isset($debugInfo['error']))
<div class="section failure">
<div class="section-title"> システムエラー</div>
<pre>{{ $debugInfo['error'] }}</pre>
</div>
@else
<!-- ユーザー情報 -->
<div class="section warning">
<div class="section-title">👤 ユーザー情報</div>
<pre>
ユーザーID: {{ $debugInfo['user']->user_id ?? 'N/A' }}
ユーザー連番: {{ $debugInfo['user']->user_seq ?? 'N/A' }}
氏名: {{ $debugInfo['user']->user_name ?? 'N/A' }}
フリガナ: {{ $debugInfo['user']->user_phonetic ?? 'N/A' }}
居住住所: {{ ($debugInfo['user']->user_regident_pre ?? '') . ($debugInfo['user']->user_regident_city ?? '') . ($debugInfo['user']->user_regident_add ?? '') }}
関連住所: {{ ($debugInfo['user']->user_relate_pre ?? '') . ($debugInfo['user']->user_relate_city ?? '') . ($debugInfo['user']->user_relate_add ?? '') }}
本人確認書類: {{ $debugInfo['user']->user_idcard ?? 'N/A' }}
本人確認フラグ: <span class="status-error">{{ $debugInfo['user']->user_idcard_chk_flag ?? 'N/A' }}</span>
確認日時: {{ $debugInfo['user']->user_chk_day ?? 'N/A' }}
確認オペレータID: {{ $debugInfo['user']->user_chk_opeid ?? 'N/A' }}
写真ファイル1: {{ $debugInfo['user']->photo_filename1 ?? 'N/A' }}
写真ファイル2: {{ $debugInfo['user']->photo_filename2 ?? 'N/A' }}
</pre>
</div>
<!-- 駐輪場情報 -->
@if($debugInfo['park'])
<div class="section warning">
<div class="section-title">🚲 駐輪場情報</div>
<pre>
駐輪場ID: {{ $debugInfo['park']->park_id }}
駐輪場名: {{ $debugInfo['park']->park_name }}
住所: {{ $debugInfo['park']->park_adrs }}
二点間距離設定: {{ $debugInfo['park']->distance_between_two_points ?? 'N/A' }}m
緯度: {{ $debugInfo['park']->park_latitude ?? 'N/A' }}
経度: {{ $debugInfo['park']->park_longitude ?? 'N/A' }}
</pre>
</div>
@endif
<!-- 契約情報 -->
@if($debugInfo['contract'])
<div class="section warning">
<div class="section-title">📝 契約情報</div>
<pre>
契約ID: {{ $contractId }}
ユーザー連番: {{ $debugInfo['contract']->user_id }}
駐輪場ID: {{ $debugInfo['contract']->park_id }}
800mフラグ: <span class="{{ isset($debugInfo['contract']->{'800m_flag'}) && $debugInfo['contract']->{'800m_flag'} ? 'status-error' : '' }}">{{ $debugInfo['contract']->{'800m_flag'} ?? 'N/A' }}</span>
作成日時: {{ $debugInfo['contract']->created_at ?? 'N/A' }}
更新日時: {{ $debugInfo['contract']->updated_at ?? 'N/A' }}
</pre>
</div>
@endif
<!-- バッチログ情報 -->
@if($debugInfo['batch_log'])
<div class="section failure">
<div class="section-title">⚙️ バッチ処理情報</div>
<pre>
バッチ名: {{ $debugInfo['batch_log']->process_name }}
ステータス: <span class="status-error">{{ $debugInfo['batch_log']->status }}</span>
開始時刻: {{ $debugInfo['batch_log']->start_time }}
終了時刻: {{ $debugInfo['batch_log']->end_time }}
処理件数: {{ $debugInfo['batch_log']->execution_count ?? 0 }}
成功件数: {{ $debugInfo['batch_log']->success_count ?? 0 }}
エラー件数: <span class="status-error">{{ $debugInfo['batch_log']->error_count ?? 0 }}</span>
メッセージ: <span class="error-highlight">{{ $debugInfo['batch_log']->message }}</span>
エラー詳細: {{ $debugInfo['batch_log']->error_details ?? 'N/A' }}
</pre>
</div>
@endif
@if(isset($debugInfo['user']->user_idcard) && $debugInfo['user']->user_idcard === '免許証')
<!-- 詳細ログ (免許証のみ表示) -->
<div class="section failure">
<div class="section-title">📋 SHJ-1処理詳細ログ (OCR・距離計算・エラー詳細)</div>
<pre>{{ $debugInfo['detailed_logs'] }}</pre>
</div>
<!-- Google Maps API結果 (免許証のみ表示) -->
<div class="section failure">
<div class="section-title">🗺️ Google Maps API (距離計算) 処理結果</div>
<pre>
【距離計算結果】
起点住所: {{ $debugInfo['distance_start_address'] ?? (($debugInfo['user']->user_regident_pre ?? '') . ($debugInfo['user']->user_regident_city ?? '') . ($debugInfo['user']->user_regident_add ?? '')) }}
終点住所: {{ $debugInfo['park']->park_adrs ?? ($debugInfo['distance_end_address'] ?? 'N/A') }}
計算距離: {{ $debugInfo['calculated_distance'] ?? 'N/A' }}m @if(isset($debugInfo['distance_text']))({{ $debugInfo['distance_text'] }})@endif
距離制限: {{ $debugInfo['distance_limit'] ?? config('shj1.distance.default_limit_meters') }}m
判定結果: {{ isset($debugInfo['distance_passed']) ? ($debugInfo['distance_passed'] ? '✅ 制限内' : '❌ 制限超過') : 'N/A' }}
【API呼び出し状況】
API応答: {{ $debugInfo['maps_api_status'] ?? 'ログから確認してください' }}
エラー詳細: {{ $debugInfo['maps_api_error'] ?? 'なし' }}
</pre>
</div>
@else
<!-- 非免許証の場合の表示 -->
<div class="section warning">
<div class="section-title"> 処理状況</div>
<pre>
本人確認書類種別: {{ $debugInfo['user']->user_idcard ?? 'N/A' }}
{{ $debugInfo['user']->user_idcard ?? '不明' }}の場合、SHJ-1による自動OCR処理・距離計算は実行されません。
処理ステータス: 手動確認待ち
</pre>
</div>
@endif
@endif
<div style="text-align: center; margin-top: 30px;">
<a href="/regular-contract/upload_identity_create" class="btn btn-retry">写真を再アップロード</a>
<a href="/" class="btn">トップページに戻る</a>
</div>
</div>
</body>
</html>