diff --git a/app/common/logic/RemoteRequestLogic.php b/app/common/logic/RemoteRequestLogic.php index e31a451..110ac19 100644 --- a/app/common/logic/RemoteRequestLogic.php +++ b/app/common/logic/RemoteRequestLogic.php @@ -98,8 +98,9 @@ class RemoteRequestLogic extends BaseLogic public static function getAlarmData($deviceList = []) { + $list = []; // 获取设备报警信息 - foreach ($deviceList as &$device) { + foreach ($deviceList as $device) { $device['alarm_value'] = ''; // 警告数据 $device['alarm_time'] = ''; // 警告时间 $device['alarm_resolution'] = ''; // 解决方案 @@ -109,15 +110,21 @@ class RemoteRequestLogic extends BaseLogic continue; } $temp = self::requestAlarmData($device); - if (empty($temp)) { + if (empty($temp['values'])) { + $list[] = $device; continue; } - $device['alarm_value'] = $temp[2]; - $device['alarm_time'] = date('Y-m-d H:i:s', time()); // todo 对接接口字段 - $device['alarm_reason'] = ''; // todo 对接接口字段 - $device['alarm_resolution'] = 'test'; // todo 对接接口字段 + + foreach ($temp['values'][4] as $key => $value) { + $device['alarm_value'] = $value; + $device['alarm_time'] = date('Y-m-d H:i:s', $temp['timestamps'][$key]/1000); + $device['alarm_reason'] = $temp['values'][0][$key]; // todo 对接接口字段 + $device['alarm_resolution'] = $temp['values'][2][$key]; // todo 对接接口字段 + $list[] = $device; + } + } - return $deviceList; + return $list; } public static function requestAlarmData($device = []) @@ -128,7 +135,7 @@ class RemoteRequestLogic extends BaseLogic ] ]); $monitor = json_decode($response->getContent(), true); - return $monitor['data']['values']; + return $monitor['data']; } public static function getAlarmCount($deviceList = []) @@ -167,45 +174,77 @@ class RemoteRequestLogic extends BaseLogic $datas = []; // 空气温度 ambient_temperature - $ambientTemperatureDevice = Device::whereIn('id', $deviceIds)->where('monitor_item', 'ambient_temperature')->find(); + $ambientTemperatureDevice = Device::whereIn('id', $deviceIds)->where('monitor_item', 'ambient_temperature,ambient_humidity')->find(); if (!empty($ambientTemperatureDevice)) { - $ambientTemperatureDevice['RangeMonitorData'] = self::requestRangeMonitorData($ambientTemperatureDevice); + $rangeData = self::requestRangeMonitorData($ambientTemperatureDevice); + if (!empty($rangeData)) { + $ambientTemperatureDevice['RangeMonitorData'] = $rangeData[4]; + } else { + $ambientTemperatureDevice['RangeMonitorData'] = []; + } } else { $ambientTemperatureDevice['RangeMonitorData'] = []; } // 空气湿度 ambient_humidity - $ambientHumidityDevice = Device::whereIn('id', $deviceIds)->where('monitor_item', 'ambient_humidity')->find(); + $ambientHumidityDevice = Device::whereIn('id', $deviceIds)->where('monitor_item', 'ambient_temperature,ambient_humidity')->find(); if (!empty($ambientHumidityDevice)) { - $ambientHumidityDevice['RangeMonitorData'] = self::requestRangeMonitorData($ambientHumidityDevice); + $rangeData = self::requestRangeMonitorData($ambientHumidityDevice); + if (!empty($rangeData)) { + $ambientHumidityDevice['RangeMonitorData'] = $rangeData[4]; + } else { + $ambientHumidityDevice['RangeMonitorData'] = []; + } } else { $ambientHumidityDevice['RangeMonitorData'] = []; } // 氮气 nitrogen $NDevice = Device::whereIn('id', $deviceIds)->where('monitor_item', 'nitrogen')->find(); if (!empty($NDevice)) { - $NDevice['RangeMonitorData'] = self::requestRangeMonitorData($NDevice); + $rangeData = self::requestRangeMonitorData($NDevice); + if (!empty($rangeData)) { + $NDevice['RangeMonitorData'] = $rangeData[4]; + } else { + $NDevice['RangeMonitorData'] = []; + } } else { $NDevice['RangeMonitorData'] = []; } // 防火 fireproof $fireproofDevice = Device::whereIn('id', $deviceIds)->where('monitor_item', 'fireproof')->find(); if (!empty($fireproofDevice)) { - $fireproofDevice['RangeMonitorData'] = self::requestRangeMonitorData($fireproofDevice); + $rangeData = self::requestRangeMonitorData($fireproofDevice); + if (!empty($rangeData)) { + $fireproofDevice['RangeMonitorData'] = $rangeData[4]; + } else { + $fireproofDevice['RangeMonitorData'] = []; + } } else { $fireproofDevice['RangeMonitorData'] = []; } + // 甲烷 methane $methaneDevice = Device::whereIn('id', $deviceIds)->where('monitor_item', 'methane')->find(); if (!empty($methaneDevice)) { - $methaneDevice['RangeMonitorData'] = self::requestRangeMonitorData($methaneDevice); + $rangeData = self::requestRangeMonitorData($methaneDevice); + if (!empty($rangeData)) { + $methaneDevice['RangeMonitorData'] = $rangeData[4]; + } else { + $methaneDevice['RangeMonitorData'] = []; + } } else { $methaneDevice['RangeMonitorData'] = []; } + // 噪音 noise $noiseDevice = Device::whereIn('id', $deviceIds)->where('monitor_item', 'noise')->find(); if (!empty($noiseDevice)) { - $noiseDevice['RangeMonitorData'] = self::requestRangeMonitorData($noiseDevice); + $rangeData = self::requestRangeMonitorData($noiseDevice); + if (!empty($rangeData)) { + $noiseDevice['RangeMonitorData'] = $rangeData[4]; + } else { + $noiseDevice['RangeMonitorData'] = []; + } } else { $noiseDevice['RangeMonitorData'] = []; }