all(), MonitorModeFilter::class)->get();//有推荐,排序字段,不过目前没开放; return $this->json(MonitorModeResource::collection($monitors)); } /** * 获取监控点位数据-可指定字段 */ public function getMonitorDeviceData(Request $request) { $monitorId = $request->input('monitor_id'); $column = $request->input('column'); //指定字段 //监控类型(气象,土壤为折线图数据;虫情数据待定;监控设备rtsp流;其他类型无数据) $data = []; $monitor = MonitorMode::find($monitorId); if($monitor){ switch($monitor->type){ case MonitorMode::TYPE_MONITOR://监控视频 $data = DeviceResource::collection($monitor->devices); break; case MonitorMode::TYPE_SOIL://土壤设备--只拿最近6小时数据 case MonitorMode::TYPE_METEOROLOGICAL://气象设备--只拿最近6小时数据 $startTime = now()->subHours(6)->format('Y-m-d H:i:s'); $endTime = now()->format('Y-m-d H:i:s'); $data = (new DeviceService())->getMonitorModeDeviceData($monitor, $startTime, $endTime); if($column){ $data = $data[$column] ?? []; } break; case MonitorMode::TYPE_INSECT://虫情设备-todo break; default: break; } } return $this->json($data); } }