| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325 | <?phpnamespace app\watch\controller;use think\App;use think\facade\Log;class Api extends Base {    protected $testUrl = 'http://120.24.56.48:8889';    protected $produceUrl = 'http://api.aiqiangua.com:8888';    protected $companyName = '京宜安科技';    protected $userName = '13838379499';    protected $pwd = 'hzd2021';    protected $imeI = '863204050000136';    protected $communityId = '609b36c615f7164e6ff56246';    public function __construct(App $app) {        parent::__construct($app);    }    /**     * 查看人员信息     *     * @author wst     * @date   2021/5/31 17:10     */    public function getPerson($personId){        $url = $this->produceUrl . '/api/person/'.$personId;        $data = $this->getApiContents($url,'GET',[],$this->getCookie());        return $data;    }    /**     * 查看指定设备     *     * @author wst     * @date   2021/5/31 14:06     */    public function getDevice($deviceId){        $url = $this->produceUrl . '/api/device/'.$deviceId;        $data = $this->getApiContents($url,'GET',[],$this->getCookie());        return $data;    }    /**     * 批量获取设备在离线状态//列表     *     * @author wst     * @date   2021/5/31 17:43     */    public function community($page=1,$pageSize=20){        $url = $this->produceUrl . '/api/community/'.$this->communityId.'/devicesloc_new?rows_per_page='.$pageSize.'&page='.$page;        $data = $this->getApiContents($url,'GET',[],$this->getCookie());        return $data;    }    public function t(){        echo "<pre/>";       echo nDate(1620814184843);        die;        print_r($this->community());        die;    }    /**     * 修改设备     *     * @author wst     * @date   2021/5/31 14:44     */    public function editDevice($deviceId,$params){        $url = $this->produceUrl . '/api/device/'.$deviceId.'/4g/edit?'.http_build_query($params);        $data = $this->getApiContents($url,'GET',[],$this->getCookie());        return $data;    }    /**     * 设置提醒     *     * @author wst     * @date   2021/5/31 15:09     * @alertId 提醒编号 设备详情->alert->seqid 字段值     */    public function deviceAlert($deviceId,$alertId,$params){        $url = $this->produceUrl . '/api/device/'.$deviceId.'/4g/alerts/'.$alertId.'?'.http_build_query($params);        $data = $this->getApiContents($url,'GET',[],$this->getCookie());        return $data;    }    /**     * 设置亲情号码     *     * @author wst     * @date   2021/5/31 15:31     * @sos_numbers 亲情编号 设备详情->sos_numbers->seqid 字段值     */    public function deviceSosNumbers($deviceId,$sos_numbers,$params){        $url = $this->produceUrl . '/api/device/'.$deviceId.'/4g/sos_numbers/'.$sos_numbers.'?'.http_build_query($params);        $data = $this->getApiContents($url,'GET',[],$this->getCookie());        return $data;    }    /**     * 设置安全区域     *     * @author wst     * @date   2021/5/31 15:34     */    public function deviceFences($deviceId,$FencesId,$params){        $url = $this->produceUrl . '/api/device/'.$deviceId.'/4g/fences/'.$FencesId.'?'.http_build_query($params);        $data = $this->getApiContents($url,'GET',[],$this->getCookie());        return $data;    }    /**     * 在线设备操作,获取在线设备实时数据     *     * @author wst     * @date   2021/5/31 15:56     */    public function deviceAction($deviceId,$action){        $url = $this->produceUrl . '/api/device/'.$deviceId.'/4g/action/'.$action;        $data = $this->getApiContents($url,'GET',[],$this->getCookie());        return $data;    }    /**     * 查看设备开关机数据     *     * @author wst     * @date   2021/5/31 16:04     */    public function devicePowerData($deviceId,$params){        $params['device'] = $deviceId;        $url = $this->produceUrl . '/api/powerdata/?'.http_build_query($params);        $data = $this->getApiContents($url,'GET',[],$this->getCookie());        return $data;    }    /**     * 查看设备定位数据     *     * @author wst     * @date   2021/5/31 16:04     */    public function deviceLocationData($deviceId,$params){        $params['device'] = $deviceId;        $url = $this->produceUrl . '/api/locationdata/?'.http_build_query($params);        $data = $this->getApiContents($url,'GET',[],$this->getCookie());        return $data;    }    /**     * 查看设备运动数据     *     * @author wst     * @date   2021/5/31 16:28     */    public function devicePedometerData($deviceId,$params){        $params['device'] = $deviceId;        $url = $this->produceUrl . '/api/pedometerdata/?'.http_build_query($params);        $data = $this->getApiContents($url,'GET',[],$this->getCookie());        return $data;    }    /**     * 查看设备心率数据     *     * @author wst     * @date   2021/5/31 16:28     */    public function deviceHeartRatData($deviceId,$params){        $params['device'] = $deviceId;        $url = $this->produceUrl . '/api/heartratedata/?'.http_build_query($params);        $data = $this->getApiContents($url,'GET',[],$this->getCookie());        return $data;    }    /**     * 查看设备睡眠数据     *     * @author wst     * @date   2021/5/31 16:28     */    public function deviceSleepData($deviceId,$params){        $params['device'] = $deviceId;        $url = $this->produceUrl . '/api/sleepdata/?'.http_build_query($params);        $data = $this->getApiContents($url,'GET',[],$this->getCookie());        return $data;    }    /**     * 查看设备答复数据     *     * @author wst     * @date   2021/5/31 16:28     */    public function deviceReplyData($deviceId,$params){        $params['device'] = $deviceId;        $url = $this->produceUrl . '/api/replydata/?'.http_build_query($params);        $data = $this->getApiContents($url,'GET',[],$this->getCookie());        return $data;    }    /**     * 查看设备血压数据     *     * @author wst     * @date   2021/5/31 16:28     */    public function deviceBloodPressureData($deviceId,$params){        $params['device'] = $deviceId;        $url = $this->produceUrl . '/api/bloodpressuredata/?'.http_build_query($params);        $data = $this->getApiContents($url,'GET',[],$this->getCookie());        return $data;    }    /**     * 查看设备血氧数据     *     * @author wst     * @date   2021/5/31 16:28     */    public function deviceDoXGenData($deviceId,$params){        $params['device'] = $deviceId;        $url = $this->produceUrl . '/api/bloodoxygendata/?'.http_build_query($params);        $data = $this->getApiContents($url,'GET',[],$this->getCookie());        return $data;    }    /**     * 查看设备紧急呼叫     *     * @author wst     * @date   2021/5/31 16:28     */    public function deviceSosData($deviceId,$params){        $params['device'] = $deviceId;        $url = $this->produceUrl . '/api/sosdata/?'.http_build_query($params);        $data = $this->getApiContents($url,'GET',[],$this->getCookie());        return $data;    }    /**     * 查看跌倒数据     *     * @author wst     * @date   2021/5/31 16:28     */    public function deviceFallData($deviceId,$params){        $params['device'] = $deviceId;        $url = $this->produceUrl . '/api/falldata/?'.http_build_query($params);        $data = $this->getApiContents($url,'GET',[],$this->getCookie());        return $data;    }    /**     * 获取设备最新位置数据     *     * @author wst     * @date   2021/5/31 16:28     */    public function deviceNewLocationData($deviceId,$params){        $url = $this->produceUrl . '/api/device/'.$deviceId.'/data/locationdata?'.http_build_query($params);        $data = $this->getApiContents($url,'GET',[],$this->getCookie());        return $data;    }    /**     * 登录     *     * @author wst     * @date   2021/5/31 14:06     */    public function getCookie() {        $cookie = cache('aqg_cookie');        //\think\facade\Cache::delete('aqg_cookie');        if(empty($cookie)|| $cookie=='false'){            $url = $this->produceUrl . '/api/auth/login';            $cookie = $this->getApiContents($url, 'POST',                ['username' => $this->userName, 'password' => $this->pwd], '', true);            cache('aqg_cookie',$cookie,86400);        }        return $cookie;    }    /**     * 获取接口内容及相应headers详情     * @param string $url 请求的API地址     * @param array $post POST所需提交的数据     * @param string $token 验证的TOKEN,放header里     * @param bool $returnHeader 是否需要查看response header内容     * @return array     */    public function getApiContents($url, $method, $post = array(), $token = '', $returnHeader = false) {        $curl = curl_init();        curl_setopt($curl, CURLOPT_URL, $url); // 需要获取的 URL 地址,也可以在curl_init() 初始化会话的时候。        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);        curl_setopt($curl, CURLOPT_AUTOREFERER, 1);        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);        curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);        if (!empty($token)) {            $header = ['Cookie: ' . $token]; //设置一个你的浏览器的header            curl_setopt($curl, CURLOPT_HTTPHEADER, $header);        }        /* 如果不设置这个则无法获取response header内容 */        curl_setopt($curl, CURLOPT_HEADER, $returnHeader);        curl_setopt($curl, CURLOPT_TIMEOUT, 10);        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);        // 执行 cURL 会话        $data = curl_exec($curl);        $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);        if (curl_errno($curl)) {            return curl_error($curl);        }        // 关闭 cURL 会话        curl_close($curl);        $info['code'] = $httpCode;        $info['cookie'] = '';        if ($returnHeader) {            list($header, $body) = explode("\r\n\r\n", $data, 2);            $h = explode("\r", $header);            foreach ($h as $k => $value) {                if (strpos($value,'Set-Cookie')!==false) {                    $c = trim(str_replace('Set-Cookie:','',$value));                    $cc = explode(';',$c);                    $info['cookie'] = $cc[0];                }            }            $info['data'] = json_decode($body,true);            if (empty($info['cookie'])) {                log::info('登录失败:' . $body);            }        }        else {            $info['data'] = json_decode($data,true);        }        if(!$returnHeader){            if(!isset($info['data']['success'])) $this->error('系统错误!');            return $info['data'];        }        return $info['cookie'];    }}
 |