$camera_id, 'space_index' => $index, 'space_id' => $item['space_id'], 'control_lights_ip' => $item['control_lights_ip'] ?? '', 'light_index' => $item['light_index'] ?? 0 ]; $index += 1; } return self::insert($createData); } public static function getData($camera_id, $is_space = 0): array { $data = self::query()->where('camera_id', $camera_id)->orderBy( 'space_index' )->select()->get()->toArray(); if ($is_space) { foreach ($data as &$item) { $item['space_number'] = ''; $item['space_attr_id'] = ''; $space = ParkingSpace::query()->find( $item['space_id'], ['number', 'space_attr_id'] ); if ($space) { $item['space_number'] = $space['number']; $item['space_attr_id'] = $space['space_attr_id']; } unset($item['space_id'], $item['id'], $item['camera_id']); } } return $data; } public static function getCameraIds($parking_space_number): Collection|array { $space_ids = ParkingSpace::getId($parking_space_number); if ($space_ids) { return self::query()->whereIn('space_id', $space_ids)->pluck( 'camera_id' ); } return []; } public static function getParkingSpaceNumber( $camera_id, $is_implode = 1 ): string|array { $space_ids = self::query()->where('camera_id', $camera_id)->pluck( 'space_id' ); $space_number_arr = []; foreach ($space_ids as $space_id) { $number = ParkingSpace::getNumber($space_id); if ($number) { $space_number_arr[] = $number; } } if ($is_implode) { return $space_number_arr ? implode(',', $space_number_arr) : ''; } else { return $space_number_arr; } } public static function getSpaceCount($camera_id): int { return self::query()->where('camera_id', $camera_id)->count(); } // 获取相机IP地址 public static function getCameraIp($space_id) { $res = self::query()->where('space_id', $space_id)->first(); if ($res) { return ParkingCamera::query()->where('id', $res['camera_id']) ->value('camera_ip'); } return ''; } // 判断设备是否在线 public static function isOnlineCamera($camera_ip) { return ParkingCamera::query()->where('camera_ip', $camera_ip) ->where('status', 1)->exists(); } }