44 lines
1.2 KiB
PHP
44 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api;
|
|
|
|
use App\Helpers\Paginator;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\WarningNotice;
|
|
use Illuminate\Http\Request;
|
|
use App\Filters\WarningNoticeFilter;
|
|
use App\Http\Resources\WarningNoticeResource;
|
|
use DB;
|
|
|
|
class WarningNoticeController extends Controller
|
|
{
|
|
/**
|
|
* 获取警报数量
|
|
*/
|
|
public function warningLogNum(Request $request){
|
|
$list = WarningNotice::filter($request->input(), WarningNoticeFilter::class)
|
|
->select(DB::raw('lv, count(1) as num'))
|
|
->groupBy('lv')
|
|
->get()
|
|
->pluck('num', 'lv')->toArray();
|
|
for($i = 1; $i <= 4; $i++) {
|
|
$data[$i] = $list[$i] ?? 0;
|
|
}
|
|
return $this->json($data);
|
|
}
|
|
|
|
|
|
/**
|
|
* 获取警报记录
|
|
*
|
|
* @return void
|
|
*/
|
|
public function warningLog(Request $request)
|
|
{
|
|
$query = WarningNotice::with(['device.modes'])->filter($request->input(), WarningNoticeFilter::class)->orderBy('created_at', 'desc');
|
|
$list = $query->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50));
|
|
|
|
return $this->json(WarningNoticeResource::collection($list));
|
|
}
|
|
}
|