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');