| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 | <?phpnamespace app\admin\controller;use app\watch\controller\Api;use think\App;use think\Db;class Location extends Auth{    protected $lx = 'http://manager.aiqiangua.com:8080/organS2/themes/default/images/loc2.png';    protected $zx = 'http://manager.aiqiangua.com:8080/organS2/themes/default/images/loc.png';    public function __construct(App $app) {        parent::__construct($app);        $this->api = new Api($this->app);    }    public function index(){        if(request()->post()){            $length = input('rows',10,'intval');   //每页条数            $page = input('page',1,'intval');      //第几页            $start = ($page - 1) * $length;     //分页开始位置            $map[] =['del','=',0];            $map[] =['org_id','=',cur_org_id()];            $map= empty($map) ? true: $map;            $lists = Db::name('bracelet_device')                ->where($map)->limit($start,$length)                ->select();            $deviceInfo = [];            foreach ($lists as $k=>$v){                $a = $this->api->getDevice($v['imei']);                if(!$a['success']) $this->error($v['imei'].$a['error_desc']);                $deviceInfo[] = $a['obj'];            }            $totalCount =  Db::name('bracelet_device')                ->where($map)                ->count();            $totalPage = ceil($totalCount/$length);            $data = [];            $ydw  = [];            $wdw  = [];            $onlineNumber = 0;            foreach ($deviceInfo as $k=>$v){                 if(!empty($v['last_address'])){                     $a = [                         'lonLat'=>[$v['last_location']['coordinates'][0],$v['last_location']['coordinates'][1]],                         'imeI'=>$v['_id'],                         'name'=>$v['name'],                         'lon'=>$v['last_location']['coordinates'][0],                         'lat'=>$v['last_location']['coordinates'][1],                         'address'=>$v['last_address'],                         'updated_at'=>nDate($v['location_updated_at']['$date']),                         'icon'=>$v['online']?$this->zx:$this->lx                     ];                     $ydw[] = [                         'imeI'=>$v['_id'],                         'name'=>$v['name'],                         'online'=>$v['online']?'在线':'离线',                     ];                     if($v['online']){                         $onlineNumber++;                     }                 }else{                     $wdw[] = [                         'imeI'=>$v['_id'],                         'name'=>$v['name'],                     ];                 }            }            $data['data'][] = $a;            $data['online_numbers'] =$onlineNumber;            $lpage['page_count'] = $totalPage;            $lpage['total'] = $totalCount;            $lastPage = $page+1;            $proPage = $page-1;            $a1  = '<a href="javascript:;" style="color:black;">  当前第'.$page.'页  </a>';            $a3  = '<a href="javascript:;" style="color:black;">  共'.$lpage['total'].'条</a>';            if($page==1 && $lpage['page_count'] <=1){                $a0 = '<a style="color:black;" href="javascript:;">上一页  |</a>';                $a2 = '<a style="color:black;" href="javascript:;">|  下一页  |</a>';            }else if ($page==1 && $lpage['page_count'] >1){                $a0 = '<a style="color:black;" href="javascript:;">上一页  |</a>';                $a2 = '<a style="color:black;" onclick="setPage('.$lastPage.')" href="javascript:;">|  下一页  |</a>';            }else if ($page > 1 && $lpage['page_count'] <=1){                $a0 = '<a style="color:black;" onclick="setPage('.$proPage.')" href="javascript:;">上一页  |</a>';                $a2 = '<a style="color:black;" href="javascript:;">|  下一页  |</a>';            }else if ($page > 1 && $lpage['page_count'] >1){                $a0 = '<a style="color:black;" onclick="setPage('.$proPage.')" href="javascript:;">上一页  |</a>';                $a2 = '<a style="color:black;" onclick="setPage('.$lastPage.')" href="javascript:;">|  下一页  |</a>';            }            $data['page'] = $a0.$a1.$a2.$a3;            $ydwTxt  ='';            $wdwTxt  ='';            if(!empty($ydw)){                foreach ($ydw as $v){                    $ydwTxt.='<li>'.$v['imeI'].'['.$v['name'].']['.$v['online'].']</li>';                }            }            if(!empty($wdw)){                foreach ($wdw as $v){                    $wdwTxt.='<li>'.$v['imeI'].'['.$v['name'].']</li>';                }            }            $data['ydw'] = $ydwTxt;            $data['wdw'] = $wdwTxt;            $this->success('获取成功','',$data);        }else{            $this->assign('gdKey',config('app.gdmap'));            return $this->fetch();        }    }    public function getSosNum(){        $count  = Db::name('sos_data')            ->where('org_id',cur_org_id())            ->count();        $this->success('操作成功','',$count);    }    public function getSosList(){        if(request()->isAjax()){            //分页参数            $length = input('rows',10,'intval');   //每页条数            $page = 1;      //第几页            $start = ($page - 1) * $length;     //分页开始位置            $map[] = ['org_id','=',cur_org_id()];            $list = Db::name('sos_data')->where($map)                ->limit($start,$length)->order('id','desc')                ->select();            foreach ($list as $k=>&$v){                $v['created_at'] = $v['time_begin'];            }            $totalCount = Db::name('sos_data')->where($map)->count();            $totalPage = ceil($totalCount/$length);            $result['page'] = $page;            $result['total'] = $totalPage;            $result['records'] = $totalCount;            $result['rows'] = $list;            Db::name('sos_data')                ->whereIn('id',array_column($list,'id'))                ->delete();            return json($result);        }else{            return $this->fetch();        }    }}
 |