From b7ab24d0dc79e9e023d18098f342b2c58a4f8e62 Mon Sep 17 00:00:00 2001 From: vine_liutk <961510893@qq.com> Date: Wed, 9 Nov 2022 16:16:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AE=BE=E5=A4=87=E9=A2=84?= =?UTF-8?q?=E8=AD=A6=E6=95=B0=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/DeviceWarningController.php | 16 ++++++++++++++++ app/ModelFilters/DeviceWarningFilter.php | 4 ++++ app/Models/DeviceWarning.php | 4 ++++ routes/api.php | 1 + 4 files changed, 25 insertions(+) diff --git a/app/Http/Controllers/DeviceWarningController.php b/app/Http/Controllers/DeviceWarningController.php index 60ee369..4761cab 100644 --- a/app/Http/Controllers/DeviceWarningController.php +++ b/app/Http/Controllers/DeviceWarningController.php @@ -7,6 +7,7 @@ use App\Http\Resources\DeviceWarningResource; use App\Models\DeviceWarning; use Illuminate\Http\Request; use Peidikeji\Setting\Models\Setting; +use Illuminate\Support\Facades\DB; class DeviceWarningController extends Controller { @@ -66,4 +67,19 @@ class DeviceWarningController extends Controller return $this->json(DeviceWarningResource::collection($list)); } + + /** + * 获取预警数量 + */ + public function warningLogNum(Request $request){ + $list = DeviceWarning::filter($request->input()) + ->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); + } } diff --git a/app/ModelFilters/DeviceWarningFilter.php b/app/ModelFilters/DeviceWarningFilter.php index db35fa1..836a56d 100644 --- a/app/ModelFilters/DeviceWarningFilter.php +++ b/app/ModelFilters/DeviceWarningFilter.php @@ -11,6 +11,10 @@ class DeviceWarningFilter extends ModelFilter return $this->where('base_id', $base); } + public function device($device){ + return $this->where('device_id', $device); + } + public function status($status) { return $this->where('status', $status); diff --git a/app/Models/DeviceWarning.php b/app/Models/DeviceWarning.php index ea7306d..e455f6d 100644 --- a/app/Models/DeviceWarning.php +++ b/app/Models/DeviceWarning.php @@ -14,4 +14,8 @@ class DeviceWarning extends Model 'device_id', 'base_id', 'lv', 'content', 'status', 'remarks', 'linkos_device_id', 'linkos_reported_at', ]; + + public function base(){ + return $this->belongsTo(AgriculturalBase::class, 'base_id'); + } } diff --git a/routes/api.php b/routes/api.php index 3afcb82..dba16b1 100644 --- a/routes/api.php +++ b/routes/api.php @@ -52,6 +52,7 @@ Route::group(['middleware' => 'auth:sanctum'], function () { Route::get('device-warning-rules', [DeviceWarningController::class, 'rules']); //预警规则 Route::put('device-warning-rules', [DeviceWarningController::class, 'updateRule']); //预警规则 Route::get('device-warning-logs', [DeviceWarningController::class, 'warningLog']); + Route::get('device-warning-nums', [DeviceWarningController::class, 'warningLogNum']); //友情链接 Route::apiResource('friend-links', FriendLinkController::class)->only(['index'])->names('friend_links');