equipmentRule($data,false); if(!$status) return [$status,$msg]; $model = Gateway::where('id',$data['id'])->first(); $model->code = $data['code'] ?? ''; $model->title = $data['title'] ?? ''; $model->remark = $data['remark'] ?? ''; $model->band = $data['band']; $model->protocol = $data['protocol'] ?? ''; $model->dns = $data['dns'] ?? ''; $model->ip = $data['ip'] ?? ''; $model->save(); return [true,'保存成功!']; } public function equipmentAdd($data){ list($status,$msg) = $this->equipmentRule($data); if(!$status) return [$status,$msg]; $model = new Gateway(); $model->code = $data['code'] ?? ''; $model->title = $data['title'] ?? ''; $model->remark = $data['remark'] ?? ''; $model->band = $data['band']; $model->protocol = $data['protocol'] ?? ''; $model->dns = $data['dns'] ?? ''; $model->ip = $data['ip'] ?? ''; $model->save(); return [true,'保存成功!']; } public function equipmentDel($data){ if($this->isEmpty($data,'id')) return [false,'ID必须!']; $bool = Device::where('del_time',0)->whereIn('gateway_id',$data['id'])->exists(); if($bool) return [false,'网关已经绑定设备']; $bool = ScreenGateway::where('del_time',0)->whereIn('gateway_id',$data['id'])->exists(); if($bool) return [false,'网关已经绑定仓']; Gateway::whereIn('id',$data['id'])->update([ 'del_time' => time() ]); return [true,'删除成功']; } 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,$gateway_map); return [true,$list]; } public function equipmentRule($data,$is_add = true){ if(empty($data['title'])) return [false,'网关编码不能为空']; if(empty($data['code'])) return [false,'网关编码不能为空']; if(! isset($data['band'])) return [false,'网络频带不能为空']; if(empty($data['protocol'])) return [false,'协议不能为空']; if($is_add){ $bool = Gateway::whereRaw("(binary code = '{$data['code']}' OR title = '{$data['title']}')") ->where('del_time',0) ->exists(); }else{ if($this->isEmpty($data,'id')) return [false,'id不能为空!']; $bool = Gateway::whereRaw("(binary code = '{$data['code']}' OR title = '{$data['title']}')") ->where('id','<>',$data['id']) ->where('del_time',0) ->exists(); } if($bool) return [false,'网关编码不能重复']; return [true,'']; } public function fillData($data,$online){ if(empty($data['data'])) return $data; foreach ($data['data'] as $key => $value){ $tmp_online = $online[$value['id']] ?? 0; $data['data'][$key]['is_online'] = $tmp_online; $data['data'][$key]['is_online_name'] = Gateway::$online[$tmp_online] ?? ''; } return $data; } }