123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- <?php
- namespace 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();
- }
- }
- }
|