From 91962e4b529b82b51645996539e5bb742c888e63 Mon Sep 17 00:00:00 2001 From: Jing Li Date: Sun, 22 Oct 2023 15:27:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=89=E7=94=A8=E6=88=B7=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=9F=BA=E5=9C=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/AgriculturalBaseController.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/AgriculturalBaseController.php b/app/Http/Controllers/AgriculturalBaseController.php index b3a1d20..c03c645 100644 --- a/app/Http/Controllers/AgriculturalBaseController.php +++ b/app/Http/Controllers/AgriculturalBaseController.php @@ -125,17 +125,17 @@ class AgriculturalBaseController extends Controller */ public function deviceBase(Request $request) { - $deviceType = $request->input('device_type', DeviceType::Monitor); - // $status = $request->input('status'); + /** @var \App\Models\AdminUser */ + $user = $request->user(); + $deviceType = $request->input('device_type', DeviceType::Monitor->value); $isRecommend = $request->input('is_recommended', 0) ?? 0; + $list = AgriculturalBase::filter($request->all())->whereHas('devices', function ($q) use ($deviceType, $isRecommend) { - if($deviceType == DeviceType::Monitor || $deviceType == 1){ - if($isRecommend){ - $q->where('is_recommend', 1); - } - $q->where('status', 1); - } - return $q->where('type', $deviceType); + $q->when($deviceType == DeviceType::Monitor->value, function ($q) use ($isRecommend) { + $q->when($isRecommend, fn ($q) => $q->where('is_recommend', 1))->where('status', 1); + })->where('type', $deviceType); + })->when(! $user->isAdministrator(), function ($q) use ($user) { + $q->whereRaw("id in (select base_id from admin_user_bases where user_id = {$user->id})"); })->sort()->get(); return $this->json(AgriculturalBaseResource::collection($list));