request->get(); //获取栏舍信息 $data = FenceHouse::where('id',$params['fence_house_id'])->order('id desc')->findOrEmpty()->toArray(); if(empty($data)){ return $this->success('请求成功',[]); } $product = Product::where('fence_house_id', $data['id'])->findOrEmpty()->toArray(); if(empty($product)){ return $this->fail('栏舍暂未绑定设备',[]); } $deviceIds = ProductDevice::where('product_id', $product['id'])->column('device_id'); $device = Device::whereIn('id', $deviceIds)->where('type', 2)->findOrEmpty(); $data['video_url'] = $device['video_url']; $data['device_id'] = $device['id']; // 监控视频封面 $file = File::where('cid', $device['id'])->order('id', 'desc')->findOrEmpty(); $data['video_cover'] = isset($file['uri'])? env('project.project_url').'/'.$file['uri']: ''; // $data['monitor']['datas'] = RemoteRequestLogic::getMonitorData($deviceIds); $monitorThreshold = MonitorThreshold::where('fence_house_id', $params['fence_house_id'])->find(); $data['monitor']['threshold'] = $monitorThreshold; return $this->success('请求成功',$data); } //视频监控 public function video(): Json { $params = $this->request->get(['land_id']); if(empty($params['land_id'])){ return $this->fail('参数错误'); } //获取土地绑定的产品 $landProduct = LandProduct::where('land_id',$params['land_id'])->findOrEmpty(); if($landProduct->isEmpty()){ return $this->fail('当前土地未绑定设备产品'); } //获取监控设备 $productDevice = ProductDevice::where('product_id',$landProduct['product_id'])->where('device_type',3)->column('device_id'); if(empty($productDevice)){ return $this->fail('当前土地未绑定监控设备'); } //获取设备编号 $device = Device::where('id','in',$productDevice)->select(); return $this->success('请求成功',$device->toArray()); } // 获取短信验证码 public function code(): Json { //验证请求方式 if(!$this->request->isPost()){ return $this->fail('请求方式错误'); } //获取参数 $params = $this->request->post(['phone','scene']); if(empty($params['phone']) || empty($params['scene'])){ return $this->fail('缺少必要参数'); } if(!in_array($params['scene'],[NoticeEnum::LOGIN_CAPTCHA,NoticeEnum::BIND_MOBILE_CAPTCHA,NoticeEnum::CHANGE_MOBILE_CAPTCHA,NoticeEnum::FIND_LOGIN_PASSWORD_CAPTCHA])){ return $this->fail('短信场景错误'); } //发送短信 try { $result = event('Notice', [ 'scene_id' => $params['scene'], 'params' => [ 'mobile' => $params['phone'], 'code' => mt_rand(100000, 999999), ] ]); return $this->success($result[0]); }catch(\Exception $e){ //记录日志 Log::error($e->getMessage()); return $this->fail($e->getMessage()); } } public function suYuan(): Json { $params = $this->request->get(['animal_sn']); $pageNo = $this->request->get('page_no', 1); $pageSize = $this->request->get('page_size', 5); if(empty($params['animal_sn'])){ return $this->fail('参数错误'); } $animalInfo = AnimalInfo::where('sn',$params['animal_sn'])->findOrEmpty(); if($animalInfo->isEmpty()){ return $this->fail('档案信息错误'); } //获取suyaun $action = AnimalOperateAction::field('type,type_text,detail,create_time')->where('fence_house_id',$animalInfo['fence_house_id'])->whereOr('animal_info_id', $animalInfo['id']) ->page($pageNo, $pageSize) ->select()->each(function($item){ $item['detail'] = json_decode($item['detail'],true); return $item; })->toArray(); $data = [ 'lists' => $action, 'count' => AnimalOperateAction::where('fence_house_id',$animalInfo['fence_house_id'])->whereOr('animal_info_id', $animalInfo['id'])->count(), 'page_no' => $pageNo, 'page_size' => $pageSize, ]; return $this->success('请求成功', $data); } }