43 lines
1.1 KiB
PHP
43 lines
1.1 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
declare(strict_types=1);
|
||
|
|
|
||
|
|
namespace App\Http\Controllers\Admin;
|
||
|
|
|
||
|
|
use App\Http\Controllers\Controller;
|
||
|
|
use App\Models\CrawlAlert;
|
||
|
|
use Illuminate\Http\RedirectResponse;
|
||
|
|
use Illuminate\Http\Request;
|
||
|
|
use Illuminate\View\View;
|
||
|
|
|
||
|
|
class CrawlAlertController extends Controller
|
||
|
|
{
|
||
|
|
public function index(Request $request): View
|
||
|
|
{
|
||
|
|
$items = CrawlAlert::query()
|
||
|
|
->with(['rule', 'run'])
|
||
|
|
->when($request->filled('resolved'), function ($query) use ($request): void {
|
||
|
|
$query->where('is_resolved', (bool) $request->boolean('resolved'));
|
||
|
|
})
|
||
|
|
->latest('id')
|
||
|
|
->paginate(20)
|
||
|
|
->withQueryString();
|
||
|
|
|
||
|
|
return view('admin.crawl-alerts.index', [
|
||
|
|
'items' => $items,
|
||
|
|
'filters' => $request->only(['resolved']),
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function resolve(CrawlAlert $alert): RedirectResponse
|
||
|
|
{
|
||
|
|
$alert->is_resolved = true;
|
||
|
|
$alert->resolved_at = now();
|
||
|
|
$alert->resolved_by = null;
|
||
|
|
$alert->save();
|
||
|
|
|
||
|
|
return redirect()->back()->with('status', '告警已标记为已处理');
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|