コード例 #1
0
ファイル: StageController.php プロジェクト: ai-fei-de-yu/game
 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);
         }
     }
 }
コード例 #2
0
ファイル: HaoCaiji.php プロジェクト: ai-fei-de-yu/game
 /**
  * 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);
 }