dailyAt('01:00'); } /** * 执行任务 * @return mixed */ protected function execute() { try{ $yday = date('Y-m-d',time() - 86400); // 昨天不跨天进行中的状态改为已完成 $map1[] = ['day','=',$yday]; $map1[] = ['next','=',0]; $map1[] = ['status','=',0]; $yyday = date('Y-m-d',time() - 2*86400); // 昨天跨天进行中的状态改为已完成 $map2[] = ['day','=',$yyday]; $map2[] = ['next','=',1]; $map2[] = ['status','=',0]; $lists = Db::name('attendance_user_class') ->whereOr([ $map1, $map2 ]) ->field('id,content') ->select(); $lists = $lists?$lists:[]; foreach ($lists as $k=>$v){ $dates = json_decode($v['content'],true); foreach ($dates as $kk=>$vv){ $dates[$kk]['sstatus'] = 1; $dates[$kk]['estatus'] = 1; } Db::name('attendance_user_class')->where('id',$v['id'])->update([ 'content' => json_encode($dates), 'status' => 1, 'update_time' => date('Y-m-d H:i:s') ]); } }catch (\Exception $e){ trace($e->getMessage()); } trace('attendance'); } }