按用户角色获取基地

dev
Jing Li 2023-10-22 15:27:02 +08:00
parent a81c6e0e64
commit 91962e4b52
1 changed files with 9 additions and 9 deletions

View File

@ -125,17 +125,17 @@ class AgriculturalBaseController extends Controller
*/ */
public function deviceBase(Request $request) public function deviceBase(Request $request)
{ {
$deviceType = $request->input('device_type', DeviceType::Monitor); /** @var \App\Models\AdminUser */
// $status = $request->input('status'); $user = $request->user();
$deviceType = $request->input('device_type', DeviceType::Monitor->value);
$isRecommend = $request->input('is_recommended', 0) ?? 0; $isRecommend = $request->input('is_recommended', 0) ?? 0;
$list = AgriculturalBase::filter($request->all())->whereHas('devices', function ($q) use ($deviceType, $isRecommend) { $list = AgriculturalBase::filter($request->all())->whereHas('devices', function ($q) use ($deviceType, $isRecommend) {
if($deviceType == DeviceType::Monitor || $deviceType == 1){ $q->when($deviceType == DeviceType::Monitor->value, function ($q) use ($isRecommend) {
if($isRecommend){ $q->when($isRecommend, fn ($q) => $q->where('is_recommend', 1))->where('status', 1);
$q->where('is_recommend', 1); })->where('type', $deviceType);
} })->when(! $user->isAdministrator(), function ($q) use ($user) {
$q->where('status', 1); $q->whereRaw("id in (select base_id from admin_user_bases where user_id = {$user->id})");
}
return $q->where('type', $deviceType);
})->sort()->get(); })->sort()->get();
return $this->json(AgriculturalBaseResource::collection($list)); return $this->json(AgriculturalBaseResource::collection($list));