format('m') == $currentMonth) { $dates[] = $startDate->format('m-d'); $dates2[] = $startDate->format('Ymd'); $startDate->add(new \DateInterval('P1D')); } $list = []; foreach ($dates as $k=>$v){ $count = $lists = Db::name('device_record') ->alias('dr') ->join('device d', 'd.id=dr.device_id') ->field('dr.*,d.title as device_name,d.content as device_details') ->where('dr.org_id',$this->orgId) ->where('cate_id','in',[22,23]) ->where('create_yyyymmdd',$dates2[$k]) ->count(); $list[$k] = $count>0 ? $count : 0; } $data = [ 'date' =>$dates, 'list'=>$list ]; HelpHander::success($data); } public function patrolImg4(){ $data = Db::name('device_record') ->alias('dr') ->join('device d', 'd.id=dr.device_id') ->field('dr.*,d.title as device_name,d.content as device_details') ->where('dr.org_id',$this->orgId) ->where('cate_id','in',[22,23]) ->order('dr.id desc') ->limit(30) ->select(); foreach ($data as $k=>$v){ $img = explode(',',$v['images']); if($img){ $data[$k]['images'] = $img[0]; } } if(count($data)>12){ $key = array_rand($data,12); for ($i = 0; $i < 12; $i++) { $list[] = $data[$key[$i]]; } } $eList = isset($list)?$list:$data; HelpHander::success($eList); } public function patrolDevice(){ $lists = Db::name('device_record') ->alias('dr') ->join('device d', 'd.id=dr.device_id') ->field('dr.*,d.title as device_name,d.content as device_details') ->where('dr.org_id',$this->orgId) ->where('cate_id','in',[22,23]) ->order('dr.id desc') ->limit(30) ->select(); $data = []; foreach ($lists as $k => $v) { $user = Db::name('user')->where('id', $v['user_id'])->value('real_name'); $checkJson = json_decode($v['check_json'],true); $content = ''; for ($i =0;$iorgId]; $count1 = Db::name('device')->where($map)->count(); // $count1 = Db::name('address') // ->where('org_id',$this->orgId) // ->where('enable',1) // ->where('','exp',Db::raw("FIND_IN_SET(3,types)")) // ->count(); $count2 = Db::name('patrol_task') ->alias('pr') ->leftJoin('patrol_task_addr b','pr.id=b.patrol_task_id') ->where('pr.org_id',$this->orgId) ->where('pr.del',0) ->where('pr.patrol_mode',1) ->where('pr.create_yyyymmdd',date('Ymd')) ->group('b.address_id') ->count(); // $count3 = Db::name('user') // ->alias('u') // ->join('user_roles ur','u.id=ur.user_id') // ->where('u.del',0) // ->where('ur.roles_id','in',[464,465,466]) // ->count(); $count3 = Db::name('user') ->alias('u') ->join('user_roles ur','u.id=ur.user_id') ->where('u.del',0) ->where('work',1) ->where('ur.roles_id','in',[464,465,466]) ->count(); // $count4 = Db::name('user') // ->alias('u') // ->join('user_roles ur','u.id=ur.user_id') // ->where('u.del',0) // ->where('work',1) // ->where('ur.roles_id','in',[464,465,466]) // ->count(); $count4 = Db::name('device_record') ->alias('a') ->join('device b','a.device_id = b.id') ->where('b.cate_id','in',[22,23]) ->where('a.org_id',$this->orgId) ->where('a.create_yyyymm',date("Ym")) ->count(); $task = Db::name('patrol_task') ->where('org_id',$this->orgId) ->where('del',0) ->where('patrol_mode',1) ->where('create_yyyymmdd',date('Ymd')) ->count(); $task1 = Db::name('patrol_task') ->where('org_id',$this->orgId) ->where('del',0) ->where('patrol_mode',1) ->where('create_yyyymmdd',date('Ymd')) ->where('status',2) ->count(); $count5 = 0; if($task > 0 ){ $count5 = round($task1/$task*100,1); } $data = [ 'count1' => $count1, 'count2' => $count2, 'count3' => $count3, 'count4' => $count4, 'count5' => $count5, ]; HelpHander::success($data); } public function patrolImg3(){ $data = Db::name('patrol_record') ->field('images,patrol_addr_id') ->where('images','<>','') ->where('org_id',$this->orgId) ->where('patrol_mode',1) ->whereTime('create_time','today') ->order('create_time desc') ->select(); foreach ($data as $k=>$v){ $img = explode(',',$v['images']); if($img){ $data[$k]['images'] = $img[0]; } $data[$k]['addr'] = Db::name('address')->where('id',$v['patrol_addr_id'])->value('title'); } if(count($data)>12){ $key = array_rand($data,12); for ($i = 0; $i < 12; $i++) { $list[] = $data[$key[$i]]; } } $eList = isset($list)?$list:$data; HelpHander::success($eList); } public function patrolRoutes(){ $lists = $this->getInfo(); $title = array_unique(array_column($lists,'title')); $mappedArray = array_map(function ($item) { $time = $this->getInfo($item,1); $count = $this->getInfo($item); $id = $this->getInfo($item,1); $info = $this->getInfo($this->orgId, $item); return [ 'title' => $item, 'count' => count($count), 'time' =>date('H:i:s',strtotime($time[0]['create_time'])), 'name' =>Db::name('user')->where('id', $id[0]['user_id'])->value('real_name') ]; }, $title); HelpHander::success(array_reverse($mappedArray)); } public function getInfo($item='',$param=''){ $map[] = ['pr.create_yyyymmdd','=',date('Ymd')]; $map[] = ['pr.org_id','=',$this->orgId]; $map[] = ['pr.patrol_mode', '=',1]; if ($item) { $map[] = ['pa.title','=',$item]; } if ($param) { $lists = Db::name('patrol_record') ->alias('pr') ->field('pr.id,pr.user_id,pr.order_id,pr.create_time,pa.title,pt.title as task_title') ->join('patrol_task pt','pt.id = pr.patrol_task_id') ->Leftjoin('address pa', 'pa.id=pr.patrol_addr_id') ->where($map) ->order('pr.create_time','desc') ->limit(1) ->select(); } $lists = Db::name('patrol_record') ->alias('pr') ->field('pr.id,pr.user_id,pr.order_id,pr.create_time,pa.title,pt.title as task_title') ->join('patrol_task pt','pt.id = pr.patrol_task_id') ->Leftjoin('address pa', 'pa.id=pr.patrol_addr_id') ->where($map) ->order('pr.create_time','desc') ->select(); foreach ($lists as $k => $v) { $lists[$k]['task_user'] = Db::name('user') ->where('id', $v['user_id'])->value('real_name'); $status = 0; if($v['order_id'] > 0 ){ $order = Db::name('orders') ->where('id',$v['order_id']) ->where('quality_type',$v['patrol_mode']+1) ->whereIn('order_mode',[5,6])->where('del',0)->find(); if($order){ $status = 2; }else{ $status = 1; } } $lists[$k]['zg_type'] = $status; $lists[$k]['exception'] = 1; } return $lists; } public function patrolNums(){ $mode = input('mode'); if(!in_array($mode,[1,2,3,4])){ HelpHander::error('参数错误'); } if($mode == 1){ $c = 3; }elseif ($mode == 2){ $c = 4; }elseif ($mode == 3){ $c = 5; }elseif ($mode == 4){ $c = 6; } $addr = Db::name('address') ->where('del',0) ->where('enable',1) ->where('org_id',$this->orgId) ->where('','exp',Db::raw("FIND_IN_SET($c,types)")) ->count('id'); $user = Db::name('patrol_task_user') ->alias('ptu') ->join('patrol_task pt','pt.id=ptu.patrol_task_id') ->join('user u','u.id=ptu.user_id') ->where('pt.del',0) ->where('pt.org_id',$this->orgId) ->where('pt.patrol_mode',$mode) ->where('pt.status','in',[0,1,2,3]) ->where('u.del',0) ->group('ptu.user_id') ->count(); $task = Db::name('patrol_task')->where('org_id',$this->orgId)->where('del',0)->where('patrol_mode',$mode)->count(); $data = [ 'addrCount'=>$addr, 'userCount'=>$user, 'taskCount'=>$task, ]; HelpHander::success($data); } //最新的一条巡更内容 public function patrolPath(){ $mode = input('mode'); if(!in_array($mode,[1,2,3,4])){ HelpHander::error('参数错误'); } $record = Db::name('patrol_record') ->alias('pr') ->field('pr.*') ->join('patrol_task pt','pt.id=pr.patrol_task_id') ->where('pr.org_id',$this->orgId) ->where('pt.patrol_mode',$mode) ->where('pt.del',0) ->where('pt.status',1) ->order('pr.id desc') ->find(); if(isset($record) && !empty($record)){ $record['addr'] = Db::name('address')->where('id',$record['patrol_addr_id'])->value('title'); $record['user'] = Db::name('user')->where('id',$record['user_id'])->value('real_name'); $record['task'] = Db::name('patrol_task')->where('id',$record['patrol_task_id'])->value('title'); } $addrList = Db::name('patrol_task_addr') ->alias('pta') ->field('a.id,a.title') ->join('patrol_addr_form paf','paf.id=pta.patrol_form_id') ->join('address a','a.id=paf.patrol_addr_id') ->where('pta.patrol_task_id',$record['patrol_task_id']) ->where('a.del',0) ->select(); foreach ($addrList as $k=>$v){ $addrList[$k]['nums'] = Db::name('patrol_record') ->where('org_id',$this->orgId) ->where('patrol_addr_id',$v['id']) ->count(); $active = 0; if($v['id'] == $record['patrol_addr_id']){ $active = 1; } $addrList[$k]['active'] = $active; $times = Db::name('patrol_record') ->field('create_time') ->where('org_id',$this->orgId) ->where('patrol_addr_id',$v['id']) ->select(); $eDate = '无'; foreach ($times as $kk=>$vv){ $date = isset($times[1]['create_time'])&&!empty($times[1]['create_time'])?$times[1]['create_time']:''; $eDate = !empty($date)?date('H:i',strtotime($date)):'无'; } $addrList[$k]['time'] = $eDate; } $data = [ 'record' => $record, 'addrList' => $addrList, ]; HelpHander::success($data); } //实时信息总览 public function patrolRealTime(){ $mode = input('mode'); if(!in_array($mode,[1,2,3,4])){ HelpHander::error('参数错误'); } $lists = Db::name('patrol_record') ->where('patrol_mode',$mode) ->where('org_id',$this->orgId) ->order('id desc') ->limit(20) ->select(); $data = []; foreach ($lists as $k=>$v){ $addrForm = Db::name('patrol_addr_form') ->alias('a') ->join('patrol_task_addr b','b.patrol_form_id = a.id') ->where('b.id',$v['patrol_addr_form_id']) ->value('a.title'); $mode = Db::name('patrol_mode') ->where('id',$v['patrol_mode']) ->value('name'); $user = Db::name('user')->where('id',$v['user_id'])->value('real_name'); $is_normal = '无异常' ; // if($v['is_normal'] == 1){ // $is_normal = '有异常' ; // } $isno = 1; $checkJson = json_decode($v['check_json'],true); foreach ($checkJson as $kk=>$vv) { if (isset($vv['forms'])) { foreach ($vv['forms'] as $kkk => $vvv) { if (isset($vvv['status']) && $vvv['status'] == 0 && $isno == 1) { $is_normal = '有异常'; $isno = 0; break; } } } } $time = date('Y-m-d H:i',strtotime($v['create_time'])); $content = '员工-'.$user.'完成'.$addrForm.$mode.','.$is_normal; $data[$k][] = $time; $data[$k][] = $content; } HelpHander::success($data); } //异常地点数据总览 public function patrolNormalAddr(){ $mode = input('mode'); if(!in_array($mode,[1,2,3,4])){ HelpHander::error('参数错误'); } $lists = Db::name('patrol_record') ->where('org_id',$this->orgId) // ->where('is_normal',1) ->where('patrol_mode',$mode) ->order('id desc') ->limit(20) ->select(); $data = []; foreach ($lists as $k=>$v){ $addr = Db::name('address')->where('id',$v['patrol_addr_id']) ->value('title'); $user = Db::name('user')->where('id',$v['user_id'])->value('real_name'); $is_normal = '正常' ; // if($v['is_normal'] == 1){ // $is_normal = '异常' ; // } $isno = 1; $checkJson = json_decode($v['check_json'],true); foreach ($checkJson as $kk=>$vv) { if (isset($vv['forms'])) { foreach ($vv['forms'] as $kkk => $vvv) { if (isset($vvv['status']) && $vvv['status'] == 0 && $isno == 1) { $is_normal = '异常'; $isno = 0; break; } } } } $data[$k][] = $addr; $data[$k][] = $user; $data[$k][] = $v['create_time']; $data[$k][] = $is_normal; $data[$k][] = $v['content']; } HelpHander::success($data); } //获取今天最新一条巡更记录 public function newestRecord(){ $info = Db::name('patrol_record') ->alias('a') ->join('patrol_task t','a.patrol_task_id = t.id') ->join('address b','a.patrol_addr_id = b.id') ->join('user c','a.user_id = c.id') ->where('a.create_yyyymmdd',date('Ymd')) ->where('a.org_id',$this->orgId) ->field('a.images,a.create_time,b.title as address,c.real_name as name,t.title as content') ->order('a.id desc') ->find(); $img = $info['images']?(explode(',',$info['images']))[0]:''; if(!$info){ HelpHander::error('错误'); } $info['img'] = $img; HelpHander::success($info); } // 可视化轨迹展示 public function patrolRecord(){ $lists = Db::name('patrol_record') ->alias('a') ->join('patrol_task t','a.patrol_task_id = t.id') ->join('address b','a.patrol_addr_id = b.id') ->join('user c','a.user_id = c.id') // ->where('a.create_yyyymmdd',date('Ymd')) ->where('a.org_id',$this->orgId) ->field('a.images,a.create_time,b.title as address,c.real_name as name,a.content') ->order('a.id desc') ->limit(20) ->select(); $lists = $lists?$lists:[]; $imgs = []; $record = []; foreach ($lists as $k=>$v){ $img = $v['images']?(explode(',',$v['images']))[0]:''; if($img && count($imgs) < 3){ $imgs[] = [ 'title' => $v['address'], 'img' => $img ]; } $record[] = [$v['address'],$v['create_time'],$v['name'],$v['content']]; } HelpHander::success(['imgs' => $imgs,'lists' => $record]); } // 巡更任务数据统计 当天及30天异常数量 public function addrRecord(){ //先取30内的巡更地点 $curDay = date('Ymd'); $start = date('Ymd',strtotime(date('Y-m-d')) - 29*24*60*60); $lists = Db::name('patrol_record') ->alias('pr') ->join('address a','a.id = pr.patrol_addr_id') ->where('pr.org_id',$this->orgId) ->where('pr.patrol_mode',1) ->where('pr.create_yyyymmdd','<=',$curDay) ->where('pr.create_yyyymmdd','>=',$start) ->field('a.id,a.title') ->group('pr.patrol_addr_id') ->distinct(true) ->select(); $titles = []; $y1 = []; $y2 = []; foreach ($lists as $k=>$v){ $titles[] = $v['title']; $count1 = Db::name('patrol_record') ->where('org_id',$this->orgId) ->where('patrol_mode',1) ->where('create_yyyymmdd','=',$curDay) ->count(); $y1[] = $count1; $count2 = Db::name('patrol_record') ->where('org_id',$this->orgId) ->where('patrol_mode',1) ->where('is_normal',1) ->where('create_yyyymmdd','<=',$curDay) ->where('create_yyyymmdd','>=',$start) ->count(); $y2[] = $count2; } HelpHander::success(['titles' => $titles,'y1' => $y1,'y2' => $y2]); } //巡*图片 public function patrolImg(){ $data = Db::name('patrol_record') ->field('images') ->where('images','<>','') ->where('org_id',$this->orgId) ->limit(30) ->order('id desc') ->select(); foreach ($data as $k=>$v){ $img = explode(',',$v['images']); if($img){ $data[$k]['images'] = $img[0]; } } if(count($data)>3){ $key = array_rand($data,4); $list[] = $data[$key[0]]; $list[] = $data[$key[1]]; $list[] = $data[$key[2]]; $list[] = $data[$key[3]]; } $eList = isset($list)?$list:$data; HelpHander::success($eList); } // public function patrolRecordCount(){ $dlist = [ date('Y-m-d',strtotime('-6 days')), date('Y-m-d',strtotime('-5 days')), date('Y-m-d',strtotime('-4 days')), date('Y-m-d',strtotime('-3 days')), date('Y-m-d',strtotime('-2 days')), date('Y-m-d',strtotime('-1 days')), date('Y-m-d'), ]; $date = []; $yCount = []; $y2Count = []; $y3Count = []; $y4Count = []; foreach ($dlist as $k=>$v){ $tt = date('Ymd',strtotime($v)); $count = Db::name('patrol_record') ->where('create_yyyymmdd',$tt) ->where('org_id',$this->orgId) ->where('patrol_mode',4) ->count(); $count2 =Db::name('patrol_record') ->where('create_yyyymmdd',$tt) ->where('org_id',$this->orgId) ->where('patrol_mode',2) ->count(); $count3 =Db::name('patrol_record') ->where('create_yyyymmdd',$tt) ->where('patrol_mode',3) ->where('org_id',$this->orgId) ->count(); $count4 =Db::name('patrol_record') ->where('create_yyyymmdd',$tt) ->where('patrol_mode',1) ->count(); $date[] = date('m-d',strtotime($v)); $yCount[] = $count; $y2Count[] = $count2; $y3Count[] = $count3; $y4Count[] = $count4; } $data = [ 'date'=>$date, 'count1'=>$yCount, 'count2'=>$y2Count, 'count3'=>$y3Count, 'count4'=>$y4Count, ]; HelpHander::success($data); } public function countData(){ $task = Db::name('patrol_task') ->where('org_id',$this->orgId) ->where('del',0) ->where('patrol_mode',2) ->where('create_yyyymmdd',date('Ymd')) ->count(); $task1 = Db::name('patrol_task') ->where('org_id',$this->orgId) ->where('del',0) ->where('patrol_mode',2) ->where('create_yyyymmdd',date('Ymd')) ->where('status',2) ->count(); $task2 = Db::name('patrol_task') ->where('org_id',$this->orgId) ->where('del',0) ->where('patrol_mode',2) ->where('create_yyyymmdd',date('Ymd')) ->where('status',0) ->count(); $task3 = Db::name('patrol_task') ->where('org_id',$this->orgId) ->where('del',0) ->where('patrol_mode',2) ->where('create_yyyymmdd',date('Ymd')) ->where('status',1) ->count(); $bl = '0'; if($task > 0 ){ $bl = round($task1/$task*100,1); } //$addrCount = model('Address')->getListByTypeCount(4,$this->orgId); $addrCount = Db::name('patrol_task') ->alias('pr') ->leftJoin('patrol_task_addr b','pr.id=b.patrol_task_id') ->where('pr.org_id',$this->orgId) ->where('pr.del',0) ->where('pr.patrol_mode',2) ->where('pr.create_yyyymmdd',date('Ymd')) ->group('b.address_id') ->count(); $fg = Db::name('patrol_record') ->alias('pr') ->join('address a','a.id=pr.patrol_addr_id') ->where('pr.org_id',$this->orgId) ->where('a.del',0) ->where('a.enable',1) ->where('pr.patrol_mode',2) ->where('pr.create_yyyymmdd',date('Ymd')) ->group('pr.patrol_addr_id') ->count(); $fgbl = '0'; if($addrCount > 0 ){ $fgbl = round($fg/$addrCount*100,1); } $data = [ 'task'=>$task, 'task1'=>$task1, 'task2'=>$task2, 'task3'=>$task3, 'bl'=>$bl, 'addr'=>$addrCount, 'addr1'=>$fg, 'addrbl'=>$fgbl, ]; HelpHander::success($data); } public function bjxsMonthData(){ $mode = input('mode',2); $year = date('Y'); $month = date('m'); $t = date('t',time()); $x = $dayList = []; for ($i=1;$i<=$t;$i++){ $d = $i; if($i < 10){ $d = '0'.$i; } $dayList[] = $year.$month.$d; $x[] = $month.'-'.$d; } $y = $y1 = $y2 = []; foreach ($dayList as $k=>$v){ $count = Db::name('patrol_task') ->where('del',0) ->where('org_id',$this->orgId) ->where('patrol_mode',$mode) ->where('create_yyyymmdd',$v) ->count(); $wc = Db::name('patrol_task') ->where('del',0) ->where('org_id',$this->orgId) ->where('patrol_mode',$mode) ->where('create_yyyymmdd',$v) ->where('status',2) ->count(); $bl = 0 ; if($count > 0){ $bl = round($wc/$count*100,1); } $y[] = $bl; $y1[] = $count; $y2[] = $wc; } HelpHander::success(['x'=>$x,'y'=>$y,'y1'=>$y1,'y2'=>$y2]); } public function bjxsTaskRecord(){ $mode = input('mode',2); $record = Db::name('patrol_record') ->where('org_id',$this->orgId) ->where('patrol_mode',$mode) ->where('create_yyyymmdd',date('Ymd')) ->order('id desc') ->limit(20) ->select(); $rList = []; foreach ($record as $k=>$v){ $task = Db::name('patrol_task')->where('id',$v['patrol_task_id'])->value('title'); $addr = Db::name('address')->where('id',$v['patrol_addr_id'])->value('title'); $status = $v['is_normal'] == 0 ? '正常':'异常'; $user = Db::name('user')->where('id',$v['user_id'])->value('real_name'); $time = date('H:i',strtotime($v['create_time'])); $rList[] =[$v['id'],$task,$addr,$status,$user,$time]; } $task = Db::name('patrol_task') ->where('del',0) ->where('org_id',$this->orgId) ->where('patrol_mode',$mode) ->where('create_yyyymmdd',date('Ymd')) ->where('status','in',[0,1,2,3]) ->order('id desc') ->limit(20) ->select(); $tList = []; foreach ($task as $k=>$v){ $users = Db::name('patrol_task_user') ->alias('ptu') ->join('user u','u.id=ptu.user_id') ->where('ptu.patrol_task_id',$v['id']) ->where('u.del',0) ->column('u.real_name'); $userNames = $users ? implode(',',$users):''; $st = date('H:i',strtotime($v['start_time'])); $et = date('H:i',strtotime($v['end_time'])); $statusTxt = $remark = ''; if($v['status'] == 0){ $statusTxt = '未执行'; $etime = strtotime($v['end_time']); $time = time(); $xctime = $etime - $time; $fz = round($xctime/60); // if($fz > 0 && $fz < 10){ // $remark = ''.$fz.'分钟后超时'; // } // if($fz > 10 && $fz < 30){ // $remark = ''.$fz.'分钟后超时'; // } // if($fz > 30){ // $remark = ''.$fz.'分钟后超时'; // } // if($fz <0){ // $remark = '已超时'; // } }elseif ($v['status'] == 1){ $statusTxt = '执行中'; }elseif ($v['status'] == 2){ $statusTxt = '已完成'; }elseif ($v['status'] == 3){ $statusTxt = '未完成'; } $tList[] = [$v['id'],$v['title'],$userNames,$st,$et,$statusTxt]; } $wzz = Db::name('patrol_task') ->where('del',0) ->where('org_id',$this->orgId) ->where('patrol_mode',$mode) ->where('create_yyyymmdd',date('Ymd')) ->where('status',0) ->count(); $zxz = Db::name('patrol_task') ->where('del',0) ->where('org_id',$this->orgId) ->where('patrol_mode',$mode) ->where('create_yyyymmdd',date('Ymd')) ->where('status',1) ->count(); $wwc = Db::name('patrol_task') ->where('del',0) ->where('org_id',$this->orgId) ->where('patrol_mode',$mode) ->where('create_yyyymmdd',date('Ymd')) ->where('status',3) ->count(); $data = [ 'rlist'=>$rList, 'tlist'=>$tList, 'wzz'=>$wzz, 'zxz'=>$zxz, 'wwc'=>$wwc, ]; HelpHander::success($data); } public function patrolImg2(){ $mode = input('mode',2); $data = Db::name('patrol_record') ->field('images,patrol_addr_id') ->where('images','<>','') ->where('org_id',$this->orgId) ->where('patrol_mode',$mode) ->limit(30) ->order('id desc') ->select(); foreach ($data as $k=>$v){ $img = explode(',',$v['images']); if($img){ $data[$k]['images'] = $img[0]; } $data[$k]['addr'] = Db::name('address')->where('id',$v['patrol_addr_id'])->value('title'); } if(count($data)>6){ $key = array_rand($data,6); $list[] = $data[$key[0]]; $list[] = $data[$key[1]]; $list[] = $data[$key[2]]; $list[] = $data[$key[3]]; $list[] = $data[$key[4]]; $list[] = $data[$key[5]]; } $eList = isset($list)?$list:$data; HelpHander::success($eList); } public function zgImg(){ $orders = Db::name('orders') ->alias('a') ->join('todo b','a.id=b.order_id') ->field('a.images as oImages,b.images as tImages,a.create_time,b.done_time') ->where('a.images','<>','') ->where('b.images','<>','') ->where('a.org_id',$this->orgId) ->where('a.del',0) ->where('a.work_type_mode',2) ->where('a.order_mode','in',[5,6]) ->limit(30) ->order('a.id desc') ->select(); $img = []; foreach ($orders as $k=>$v){ $oImages = explode(',',$v['oImages']); $tImages = explode(',',$v['tImages']); $img[$k]= ['img'=>[$oImages[0],$tImages[0]],'time'=>[date('Y-m-d H:i',strtotime($v['create_time'])),date('Y-m-d H:i',strtotime($v['done_time']))]]; } $list = []; if(count($img)>3){ $key = array_rand($img,3); foreach ($key as $k=>$v){ $list[] =['images'=>$img[$v]['img'],'time'=>$img[$v]['time']]; } }else{ foreach ($img as $k=>$v){ $list[] =['images'=>$v['img'],'time'=>$v['time']]; } } $eList = $list; HelpHander::success($eList); } public function zgImgbak(){ $orders = Db::name('orders') ->field('images') ->where('images','<>','') ->where('org_id',$this->orgId) ->where('del',0) ->where('work_type_mode',2) ->limit(10) ->order('id desc') ->select(); foreach ($orders as $k=>$v){ $img = explode(',',$v['images']); if($img){ $orders[$k]['images'] = $img[0]; } } $todo = Db::name('todo') ->field('images') ->where('images','<>','') ->where('org_id',$this->orgId) ->where('del',0) ->where('work_type_mode',2) ->limit(10) ->order('id desc') ->select(); foreach ($todo as $k=>$v){ $img = explode(',',$v['images']); if($img){ $todo[$k]['images'] = $img[0]; } } $data = array_merge($orders,$todo); if(count($data)>3){ $key = array_rand($data,3); $list[] = $data[$key[0]]; $list[] = $data[$key[1]]; $list[] = $data[$key[2]]; } $eList = isset($list)?$list:$data; HelpHander::success($eList); } }