sql_sort = 'ID desc'; $list->right_filter = function($right,$type){ $page = $_SERVER['PATH_INFO']; return \Jms\Ucenter\Right::defaultFilter($page,$right,$type); }; $list->sql_filter = function($search,&$cond){ $level = I('get.lv');//获取当前部门等级 $depart_id = I('get.id'); if($depart_id){ if($level == \Zndp\User\DepartEnum::PLANT_BASE){ //部门为基地 $cond['FarmId'] = $depart_id; }else{ //其他上级部门 //根据传进来的部门id获取其子部门下所有大棚 $farm_ids = \Zndp\User\Util::get_depart_farm($depart_id); $cond['FarmId'] = array('IN',$farm_ids); } }else{ // 账号登录 if($this->userinfo['OrganizationId']){ //非平台管理员,获取登录角色下所有基地内的大棚 $base_ids = \Zndp\User\Util::get_depart_farm($this->userinfo['OrganizationId']); $cond['FarmId'] = array('IN',$base_ids); } } //搜索条件 if($search['FarmlandName']){ //按大棚名称搜索 $cond['FarmlandName'] = array('LIKE',"%{$search['FarmlandName']}%"); } if($search['FarmlandNum']){ //按大棚编号搜索 $cond['FarmlandNum'] = array('LIKE',"%{$search['FarmlandNum']}%"); } }; $list->row_filter = function(&$row)use($list){ $row['BaseId'] = $row['FarmId'];//基地id,传过去用来获取该基地下设备进行绑定 $type_arr = array(1=>'大棚','大田'); $row['FarmlandType_text'] = $type_arr[$row['FarmlandType']]; $where = array('ID'=>$row['FarmId']); $row['FarmId_text'] = M('uc_organization')->where($where)->getField('DepartName'); //管理员可选择 $where = array('ID'=>$row['ManagerId']); $realname = M('uc_user')->where($where)->getField('RealName') ?:'点击设置'; $url = '?s=dpyh_farmland/sys_set_manager&id='.$row['ID'].'&base_id='.$row['FarmId']; $row['ManagerId_text'] = $list->renderPopup($realname,$url,'设置管理员',400,250,1); $row['Comment'] = $list->renderXEditableTextarea('备注',$row,'Comment'); //绑定设备 $where = array('FarmlandId'=>$row['ID']); $chgroup_info = MM('dpsb_chgroup')->field('DeviceId,ChGroup')->where($where)->find(); $row['DeviceId'] = $chgroup_info['DeviceId']; //传给统计数据图形页面 if($chgroup_info){ $where = array('ID'=>$chgroup_info['DeviceId']); $device_name = MM('dpsb_device')->where($where)->getField('WorkUnitName'); $row['BindDevice'] = $device_name . ' - 通道组'.$chgroup_info['ChGroup']; } }; $list->toolbar_filter = function(&$button){ if($button['icon'] == 'add'){ $button['url'] .= '&parent_id=' .I('get.id'); } }; $list->display($this); } function sys_addedit( ){ $form = new \Jms\Gui\ClForm(); $form->before_save = function(&$data){ $where = array('ID'=>$data['FarmId']); $level = M('uc_organization')->where($where)->getField('Level'); if( $level != \Zndp\User\DepartEnum::PLANT_BASE ){ //不是基地 json_fail('大棚上级部门应为基地'); } }; $form->after_modify = function($data){ //修改redis-dpyh_alarm_set中的FarmlandName和FarmId $redis = Redis('dpyh_alarm_set','hash'); $key = 'FarmlandId-' .$data['ID']; $val = array( "FarmlandName" => $data['FarmlandName'], "HighTempLimit" => $data['HighTempLimit'], "MaxTempExceed" => $data['MaxTempExceed'], "LowTempLimit" => $data['LowTempLimit'], "LowTempExceed" => $data['LowTempExceed'], "IsUseTempLimit" => $data['IsUseTempLimit'], "SmsInterval" => $data['SmsInterval'], "FarmId" => $data['FarmId'], ); $val = json_encode($val, JSON_UNESCAPED_UNICODE); $hash = array($key => $val); $redis->push($hash); }; $form->form_filter = function(&$form){ // 初始化部门下拉选项 $parent_id = I('get.parent_id'); if(!$parent_id){ $parent_id = $this->userinfo['OrganizationId']; } // 如果是基地点进来 $where = array('ID'=>$parent_id); $field = 'ID as id,DepartName as text,Level'; $base_info = M('uc_organization')->field($field)->where($where)->find(); if($base_info['Level'] == \Zndp\User\DepartEnum::PLANT_BASE ){ unset($base_info['Level']); $depart_list = array($base_info); }else{ $zndp_util = new \Zndp\User\Util(); $depart_list = $zndp_util->get_depart_option($parent_id); } $form['fields']['FarmId']['editor'] = array('options'=>$depart_list); }; $form->display($this); } public function sys_del( ){ $grid = new \Jiaruan\GridData(); $grid->before_delete = function($data){ //删除前对绑定的设备进行解绑 $where = array('FarmlandId'=>$data['ID']); $res = M('dpsb_chgroup')->where($where)->setField('FarmlandId',-1); if($res === false){ json_fail('设备解绑失败'); } }; $grid->deleteByPk($this); } function sys_nav_tree( ){ //获取导航树数据 $fields = 'ID as id,ParentID as pId,DepartName as name,Level as level'; $zndp_util = new \Zndp\User\Util(); $depart_id = $this->userinfo['OrganizationId']; $depart_list = $zndp_util->get_depart_option($depart_id,$fields,'name',false); if(empty($depart_list)){ //没有数据,显示该 $depart_list[0] = array('id'=>'','pid'=>'','name'=>'没有组织','direct_url'=>''); }else{ for($i=0; $iuserinfo['RoleId'], $admin_arr) ){ $all_list = array('id'=>'0','pId'=>'','name'=>'所有大棚','direct_url'=>'?s=dpyh_farmland/sys_list','open'=>true); array_unshift($depart_list,$all_list); } $this->assign('title','大棚管理'); $this->assign('tree_data',$depart_list); $this->display(); } function set_screen_msg_old( ){ $form = new \Jms\Gui\ClForm(); $shed = array('FirstCrop','SecondCrop','ThirdCrop','FourthCrop'); $form->before_display = function(&$data) use($shed){ // 查出绑定的通道组 $where = array('FarmlandId'=>$data['ID']); $chgroup_list = M('dpsb_chgroup')->field('DeviceId,ChGroup')->where($where)->select(); $device = M('dpsb_device'); foreach($chgroup_list as $key => $val){ //可能绑定有多个设备通道 $where = array( 'ID' => $val['DeviceId'], ); $screen_msg = $device->where($where)->getField($shed[$val['ChGroup']]); if( $screen_msg ){ //如果有绑定控制设备 $shed_data = json_decode($screen_msg, true); $data = array( 'num' => ($shed_data['num'.($val['ChGroup']+1)]), 'variety' => $shed_data['variety'.($val['ChGroup']+1)], 'farmer' => $shed_data['farmer'.($val['ChGroup']+1)], 'output' => $shed_data['output'.($val['ChGroup']+1)], 'unit' => $shed_data['unit'.($val['ChGroup']+1)] ); } } if(!$data['num']){ $data['num'] = $data['FarmlandNum']; } }; $form->before_modify = function(&$data) use($shed){ $farmland_id = I('get.id'); // 查出绑定的通道组 $where = array('FarmlandId'=>$farmland_id); $chgroup_list = M('dpsb_chgroup')->field('DeviceId,ChGroup')->where($where)->select(); $device = M('dpsb_device'); foreach($chgroup_list as $key => $val){ //可能绑定有多个设备通道 $where = array( 'ID' => $val['DeviceId'], ); $count = $device->where($where)->count(); if( $count > 0 ){ //如果有绑定控制设备 $shed_data = array( 'num'.($val['ChGroup']+1) => $data['num'], 'variety'.($val['ChGroup']+1) =>$data['variety'], 'farmer'.($val['ChGroup']+1) =>$data['farmer'], 'output'.($val['ChGroup']+1) =>$data['output'], 'unit'.($val['ChGroup']+1) =>$data['unit'] ); $shed_data = json_encode($shed_data, JSON_UNESCAPED_UNICODE); $result = $device->where($where)->setField( $shed[$val['ChGroup']] , $shed_data); if($result){ json_success('设置成功'); } } } json_fail('没有更改或没有绑定设备'); }; $form->display($this); } function dzp_nav_tree( ){ //获取导航树数据 $fields = 'ID as id,ParentID as pId,DepartName as name,Level as level'; $zndp_util = new \Zndp\User\Util(); $depart_id = $this->userinfo['OrganizationId']; $depart_list = $zndp_util->get_depart_option($depart_id,$fields,'name',false); if(empty($depart_list)){ //没有数据,显示该 $depart_list[0] = array('id'=>'','pid'=>'','name'=>'没有组织','direct_url'=>''); }else{ for($i=0; $iuserinfo['RoleId'], $admin_arr) ){ $all_list = array('id'=>'0','pId'=>'','name'=>'所有大棚','direct_url'=>'?s=dpyh_farmland/sys_list_dzp','open'=>true); array_unshift($depart_list,$all_list); } $this->assign('title','大棚管理'); $this->assign('tree_data',$depart_list); $this->display(); } function sys_list_dzp( ){ $list = new \Jms\Gui\ClGrid(); $list->sql_filter = function($search,&$cond){ $level = I('get.lv');//获取当前部门等级 $depart_id = I('get.id'); if($depart_id){ if($level == \Zndp\User\DepartEnum::PLANT_BASE){ //部门为基地 $cond['FarmId'] = $depart_id; }else{ //其他上级部门 //根据传进来的部门id获取其子部门下所有大棚 $farm_ids = \Zndp\User\Util::get_depart_farm($depart_id); $cond['FarmId'] = array('IN',$farm_ids); } }else{ // 账号登录 if($this->userinfo['OrganizationId']){ //非平台管理员,获取登录角色下所有基地内的大棚 $base_ids = \Zndp\User\Util::get_depart_farm($this->userinfo['OrganizationId']); $cond['FarmId'] = array('IN',$base_ids); } } }; $list->row_filter = function(&$row){ $farm_id = I('get.id'); $row['BaseId'] = $farm_id;//基地id,传过去用来获取该基地下设备进行绑定 $type_arr = array(1=>'大棚','大田'); $row['FarmlandType_text'] = $type_arr[$row['FarmlandType']]; $where = array('ID'=>$row['FarmId']); $row['FarmId_text'] = M('uc_organization')->where($where)->getField('DepartName'); }; $list->display($this); } function sys_list_search( ){ } function sys_set_manager( ){ $form = new \Jms\Gui\ClForm(); $form->form_filter = function(&$form){ $base_id = I('get.base_id'); $manager_list = get_depart_manager($base_id); $form['fields']['ManagerId']['editor'] = array('options'=>$manager_list); }; $form->before_save = function(&$data){ }; $form->display($this); } function sys_remote_list( ){ $list = new \Jms\Gui\ClGrid(); $list->sql_sort = 'ID desc'; $list->right_filter = function($right,$type){ $page = $_SERVER['PATH_INFO']; return \Jms\Ucenter\Right::defaultFilter($page,$right,$type); }; $list->sql_filter = function($search,&$cond){ $level = I('get.lv');//获取当前部门等级 $depart_id = I('get.id'); if($depart_id){ if($level == \Zndp\User\DepartEnum::PLANT_BASE){ //部门为基地 $cond['FarmId'] = $depart_id; }else{ //其他上级部门 //根据传进来的部门id获取其子部门下所有大棚 $farm_ids = \Zndp\User\Util::get_depart_farm($depart_id); $cond['FarmId'] = array('IN',$farm_ids); } }else{ // 账号登录 if($this->userinfo['OrganizationId']){ //非平台管理员,获取登录角色下所有基地内的大棚 $base_ids = \Zndp\User\Util::get_depart_farm($this->userinfo['OrganizationId']); $cond['FarmId'] = array('IN',$base_ids); } } /* if($this->userinfo['OrganizationId']){ //显示登录用户部门下所有大棚 $depart_ids = \Zndp\User\Util::get_depart_farm($this->userinfo['OrganizationId']); $cond['FarmId'] = array('IN',$depart_ids); }*/ //搜索条件 if($search['FarmlandName']){ //按大棚名称搜索 $cond['FarmlandName'] = array('LIKE',"%{$search['FarmlandName']}%"); } if($search['FarmlandNum']){ //按大棚编号搜索 $cond['FarmlandNum'] = array('LIKE',"%{$search['FarmlandNum']}%"); } }; $list->row_filter = function(&$row)use($list){ //获取大棚绑定的设备通道组 $where = array('FarmlandId' => $row['ID']); $chgroup_info = M('dpsb_chgroup')->field('DeviceId,ChGroup')->where($where)->find(); $where = array('ID'=>$chgroup_info['DeviceId']); $device_addr = M('dpsb_device')->where($where)->getField('DeviceAddr'); //根据通道组查出通道值 $where = array('DeviceId'=>$chgroup_info['DeviceId'],'ChGroup'=>$chgroup_info['ChGroup']); $channel_list = M('dpsb_channel')->field('ID,ChValue,ChType,ChNumber,GatherTime')->where($where)->order('GatherTime desc')->select(); //查出设备最新更新时间 $row['GatherTime'] = $channel_list[0]['GatherTime']; foreach($channel_list as $k => $ch){ if( $ch['ChType'] == \Zndp\Device\ChannelType::TEMPERATURE ){ //温度 $row['wd'] = $ch['ChValue']; }elseif( $ch['ChType'] == \Zndp\Device\ChannelType::HUMIDITY ){ //湿度 $row['sd'] = $ch['ChValue']; }elseif( $ch['ChType'] == \Zndp\Device\ChannelType::ILLINATIONUM ){ //光照 $row['gz'] = $ch['ChValue']; }elseif( $ch['ChType'] == \Zndp\Device\ChannelType::FILM_CONTROL ){ //卷膜机 $jmz_arr = array(1,6,11,16); $jmy_arr = array(5,10,15,20); if( in_array($ch['ChNumber'],$jmz_arr) ){ $open = $list->renderPopup('打开',"?s=dpyh_farmland/control_device&farmland_id={$row['ID']}&addr={$device_addr}&ch_number={$ch['ChNumber']}&state=1",'打开卷膜机',400,200); $stop = $list->renderPopup('停止',"?s=dpyh_farmland/control_device&farmland_id={$row['ID']}&addr={$device_addr}&ch_number={$ch['ChNumber']}&state=0",'停止卷膜机',400,200); $close = $list->renderPopup('关闭',"?s=dpyh_farmland/control_device&farmland_id={$row['ID']}&addr={$device_addr}&ch_number={$ch['ChNumber']}&state=2",'关闭卷膜机',400,200); $row['jmz'] = $open .' '. $stop .' '.$close; } if( in_array($ch['ChNumber'],$jmy_arr) ){ $open = $list->renderPopup('打开',"?s=dpyh_farmland/control_device&farmland_id={$row['ID']}&addr={$device_addr}&ch_number={$ch['ChNumber']}&state=1",'打开卷膜机',400,200); $stop = $list->renderPopup('停止',"?s=dpyh_farmland/control_device&farmland_id={$row['ID']}&addr={$device_addr}&ch_number={$ch['ChNumber']}&state=0",'停止卷膜机',400,200); $close = $list->renderPopup('关闭',"?s=dpyh_farmland/control_device&farmland_id={$row['ID']}&addr={$device_addr}&ch_number={$ch['ChNumber']}&state=2",'关闭卷膜机',400,200); $row['jmy'] = $open .' '. $stop .' '.$close; } }else{ } } }; $list->display($this); } public function control_device( ){ $addr = I('addr'); $ch_number = I('ch_number'); $state = I('state'); $host = '127.0.0.1'; $port = 10240; $socket = new Jms\Network\TcpClient($host,$port); $cmd = array( "method" => "apiSendControl", "Addr" => $addr, //设备addr "channelNumber" => $ch_number, //通道编号 "status" => $state, ); $res = $socket->send(json_encode($cmd)); PB('ui_control_result',$cmd,$res); if($res['success']){ exit('下发成功'); }else{ exit($res['message']); } } function sys_msg_set( ){ $form = new \Jms\Gui\ClForm(); $form->before_save = function(&$data){ // 温度不能是空字符串 if($data['HighTempLimit'] === '' || $data['LowTempLimit'] === ''){ json_fail('温度不能为空'); } // 温度必须是数字或数字字符串 if( !is_numeric($data['HighTempLimit']) || !is_numeric($data['LowTempLimit']) ){ json_fail('温度必须是数字'); } }; $form->after_save = function(&$data){ // 添加大棚报警设置信息到Redis $redis_alarm_ser = Redis("dpyh_alarm_set","hash"); $key = 'FarmlandId-'.$data['ID'];//大棚ID作为key $alarm_data = array( 'FarmlandName' => $data['FarmlandName'], 'HighTempLimit' => $data['HighTempLimit'], 'MaxTempExceed' => $data['MaxTempExceed'], 'LowTempLimit' => $data['LowTempLimit'], 'LowTempExceed' => $data['LowTempExceed'], 'IsUseTempLimit' => $data['IsUseTempLimit'], 'SmsInterval' => $data['SmsInterval'], 'FarmId' => $data['FarmId'] ); $val = json_encode($alarm_data,JSON_UNESCAPED_UNICODE); $hash = array($key => $val ); $result = $redis_alarm_ser->add($hash); if(!$result){ json_fail('Redis缓存设置失败'); } }; $form->display($this); } function sys_remote_tree( ){ //获取导航树数据 $fields = 'ID as id,ParentID as pId,DepartName as name,Level as level'; $zndp_util = new \Zndp\User\Util(); $depart_id = $this->userinfo['OrganizationId']; $depart_list = $zndp_util->get_depart_option($depart_id,$fields,'name',false); if(empty($depart_list)){ //没有数据,显示该 $depart_list[0] = array('id'=>'','pid'=>'','name'=>'没有组织','direct_url'=>''); }else{ for($i=0; $iuserinfo['RoleId'], $admin_arr) ){ $all_list = array('id'=>'0','pId'=>'','name'=>'所有大棚','direct_url'=>'?s=dpyh_farmland/sys_remote_list','open'=>true); array_unshift($depart_list,$all_list); } $this->assign('title','大棚管理'); $this->assign('tree_data',$depart_list); $this->display(); } function set_screen_msg( ){ $form = new \Jms\Gui\ClForm(); $shed = array('FirstCrop','SecondCrop','ThirdCrop','FourthCrop'); $form->before_display = function(&$data) use($shed){ // 查出绑定的通道组 $where = array('FarmlandId'=>$data['ID']); $chgroup_list = M('dpsb_chgroup')->field('DeviceId,ChGroup')->where($where)->select(); $device = M('dpsb_device'); foreach($chgroup_list as $key => $val){ //可能绑定有多个设备通道 $where = array( 'ID' => $val['DeviceId'], ); $data['content'] = $device->where($where)->getField($shed[$val['ChGroup']]); } }; $form->before_modify = function(&$data) use($shed){ $farmland_id = I('get.id'); // 查出绑定的通道组 $where = array('FarmlandId'=>$farmland_id); $chgroup_list = M('dpsb_chgroup')->field('DeviceId,ChGroup')->where($where)->select(); $device = M('dpsb_device'); foreach($chgroup_list as $key => $val){ //可能绑定有多个设备通道 $where = array( 'ID' => $val['DeviceId'], ); $count = $device->where($where)->count(); if( $count > 0 ){ //如果有绑定控制设备 $shed_data = $data['content']; $result = $device->where($where)->setField( $shed[$val['ChGroup']] , $shed_data); if($result){ // 设置成功了,重启软件 $addr = $device->where($where)->getField('DeviceAddr'); $host = '127.0.0.1'; $port = 10240; $socket = new Jms\Network\TcpClient($host,$port); $cmd = array( "method" => "apiReboot", "Addr"=>$addr, ); $res = $socket->send(json_encode($cmd)); if($res['success']){ json_success('设置成功,设备App自动重启中'); }else{ json_fail('设置成功,设备App自动重启失败,原因:' .$res['message']); } } } } json_fail('没有更改或没有绑定设备'); }; $form->display($this); } function sys_batch_add( ){ $form = new \Jms\Gui\ClForm(); $form->before_add = function(&$data){ $where = array('ID'=>$data['FarmId']); $farm_info = M('uc_organization')->field('Level,DepartName')->where($where)->find(); if( $farm_info['Level'] != \Zndp\User\DepartEnum::PLANT_BASE ){ //不是基地 json_fail('大棚上级部门应为基地'); } //批量添加 if( $data['batch_add'] == 1 ){ //检查起始,结束编号 if( $data['start_num'] === '' || $data['end_num'] === '' ){ json_fail('批量添加必须填写起始和结束编号'); } //编号要是数字 if( !is_numeric($data['start_num']) || !is_numeric($data['end_num']) ){ json_fail('起始和结束编号必须是数字'); } //起始编号不能比结束大 if( $data['start_num'] - $data['end_num'] > 0 ){ json_fail('起始编号不能比结束编号大'); } $dpyh_farmland = M('dpyh_farmland'); $total = 0; $success = 0; $fail = 0; while( $data['start_num'] <= $data['end_num'] ){ $add_data = $data; $add_data['ID'] = create_guid(); $add_data['FarmlandNum'] = str_pad($data['start_num'],2,'0',STR_PAD_LEFT ); $add_data['FarmlandName']= $farm_info['DepartName'] . $add_data['FarmlandNum'] .'号大棚'; //添加 $result = $dpyh_farmland->createAdd($add_data); if($result){ $success++; }else{ $fail++; } $total++; $data['start_num']++; } $msg = '总共添加:'.$total.'个,成功:'.$success.',失败:'.$fail; json_success( $msg ); } // 单个添加编号和名称不能为空 if( $data['FarmlandNum'] === '' || $data['FarmlandName'] === '' ){ json_fail('单个添加必须填写:编号和名称'); } }; $form->form_filter = function(&$form){ // 初始化部门下拉选项 $parent_id = I('get.parent_id'); if(!$parent_id){ $parent_id = $this->userinfo['OrganizationId']; } // 如果是基地点进来 $where = array('ID'=>$parent_id); $field = 'ID as id,DepartName as text,Level'; $base_info = M('uc_organization')->field($field)->where($where)->find(); if($base_info['Level'] == \Zndp\User\DepartEnum::PLANT_BASE ){ //基地 unset($base_info['Level']); $depart_list = array($base_info); }else{ $zndp_util = new \Zndp\User\Util(); $depart_list = $zndp_util->get_depart_option($parent_id); } $form['fields']['FarmId']['editor'] = array('options'=>$depart_list); }; //字段联动 $form->onchange_filter = function($field,$data){ $result = array(); if($field == 'FarmId'){ if($data[$field]){ // 根据选择的基地显示管理员 $cond = array('ID'=>$data[$field]); $level = M('uc_organization')->where($cond)->getField('Level'); if( $level == \Zndp\User\DepartEnum::PLANT_BASE ){ //基地才显示 $where = array('OrganizationId' => $data[$field], 'RoleId' => \Zndp\User\RoleEnum::BASE_ADMINISTRATOR );//只显示基地管理员 $fields = 'ID as id,RealName as text'; $result['ManagerId'] = M('uc_user')->field($fields)->where($where)->select(); }else{ $result['ManagerId'] = array(); } } } return $result; }; $form->display($this); } function set_screen_msg_test( ){ $form = new \Jms\Gui\ClForm(); $shed = array('FirstCrop','SecondCrop','ThirdCrop','FourthCrop'); $form->before_display = function(&$data) use($shed){ // 查出绑定的通道组 $where = array('FarmlandId'=>$data['ID']); $chgroup_list = M('dpsb_chgroup')->field('DeviceId,ChGroup')->where($where)->select(); $device = M('dpsb_device'); foreach($chgroup_list as $key => $val){ //可能绑定有多个设备通道 $where = array( 'ID' => $val['DeviceId'], ); $data['content'] = $device->where($where)->getField($shed[$val['ChGroup']]); } }; $form->before_modify = function(&$data) use($shed){ $farmland_id = I('get.id'); // 查出绑定的通道组 $where = array('FarmlandId'=>$farmland_id); $chgroup_list = M('dpsb_chgroup')->field('DeviceId,ChGroup')->where($where)->select(); $device = M('dpsb_device'); foreach($chgroup_list as $key => $val){ //可能绑定有多个设备通道 $where = array( 'ID' => $val['DeviceId'], ); $count = $device->where($where)->count(); if( $count > 0 ){ //如果有绑定控制设备 $shed_data = $data['content']; $result = $device->where($where)->setField( $shed[$val['ChGroup']] , $shed_data); if($result){ // 设置成功了,重启软件 $addr = $device->where($where)->getField('DeviceAddr'); $host = '127.0.0.1'; $port = 10240; $socket = new Jms\Network\TcpClient($host,$port); $cmd = array( "method" => "apiReboot", "Addr"=>$addr, ); $res = $socket->send(json_encode($cmd)); if($res['success']){ json_success('设置成功,设备App自动重启中'); }else{ json_fail('设置成功,设备App自动重启失败,原因:' .$res['message']); } } } } json_fail('没有更改或没有绑定设备'); }; $form->display($this); } }