lip il y a 2 jours
Parent
commit
f712fbacbf
1 fichiers modifiés avec 71 ajouts et 74 suppressions
  1. 71 74
      app/Console/Commands/Sport.php

+ 71 - 74
app/Console/Commands/Sport.php

@@ -92,12 +92,12 @@ class Sport extends Command
     {
         // $this->info('开始执行统计比赛数据任务...');
         $this->is_live = $this->argument('is_live');
-        if ($this->is_live == 1) {
-            //进行中的赛事,定时更新
-            $this->liveFixtures();
-        } elseif ($this->is_live == 0) {
+        if ($this->is_live == 0) {
             //未开始的赛事拉取
             $this->fixtures();
+        } elseif ($this->is_live == 1) {
+            //进行中的赛事,定时更新
+            $this->liveFixtures();
         } elseif ($this->is_live == 2){
             $this->checkLiveFixtures();
             //$this->updateOvertimeFixtures();
@@ -270,80 +270,77 @@ class Sport extends Command
         //根据配置拉取多少天的赛事信息
         $days = Config::where('field', 'sport_days')->first()->val ?? 1;
         for($i=0;$i<$days;$i++) {
-            $date = Carbon::tomorrow()->addDay($i)->toDateString();
-            $count = SportModel::where('game_time','>=', strtotime($date))->where('game_time','<=', strtotime($date." 23:59:59"))->count();
-            if (!$count) {
-                $data = SportClientService::fixtures(['date' => $date]);
-        
-                $data = $data['response'];
-                $tableData = [];
-                $status = $this->short_status;
-                foreach ($data as $item) {
-                    $home_statistics = !empty($item['statistics']) ? $item['statistics'][0]['statistics'] : '';
-                    $away_statistics = !empty($item['statistics']) ? $item['statistics'][1]['statistics'] : '';
-        
-                    $sport_data = [
-                        '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' => isset($item['score']['fulltime']) ? "{$item['score']['fulltime']['home']}-{$item['score']['fulltime']['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'],
-                        'status' => 1,
-                        'updated_at' => now(),
-                        'home_statistics' => $home_statistics,
-                        'away_statistics' => $away_statistics,
-                        'is_send' => 0,
-                    ];
-                    $status_short = strtoupper($item['fixture']['status']['short']);
-                    if (isset($status[$status_short])) {
-                        $sport_data['state'] = $status[$status_short];
-                    }
-                    $sport_data['score'] = $sport_data['score'] == '-' ? '' : $sport_data['score'];
-                    $sport_data['half_score'] = $sport_data['half_score'] == '-' ? '' : $sport_data['half_score'];
-        
-                    if (!SportModel::where('data_id', $item['fixture']['id'])->exists()) {
-                        $sport_data['created_at'] = now();
-                        $tableData[] = $sport_data;
-                    } else {
-                        SportModel::where('data_id', $item['fixture']['id'])->update($sport_data);
-                    }
+            $date = Carbon::today()->addDay($i)->toDateString();
+            $data = SportClientService::fixtures(['date' => $date]);
+    
+            $data = $data['response'];
+            $tableData = [];
+            $status = $this->short_status;
+            foreach ($data as $item) {
+                $home_statistics = !empty($item['statistics']) ? $item['statistics'][0]['statistics'] : '';
+                $away_statistics = !empty($item['statistics']) ? $item['statistics'][1]['statistics'] : '';
+    
+                $sport_data = [
+                    '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' => isset($item['score']['fulltime']) ? "{$item['score']['fulltime']['home']}-{$item['score']['fulltime']['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'],
+                    'status' => 1,
+                    'updated_at' => now(),
+                    'home_statistics' => $home_statistics,
+                    'away_statistics' => $away_statistics,
+                    'is_send' => 0,
+                ];
+                $status_short = strtoupper($item['fixture']['status']['short']);
+                if (isset($status[$status_short])) {
+                    $sport_data['state'] = $status[$status_short];
+                }
+                $sport_data['score'] = $sport_data['score'] == '-' ? '' : $sport_data['score'];
+                $sport_data['half_score'] = $sport_data['half_score'] == '-' ? '' : $sport_data['half_score'];
+    
+                if (!SportModel::where('data_id', $item['fixture']['id'])->exists()) {
+                    $sport_data['created_at'] = now();
+                    $tableData[] = $sport_data;
+                } else {
+                    SportModel::where('data_id', $item['fixture']['id'])->update($sport_data);
+                }
 
-                    //更新或创建球队和联赛信息
-                    SportModel::addSportTeam($sport_data);
-                    SportModel::addSportLeague($item['league']);
+                //更新或创建球队和联赛信息
+                SportModel::addSportTeam($sport_data);
+                SportModel::addSportLeague($item['league']);
 
-                    //比赛结束,插入比赛事件
-                    if (isset($sport_data['state']) && $sport_data['state'] == 2 && !empty($item['events'])) {
-                        foreach($item['events'] as $event) {
-                            SportEvent::create([
-                                'data_id' => $item['fixture']['id'],
-                                'type' => $event['type'],
-                                'time_elapsed' => $event['time']['elapsed'],
-                                'time' => json_encode($event['time']),
-                                'detail' => $event['detail'],
-                                'player' => $event['player'] ? json_encode($event['player']) : $event['player'],
-                                'team_id' => $event['team']['id'],
-                                'comments' => $event['comments'],
-                                'assist' => $event['assist'] ? json_encode($event['assist']) : $event['assist'],
-                            ]);
-                        }
-        
+                //比赛结束,插入比赛事件
+                if (isset($sport_data['state']) && $sport_data['state'] == 2 && !empty($item['events'])) {
+                    foreach($item['events'] as $event) {
+                        SportEvent::create([
+                            'data_id' => $item['fixture']['id'],
+                            'type' => $event['type'],
+                            'time_elapsed' => $event['time']['elapsed'],
+                            'time' => json_encode($event['time']),
+                            'detail' => $event['detail'],
+                            'player' => $event['player'] ? json_encode($event['player']) : $event['player'],
+                            'team_id' => $event['team']['id'],
+                            'comments' => $event['comments'],
+                            'assist' => $event['assist'] ? json_encode($event['assist']) : $event['assist'],
+                        ]);
                     }
+    
                 }
-                if ($tableData) {
-                    SportModel::insert($tableData);
-                }
+            }
+            if ($tableData) {
+                SportModel::insert($tableData);
             }
         }