everyMinute(); //每分钟执行一次 } /** * 执行任务 * @return mixed */ protected function execute() { try{ $this->complain(); }catch (\Exception $e){ trace($e->getMessage()); } trace('attendance'); } public function complain(){ $lists = Db::name('config_org') ->alias('a') ->join('config b','a.config_id = b.id') ->where('b.name','org_complain_hour') ->field('a.org_id,a.value') ->select(); $lists = $lists?$lists:[]; foreach ($lists as $k=>$v){ if($v['value'] > 0){ // 获取当前组织是否设置人员,设置人员才发送超时提醒 $users = (new Config())->getConfig('org_complain_user',$v['org_id']); if($users){ $uids = Db::name('user')->where('id','in',$users)->where('del',0)->where('enable')->column('id'); if($uids){ // 检查是否有超时未处理投诉 $map = []; $endTime = date('Y-m-d H:i:s',time() - $v['value']*60*60); $map[] = ['create_time','<',$endTime]; $map[] = ['status','=',0]; $map[] = ['org_id','=',$v['org_id']]; $map[] = ['del','=',0]; $ret = Db::name('complain') ->where($map) ->field('id,content,create_time,status,order_id') ->find(); if($ret){ send_jpush($uids,AppMsg::PUSH_COMPLAIN_TIMEOUT); } } } } } } }