get(); $now = time(); foreach ($list as $item) { if (strtotime($item->end_time) - 30 <= $now) { $item->status = PcIssue::STATUS_CLOSE; $item->save(); } } } private static function kaiJiang(): void { $list = PcIssue::where('status', PcIssue::STATUS_CLOSE)->get(); $now = time(); foreach ($list as $item) { if (strtotime($item->end_time) <= $now) { $keno = static::getKeno(); $item->keno = json_encode($keno); $winningNumbers = static::getWinningNumbers($keno); $item->winning_numbers = implode(',', $winningNumbers); $item->status = PcIssue::STATUS_DRAW; $item->save(); $awards = IssueService::award(explode(',', $item->winning_numbers)); //预测结果 PcPrediction::result($item->issue_no, $item->winning_numbers, $awards); // PcCao::updateData($awards); //每天统计 PcCaoHistory::updateData($awards); } } } private static function createIssueNo() { $issue = PcIssue::orderByDesc('id')->first(); $now = time(); if (strtotime($issue->end_time) <= $now) { $issue_no = $issue->issue_no; $number = preg_replace('/\D/', '', $issue_no); $number = (int)$number + 1; $new_str = "P" . $number; $end_time = strtotime($issue->end_time) + 210; $status = $end_time - 30 > $now ? PcIssue::STATUS_BETTING : PcIssue::STATUS_CLOSE; $issue = PcIssue::create([ 'issue_no' => $new_str, 'status' => $status, 'start_time' => $issue->end_time, 'end_time' => date('Y-m-d H:i:s', $end_time), ]); //预测 PcPrediction::prediction($new_str); if (strtotime($issue->end_time) <= $now) { static::createIssueNo(); } } } }