|
|
@@ -4,6 +4,8 @@ namespace App\Console\Commands;
|
|
|
|
|
|
use Illuminate\Console\Command;
|
|
|
use App\Models\Sport as SportModel;
|
|
|
+use App\Services\SportClientService;
|
|
|
+use Carbon\Carbon;
|
|
|
|
|
|
class Sport extends Command
|
|
|
{
|
|
|
@@ -29,7 +31,7 @@ class Sport extends Command
|
|
|
{
|
|
|
$this->info('开始执行统计比赛数据任务...');
|
|
|
|
|
|
- $this->sportData();
|
|
|
+ $this->fixtures();
|
|
|
|
|
|
$this->info('结束执行统计比赛数据任务');
|
|
|
}
|
|
|
@@ -96,4 +98,45 @@ class Sport extends Command
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取指定日期的所有赛事
|
|
|
+ *
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function fixtures()
|
|
|
+ {
|
|
|
+ $date = Carbon::tomorrow()->toDateString();
|
|
|
+ $data = SportClientService::fixtures(['date' => $date]);
|
|
|
+ print_r($data);die;
|
|
|
+ $data = $data['response'];
|
|
|
+ $tableData = [];
|
|
|
+ $status = ['NS' => 0, '1H' => 1, 'HT' => 1, '2H' => 1, 'ET' => 1, 'BT' => 1, 'P' => 1, 'SUSP' => 1, 'INT' => 1, 'LIVE' => 1, 'FT' => 2, 'AET' => 2, 'PEN' => 2, 'PST' => 3, 'CANC' => 4, 'ABD' => 4,];
|
|
|
+ foreach ($data as $item) {
|
|
|
+ if (!Sport::where('data_id', $item['fixture']['id'])->exists()) {
|
|
|
+ $tableData[] = [
|
|
|
+ 'data_id' => $item['fixture']['id'],
|
|
|
+ 'home_team_id' => $item['teams']['home']['id'],
|
|
|
+ 'home_team_en' => $item['teams']['home']['name'],
|
|
|
+ 'home_team' => lang($item['teams']['home']['name']),
|
|
|
+ 'home_team_logo' => $item['teams']['home']['logo'],
|
|
|
+ 'guest_team_id' => $item['teams']['away']['id'],
|
|
|
+ 'guest_team_en' => $item['teams']['away']['name'],
|
|
|
+ 'guest_team' => lang($item['teams']['away']['name']),
|
|
|
+ 'guest_team_logo' => $item['teams']['away']['logo'],
|
|
|
+ 'half_score' => "{$item['score']['halftime']['home']}-{$item['score']['halftime']['away']}",
|
|
|
+ 'rbt' => $item['fixture']['timestamp'],
|
|
|
+ 'score' => "{$item['goals']['home']}-{$item['goals']['away']}",
|
|
|
+ 'league' => lang($item['league']['name']),
|
|
|
+ 'league_en' => $item['league']['name'],
|
|
|
+ 'state' => $status[$item['fixture']['status']['short']],//比赛状态:0未开始1进行中2已完场3延期4取消
|
|
|
+ 'game_time' => $item['fixture']['timestamp'],
|
|
|
+ 'created_at' => now(),
|
|
|
+ 'updated_at' => now(),
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Sport::insert($tableData);
|
|
|
+ return $tableData;
|
|
|
+ }
|
|
|
+
|
|
|
}
|