cqpCow пре 2 година
родитељ
комит
b2567a5c82
2 измењених фајлова са 22 додато и 7 уклоњено
  1. 15 5
      app/Service/GatewayService.php
  2. 7 2
      app/Service/SystemlService.php

+ 15 - 5
app/Service/GatewayService.php

@@ -60,15 +60,28 @@ class GatewayService extends Service
     }
 
     public function equipmentList($data){
+        $gateway_map = SystemlService::getIsOnlineStatusGateWay();
+
         $model = Gateway::where('del_time',0)
             ->select('*');
 
         if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%');
         if(! empty($data['code'])) $model->where('code', 'LIKE', '%'.$data['code'].'%');
         if(! empty($data['ip'])) $model->where('ip', 'LIKE', '%'.$data['ip'].'%');
+        if(isset($data['is_online'])){
+            $search = [];
+            foreach ($gateway_map as $gateway => $value){
+                if($data['is_online'] && ! empty($value)){
+                    $search[] = $gateway;
+                }elseif(! $data['is_online'] && empty($value)){
+                    $search[] = $gateway;
+                }
+            }
+            $model->whereIn('id',$search);
+        }
 
         $list = $this->limit($model,'',$data);
-        $list = $this->fillData($list);
+        $list = $this->fillData($list,$gateway_map);
 
         return [true,$list];
     }
@@ -95,12 +108,9 @@ class GatewayService extends Service
         return [true,''];
     }
 
-    public function fillData($data){
+    public function fillData($data,$online){
         if(empty($data['data'])) return $data;
 
-        //获取仓是否在线离线状态
-        $online = SystemlService::getIsOnlineStatusGateWay(array_column($data['data'],'id'));
-
         foreach ($data['data'] as $key => $value){
             $tmp_online = $online[$value['id']] ?? 0;
             $data['data'][$key]['is_online'] = $tmp_online;

+ 7 - 2
app/Service/SystemlService.php

@@ -4,6 +4,7 @@ namespace App\Service;
 
 use App\Model\Device;
 use App\Model\DeviceType;
+use App\Model\Gateway;
 use App\Model\ScreenDevice;
 use App\Model\SystemL;
 
@@ -188,8 +189,12 @@ class SystemlService extends Service
         return $result;
     }
 
-    public static function getIsOnlineStatusGateWay($gateway){
-        if(empty($gateway)) return [];
+    public static function getIsOnlineStatusGateWay($gateway = []){
+        if(empty($gateway)) {
+            $gateway = Gateway::where('del_time',0)->select('id')->get()->toArray();
+            if(empty($gateway)) return [];
+            $gateway = array_column($gateway,'id');
+        }
 
         //网关是否在线
         $result = [];