lip 1 周之前
父節點
當前提交
0477c48daa

+ 27 - 15
app/Console/Commands/Sport.php

@@ -237,7 +237,7 @@ class Sport extends Command
             if (!$info) {
             if (!$info) {
                 $sport_data['created_at'] = date('Y-m-d H:i:s');
                 $sport_data['created_at'] = date('Y-m-d H:i:s');
                 $sport_data['status'] = 1;
                 $sport_data['status'] = 1;
-                $sport_datap['home_team'] = SportTeam::getTeamName($sport_data['home_team_id']);
+                $sport_data['home_team'] = SportTeam::getTeamName($sport_data['home_team_id']);
                 $sport_data['guest_team'] = SportTeam::getTeamName($sport_data['guest_team_id']);
                 $sport_data['guest_team'] = SportTeam::getTeamName($sport_data['guest_team_id']);
                 $sport_data['league'] = SportLeague::getLeagueName($sport_data['league_en']);
                 $sport_data['league'] = SportLeague::getLeagueName($sport_data['league_en']);
                 $tableData[] = $sport_data;
                 $tableData[] = $sport_data;
@@ -252,15 +252,25 @@ class Sport extends Command
                     $this->insertSportEvents($data_id, $item['events']);
                     $this->insertSportEvents($data_id, $item['events']);
                 }
                 }
                 //比赛结束,插入比赛事件
                 //比赛结束,插入比赛事件
-                if (!empty($item['statistics'])) {
-                    $this->insertSportStatistics($data_id, $item['statistics']);
-                } else {
-                    $data = SportClientService::statistics(['fixture' => $data_id]);
-                    file_put_contents("fixturesStatistics.json", json_encode($data));
-                    $statistics = empty($data['response'][0]['statistics']) ? [] : $data['response'][0]['statistics'];
-                    $this->insertSportStatistics($data_id, $statistics);
+                $data = SportClientService::statistics(['fixture' => $data_id,'half' => 'true']);
+                // file_put_contents("fixturesStatistics.json", json_encode($data));
+                $statistics_data = empty($data['response']) ? [] : $data['response'];
+                foreach($statistics_data as $item) {
+                $team_id = $item['team']['id'];
+                //上半场的数据
+                if(!empty($item['statistics_1h'])) {
+                    $statistics_1h = $item['statistics_1h'];
+                    $this->insertSportStatistics($data_id, $team_id, $statistics_1h, 1); 
+                }
+                //下半场的数据
+                if(!empty($item['statistics_2h'])) {
+                    $statistics_2h = $item['statistics_2h'];
+                    $this->insertSportStatistics($data_id, $team_id, $statistics_2h, 2); 
                 }
                 }
             }
             }
+
+                
+            }
         }
         }
         if ($tableData) {
         if ($tableData) {
             SportModel::insert($tableData);
             SportModel::insert($tableData);
@@ -318,13 +328,13 @@ class Sport extends Command
                 if (!SportModel::where('data_id', $item['fixture']['id'])->exists()) {
                 if (!SportModel::where('data_id', $item['fixture']['id'])->exists()) {
                     $sport_data['created_at'] = now();
                     $sport_data['created_at'] = now();
                     
                     
-                    $sport_datap['home_team'] = SportTeam::getTeamName($sport_data['home_team_id']);
+                    $sport_data['home_team'] = SportTeam::getTeamName($sport_data['home_team_id']);
                     $sport_data['guest_team'] = SportTeam::getTeamName($sport_data['guest_team_id']);
                     $sport_data['guest_team'] = SportTeam::getTeamName($sport_data['guest_team_id']);
                     $sport_data['league'] = SportLeague::getLeagueName($sport_data['league_en']);
                     $sport_data['league'] = SportLeague::getLeagueName($sport_data['league_en']);
                     $tableData[] = $sport_data;
                     $tableData[] = $sport_data;
                 } else {
                 } else {
                     
                     
-                    $sport_datap['home_team'] = SportTeam::getTeamName($sport_data['home_team_id']);
+                    $sport_data['home_team'] = SportTeam::getTeamName($sport_data['home_team_id']);
                     $sport_data['guest_team'] = SportTeam::getTeamName($sport_data['guest_team_id']);
                     $sport_data['guest_team'] = SportTeam::getTeamName($sport_data['guest_team_id']);
                     $sport_data['league'] = SportLeague::getLeagueName($sport_data['league_en']);
                     $sport_data['league'] = SportLeague::getLeagueName($sport_data['league_en']);
                     SportModel::where('data_id', $item['fixture']['id'])->update($sport_data);
                     SportModel::where('data_id', $item['fixture']['id'])->update($sport_data);
@@ -421,7 +431,7 @@ class Sport extends Command
     }
     }
 
 
     //插入比赛统计数据
     //插入比赛统计数据
-    public function insertSportStatistics($data_id, $statistics)
+    public function insertSportStatistics($data_id, $team_id, $statistics, $half)
     { 
     { 
         $insertData = [];
         $insertData = [];
         foreach($statistics as $item) {
         foreach($statistics as $item) {
@@ -479,10 +489,12 @@ class Sport extends Command
                         break;
                         break;
                 }
                 }
             }
             }
-            if ($insertData) {
-                $insertData['data_id'] = $data_id;
-                SportStatistics::create($insertData);
-            }
+        }
+        if ($insertData) {
+            $insertData['data_id'] = $data_id;
+            $insertData['team_id'] = $team_id;
+            $insertData['half'] = $half;
+            SportStatistics::create($insertData);
         }
         }
     }
     }
 }
 }

+ 2 - 1
app/Models/SportStatistics.php

@@ -5,5 +5,6 @@ namespace App\Models;
 class SportStatistics extends BaseModel
 class SportStatistics extends BaseModel
 {
 {
     protected $table = 'sport_statistics';
     protected $table = 'sport_statistics';
-    protected $fillable = ['data_id', 'shots_on_goal', 'shots_off_goal', 'shots_insidebox', 'shots_outsidebox', 'total_shots', 'blocked_shots', 'fouls', 'corner_kicks', 'offsides', 'ball_possession', 'yellow_cards', 'red_cards', 'goalkeeper_saves', 'total_passes', 'passes_accurate', 'passes_percent'];
+    protected $fillable = ['data_id', 'team_id', 'half', 'shots_on_goal', 'shots_off_goal', 'shots_insidebox', 'shots_outsidebox', 'total_shots', 'blocked_shots', 'fouls', 'corner_kicks', 'offsides', 'ball_possession', 'yellow_cards', 'red_cards', 'goalkeeper_saves', 'total_passes', 'passes_accurate', 'passes_percent'];
+
 }
 }

+ 1 - 1
app/Services/SportClientService.php

@@ -93,6 +93,6 @@ class SportClientService
     //赛事统计数据
     //赛事统计数据
     public static function statistics($params = [])
     public static function statistics($params = [])
     {
     {
-        return self::get('statistics', $params);
+        return self::get('fixtures/statistics', $params);
     }
     }
 }
 }

File diff suppressed because it is too large
+ 0 - 0
fixturesStatistics-2.json


+ 1 - 0
fixturesStatistics.json

@@ -0,0 +1 @@
+{"get":"fixtures\/statistics","parameters":{"fixture":"1386532"},"errors":[],"results":2,"paging":{"current":1,"total":1},"response":[{"team":{"id":1844,"name":"Salford City","logo":"https:\/\/media.api-sports.io\/football\/teams\/1844.png"},"statistics":[{"type":"Shots on Goal","value":4},{"type":"Shots off Goal","value":4},{"type":"Total Shots","value":9},{"type":"Blocked Shots","value":1},{"type":"Shots insidebox","value":4},{"type":"Shots outsidebox","value":5},{"type":"Fouls","value":5},{"type":"Corner Kicks","value":6},{"type":"Offsides","value":0},{"type":"Ball Possession","value":"49%"},{"type":"Yellow Cards","value":2},{"type":"Red Cards","value":null},{"type":"Goalkeeper Saves","value":3},{"type":"Total passes","value":318},{"type":"Passes accurate","value":200},{"type":"Passes %","value":"63%"},{"type":"expected_goals","value":null},{"type":"goals_prevented","value":null}]},{"team":{"id":1832,"name":"Bromley","logo":"https:\/\/media.api-sports.io\/football\/teams\/1832.png"},"statistics":[{"type":"Shots on Goal","value":3},{"type":"Shots off Goal","value":6},{"type":"Total Shots","value":12},{"type":"Blocked Shots","value":3},{"type":"Shots insidebox","value":7},{"type":"Shots outsidebox","value":5},{"type":"Fouls","value":12},{"type":"Corner Kicks","value":4},{"type":"Offsides","value":3},{"type":"Ball Possession","value":"51%"},{"type":"Yellow Cards","value":1},{"type":"Red Cards","value":null},{"type":"Goalkeeper Saves","value":2},{"type":"Total passes","value":321},{"type":"Passes accurate","value":197},{"type":"Passes %","value":"61%"},{"type":"expected_goals","value":null},{"type":"goals_prevented","value":null}]}]}

Some files were not shown because too many files changed in this diff