160 lines
9.0 KiB
PHP
160 lines
9.0 KiB
PHP
@extends('layouts.app')
|
||
@section('title', 'インフォメーション')
|
||
@section('content')
|
||
@php
|
||
use App\Models\OperatorLog;
|
||
use App\Models\Ope;
|
||
$logs = OperatorLog::orderByDesc('created_at')->limit(20)->get();
|
||
$operatorNames = [];
|
||
$queLabels = [];
|
||
$queIcons = [];
|
||
$queClassNums = [];
|
||
foreach ($logs as $log) {
|
||
// オペレータ名取得
|
||
$operatorNames[$log->operator_id] =
|
||
$operatorNames[$log->operator_id] ??
|
||
(\App\Models\Ope::find($log->operator_id)->ope_name ?? $log->operator_id);
|
||
// operator_queからque_class, que_status取得
|
||
$que = null;
|
||
if (!empty($log->user_id) && !empty($log->contract_id)) {
|
||
$que = \App\Models\OperatorQue::where('user_id', $log->user_id)
|
||
->where('contract_id', $log->contract_id)
|
||
->first();
|
||
}
|
||
// 条件を満たさない場合はスキップ
|
||
if (!$que || !in_array($que->que_status, [3, 4])) {
|
||
continue;
|
||
}
|
||
if ($que->que_class < 100) {
|
||
$queLabels[$log->operator_log_id] = '<span class="badge badge-primary">タスク</span>';
|
||
$queIcons[$log->operator_log_id] = '';
|
||
} elseif ($que->que_class > 99) {
|
||
$queLabels[$log->operator_log_id] = '<span class="badge badge-danger">ハード異常</span>';
|
||
$queIcons[$log->operator_log_id] = '';
|
||
} else {
|
||
continue;
|
||
}
|
||
$queClassNums[$log->operator_log_id] =
|
||
\App\Models\OperatorQue::QueClass[$que->que_class] ?? $que->que_class;
|
||
}
|
||
@endphp
|
||
<div class="container-fluid" style="background:#f4f6f9;min-height:calc(100vh - 60px);">
|
||
<div class="row">
|
||
<!-- メイン -->
|
||
<div class="col-md-12">
|
||
<div class="row mt-4">
|
||
<div class="col-lg-7">
|
||
<div class="card mb-4">
|
||
<div class="card-header bg-white font-weight-bold">インフォメーション</div>
|
||
<div class="card-body">
|
||
@php
|
||
// ▼ 各メニューの件数を取得(que_status は運用に合わせて調整)
|
||
// 例:未処理/処理中を 1,2 として集計
|
||
$statusTargets = [1, 2];
|
||
|
||
// ▼ QueClass は実際の定義に合わせて値を変更してください
|
||
// ここでは例として que_class を使って種別を分ける想定
|
||
$cntPersonalCheck = \App\Models\OperatorQue::whereIn('que_status', $statusTargets)
|
||
->whereIn('que_class', [
|
||
/* 本人確認の que_class を入れる */
|
||
])
|
||
->count();
|
||
|
||
$cntCancelRequest = \App\Models\OperatorQue::whereIn('que_status', $statusTargets)
|
||
->whereIn('que_class', [
|
||
/* 解約リクエストの que_class を入れる */
|
||
])
|
||
->count();
|
||
|
||
$cntUserInfoChange = \App\Models\OperatorQue::whereIn('que_status', $statusTargets)
|
||
->whereIn('que_class', [
|
||
/* ユーザー情報変更の que_class を入れる */
|
||
])
|
||
->count();
|
||
|
||
// ▼ 0埋め(000件 表示用)
|
||
$fmt = fn($n) => str_pad((string) $n, 3, '0', STR_PAD_LEFT) . '件';
|
||
@endphp
|
||
|
||
{{-- 本人確認処理 --}}
|
||
<div class="card mb-3" style="box-shadow:none;border:1px solid #e0e0e0;">
|
||
<div class="card-body py-3 px-4 d-flex align-items-center ">
|
||
<a href="{{ route('personal') }}"
|
||
style="font-weight:bold;color:#007bff;font-size:1.05em;">
|
||
本人確認処理
|
||
</a>
|
||
<span class="badge badge-primary ml-auto"
|
||
style="font-size:0.95em;">{{ $fmt($cntPersonalCheck) }}</span>
|
||
</div>
|
||
</div>
|
||
|
||
{{-- 解約リクエスト --}}
|
||
<div class="card mb-3" style="box-shadow:none;border:1px solid #e0e0e0;">
|
||
<div class="card-body py-3 px-4 d-flex align-items-center ">
|
||
<a href="{{ route('regularcontracts') }}"
|
||
style="font-weight:bold;color:#007bff;font-size:1.05em;">
|
||
解約リクエスト
|
||
</a>
|
||
<span class="badge badge-primary ml-auto"
|
||
style="font-size:0.95em;">{{ $fmt($cntCancelRequest) }}</span>
|
||
</div>
|
||
</div>
|
||
|
||
{{-- ユーザー情報変更 --}}
|
||
<div class="card mb-0" style="box-shadow:none;border:1px solid #e0e0e0;">
|
||
<div class="card-body py-3 px-4 d-flex align-items-center ">
|
||
<a href="{{ route('users') }}"
|
||
style="font-weight:bold;color:#007bff;font-size:1.05em;">
|
||
ユーザー情報変更
|
||
</a>
|
||
<span class="badge badge-primary ml-auto"
|
||
style="font-size:0.95em;">{{ $fmt($cntUserInfoChange) }}</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="col-lg-5">
|
||
<div class="card mb-4">
|
||
<div class="card-header bg-white font-weight-bold">操作履歴</div>
|
||
<div class="card-body p-0">
|
||
<table class="table table-sm mb-0">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">操作内容</th>
|
||
<th scope="col"></th>
|
||
<th scope="col"></th>
|
||
<th scope="col">オペレーター</th>
|
||
<th scope="col">日時</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
@php $hasData = false; @endphp
|
||
@foreach ($logs as $log)
|
||
@if (isset($queLabels[$log->operator_log_id]))
|
||
@php $hasData = true; @endphp
|
||
<tr>
|
||
<td>{!! $queIcons[$log->operator_log_id] !!}{!! $queLabels[$log->operator_log_id] !!}</td>
|
||
<td></td>
|
||
<td>{{ $queClassNums[$log->operator_log_id] }}</td>
|
||
<td>{{ $operatorNames[$log->operator_id] ?? $log->operator_id }}</td>
|
||
<td>{{ $log->created_at }}</td>
|
||
</tr>
|
||
@endif
|
||
@endforeach
|
||
@if (!$hasData)
|
||
<tr>
|
||
<td colspan="5" class="text-center">データがありません</td>
|
||
</tr>
|
||
@endif
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
@endsection
|