getLoginUserInfoByToken($token); $project_id = $basic_info['project_id']; $sql = prepare("select aerator.id,terminal.name as terminal_name,terminal.address,aerator.device_name,aerator.name,if(aerator.status=1,'开启','关闭') as status,aerator.count,aerator.created_at from aerator left join terminal on terminal.id = aerator.terminal_id where aerator.project_id = ?i",array($project_id)); $data= get_data($sql); for ($i=0; $i < count($data); $i++) { $data[$i]['title']['text'] = $data[$i]['name']; $data[$i]['title']['color'] = '#000'; $data[$i]['title']['size'] = 30; $data[$i]['tag']['text'] = $data[$i]['status']."(".$data[$i]['count'].")"; $data[$i]['tag']['color'] = "#ed3f14"; $data[$i]['tag']['size'] = 26; } return self::send_result($data); } // 获取选中曝气机基本信息 public function getSelectAeratorTerminalInfo() { $aerator_id = $_GET['aerator_id']; $data = $this -> getAeratorBasicInfoById($aerator_id); return self::send_result($data); } // 获取选中曝气机的基本信息 public function getSingleAeratorInfo() { $aerator_id = $_GET['aerator_id']; $aerator_array = $this -> getAeratorBasicInfoById($aerator_id); return self::send_result($aerator_array); } // 获取token值 public function getAeratorToken($aerator_id) { $data = $this -> getAeratorBasicInfoById($aerator_id); // 判断如果token为空 或者是 时间超过了1小时 重新生成token $duration = floor((time() - strtotime($data['created_at']))/10); $current_time = date("Y-m-d H:i:s",time()); if(!isset($data['token']) or $data['token'] == '' or $duration > 10){ $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => $data['link'], CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => 'username='.$data['account'].'&pwd='.$data['password'], CURLOPT_HTTPHEADER => array( 'Content-Type: application/x-www-form-urlencoded', 'Cookie: PHPSESSID=f53kjsucrafml6n92tolgum1o2' ), )); $response = curl_exec($curl); curl_close($curl); // $token = json_decode($response)->token; $token = substr($response,21,32); $sql_update = prepare("update aerator set token=?s,created_at=?s where id=?i",array($token,$current_time,$data['id'])); run_sql($sql_update); return $token; }else{ return $data['token']; } } // 获取曝气机属性 public function getAeratorAttribute($aerator_id) { // 先更新token $this -> getAeratorToken($aerator_id); $data = $this -> getAeratorBasicInfoById($aerator_id); $current_time = date("Y-m-d H:i:s",time()); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'hk.tchjjc.com/api/thing/properties', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => 'token='.$data['token'].'&pk='.$data['pk'].'&deviceName='.$data['device_name'], CURLOPT_HTTPHEADER => array( 'Content-Type: application/x-www-form-urlencoded', 'Cookie: PHPSESSID=f53kjsucrafml6n92tolgum1o2' ), )); $response = curl_exec($curl); curl_close($curl); $data = json_decode($response)->data; $csq_value = $data[0]->value; $wkmd_balue = $data[1]->value; $imei_balue = $data[2]->value; $imsi_balue = $data[5]->value; $lcen_balue = $data[6]->value; $rly1_balue = $data[7]->value; $pwrs_balue = $data[8]->value; $hold_balue = $data[9]->value; $iccid_balue = $data[10]->value; $sql_update = prepare("update aerator set imei=?s,imsi=?s,iccid=?s,csq=?s,status=?i where id = ?i",array($imei_balue,$imsi_balue,$iccid_balue,$csq_value,$rly1_balue,$aerator_id)); run_sql($sql_update); } // 获取设备的属性面板 public function getAeratorAttributePanel() { // 获取token值 $token = $this->getAeratorToken(); // 默认曝气机参数 $pk = 'a1uZDeulr2x'; $deviceName = 'H4GSAL0132202256465'; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'hk.tchjjc.com/api/thing/tsl', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => 'token=FC33DA76E6179976298FDF91491295DC&pk=a1uZDeulr2x&deviceName=H4GSAL0132202256465', CURLOPT_HTTPHEADER => array( 'Content-Type: application/x-www-form-urlencoded', 'Cookie: PHPSESSID=f53kjsucrafml6n92tolgum1o2' ), )); $response = curl_exec($curl); curl_close($curl); echo $response; } // 控制开关 public function getAeratorRlyOn(){ $aerator_id = $_GET['aerator_id']; // 推送最新得设备属性 $this->getAeratorAttribute($aerator_id); $data = $this->getAeratorBasicInfoById($aerator_id); if($data['status'] == 0){ $value = 1; }else{ $value = 0; } $identifier = 'rly1'; $new_count = $data['count'] + 1; $current_time = date("Y-m-d H:i:s",time()); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'hk.tchjjc.com/api/thing/properties/set', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => 'token='.$data['token'].'&pk='.$data['pk'].'&deviceName='.$data['device_name'].'&identifier='.$identifier.'&value='.$value, CURLOPT_HTTPHEADER => array( 'Content-Type: application/x-www-form-urlencoded', 'Cookie: PHPSESSID=f53kjsucrafml6n92tolgum1o2' ), )); $response = curl_exec($curl); curl_close($curl); echo $response; // 更新当前设备状态 $sql_update = prepare("update aerator set status=?i,count=?i,created_at=?s where id = ?i",array($value,$new_count,$current_time,$aerator_id)); run_sql($sql_update); } // 获取当前设备状态 public function getAeratorDeviceStatus() { $token = $this->getAeratorToken(); // 默认曝气机参数 $pk = 'a1uZDeulr2x'; $deviceName = 'H4GSAL0132202256465'; $device_id = 1; $current_time = date("Y-m-d H:i:s",time()); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'hk.tchjjc.com/api/thing/status', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => 'token='.$token.'&pk='.$pk.'&deviceName='.$deviceName, CURLOPT_HTTPHEADER => array( 'Content-Type: application/x-www-form-urlencoded', 'Cookie: PHPSESSID=f53kjsucrafml6n92tolgum1o2' ), )); $response = curl_exec($curl); curl_close($curl); $status = json_decode($response)->data->status; $sql_update = prepare("update device set status = ?i,created_at = ?s where id = ?i",array($status,$current_time,$device_id)); run_sql($sql_update); } // 通过session中token获取登录人员基本信息 function getLoginUserInfoByToken($token) { $sql = prepare("select project_id,name,mobile from user where token = ?s limit 1",array($token)); $data = get_line($sql); return $data; } // 通过aerator_id获取曝气机基本信息 function getAeratorBasicInfoById($aerator_id) { $sql = prepare("select aerator.id,project.name as project_name,terminal.name as terminal_name,terminal.address,aerator.link,aerator.account,aerator.password,aerator.token,aerator.pk,aerator.device_name,aerator.name,aerator.imei,aerator.imsi,aerator.iccid,aerator.csq,aerator.status,aerator.count,aerator.created_at from aerator left join project on project.id = aerator.project_id left join terminal on terminal.id = aerator.terminal_id where aerator.id = ?i limit 1",array($aerator_id)); $data= get_line($sql); return $data; } } ?>