private function gpCai($date) { $cais = Cai::where('flag', '=', 1)->select('cai_id', 'title')->orderBy('cai_id', 'asc')->get(); foreach ($cais as $cai) { Out::writeln('正在生成 ' . $cai->title . ' 的期号!'); $rules = $cai->stagerule()->where('flag', '=', 1)->orderBy('sort', 'asc')->get(); $cai_id = $cai->cai_id; foreach ($rules as $key => $rule) { if (strpos($rule->format, '*') !== false) { list($d, $c, $n) = explode('*', $rule->format); if ($key == 0) { $stage_num = $c + round(abs((strtotime($date) - strtotime($d)) / 86400)) * $n; } $is_add = true; } else { list($date_fromat, $num_format) = explode('-', $rule->format); if ($key == 0) { $stage_num = 1; } $is_add = false; } $sql = 'INSERT INTO `vz_stage`(`cai_id`, `close_time`, `lottery_time`, `title`) VALUES '; for ($timer = strtotime($rule->stime, $this->timestamp); $timer <= strtotime($rule->etime, $this->timestamp); $timer += $rule->interval) { if (!$is_add) { $title = date($date_fromat, $timer) . '-' . sprintf($num_format, $stage_num); } else { $title = $stage_num; } $close_time = $timer - $rule->delay; $lottery_time = $timer; $sql .= "({$cai_id}, {$close_time}, {$lottery_time}, '{$title}'),"; ++$stage_num; } $sql = trim($sql, ',') . ' ON DUPLICATE KEY UPDATE `close_time` = VALUES(`close_time`), `lottery_time` = VALUES(`lottery_time`);'; //if($cai_id == 1) // echo $sql . "\n\n"; DB::statement($sql); } } }
/** * Execute the console command. * * @return mixed */ public function handle() { $is_run = Cache::get($this->key, 0); if ($is_run) { Out::writexit('等待上一轮采集!'); } Cache::put($this->key, 1, 1); $now = time(); $stages = Stage::getNotLotteryStages(20); $caiji = new Caiji(); foreach ($stages as $stage) { $hao = $caiji->getHao($stage->cai_id, $stage->caiji_id, $stage->caiji_rule, $stage->title); if (!empty($hao)) { $stage->numbers = $hao; $stage->save(); Out::writeln("[{$stage->cai_id}]{$stage->cai_name}({$stage->title}):{$hao}"); } else { Out::writeln("[{$stage->cai_id}]{$stage->cai_name}({$stage->title}):采集失败!"); } } Cache::put($this->key, 0, 1); }