调整监控数据接口
parent
8ba5c0e822
commit
45d9aa724d
|
|
@ -6,6 +6,7 @@ use App\Filters\MonitorModeFilter;
|
|||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Resources\DeviceResource;
|
||||
use App\Http\Resources\MonitorModeResource;
|
||||
use App\Models\MeteorologicalDailyReport;
|
||||
use App\Models\MonitorMode;
|
||||
use App\Services\Admin\DeviceService;
|
||||
use Illuminate\Http\Request;
|
||||
|
|
@ -37,7 +38,6 @@ class MonitorModeController extends Controller
|
|||
$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);
|
||||
|
|
@ -45,6 +45,25 @@ class MonitorModeController extends Controller
|
|||
$data = $data[$column] ?? [];
|
||||
}
|
||||
break;
|
||||
case MonitorMode::TYPE_METEOROLOGICAL://气象设备--只拿最新的一个值
|
||||
$fieldNameMap = MonitorMode::fieldMap(MonitorMode::TYPE_METEOROLOGICAL);
|
||||
$fieldUnitMap = MonitorMode::fieldUnitMap(MonitorMode::TYPE_METEOROLOGICAL);
|
||||
foreach($monitor->devices as $device){
|
||||
$_fields = explode(',', $device->pivot->fields);
|
||||
$reportData = MeteorologicalDailyReport::where('device_id', $device->id)->orderBy('reported_at', 'desc')->first()?->toArray() ?? [];
|
||||
foreach($_fields as $field){
|
||||
$data[$field] = [
|
||||
'name' => $fieldNameMap[$field],
|
||||
'unit' => $fieldUnitMap[$field],
|
||||
'value' => $reportData[$field] ?? 0,
|
||||
];
|
||||
if($field == 'wind_direction'){//单独处理风向
|
||||
$formatData = ['北风','东北风','东风','东南风','南风','西南风','西风','西北风'];
|
||||
$data[$field]['value'] = $formatData[$reportData[$field]]??'未知';
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case MonitorMode::TYPE_INSECT://虫情设备-todo
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
Loading…
Reference in New Issue