lip 1 неделя назад
Родитель
Сommit
7dacce9080

+ 103 - 23
app/Console/Commands/Sport.php

@@ -107,36 +107,116 @@ class Sport extends Command
     {
         $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_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' => "{$item['score']['fulltime']['home']}-{$item['goals']['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'],
+                'updated_at' => now(),
+            ];
+            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);
             }
         }
-        Sport::insert($tableData);
+        if ($tableData) {
+            SportModel::insert($tableData);
+        }
         return $tableData;
     }
 
+      // 核心响应数据:赛事列表(数组形式,每个元素对应一场赛事)
+//   "response": [
+//     {
+//       // 赛事基础信息
+//       "fixture": {
+//         "id": 239625,                // 赛事唯一ID
+//         "referee": null,             // 主裁判姓名(null表示暂无数据)
+//         "timezone": "UTC",           // 赛事时间所属时区
+//         "date": "2020-02-06T14:00:00+00:00", // 赛事开始时间(ISO 8601格式)
+//         "timestamp": 1580997600,     // 赛事开始时间戳(秒级)
+//         "periods": {                 // 赛事时段时间戳
+//           "first": 1580997600,       // 上半场开始时间戳
+//           "second": null             // 下半场开始时间戳(null表示尚未开始)
+//         },
+//         "venue": {                   // 赛事场馆信息
+//           "id": 1887,                // 场馆唯一ID
+//           "name": "Stade Municipal", // 场馆名称
+//           "city": "Oued Zem"         // 场馆所在城市
+//         },
+//         "status": {                  // 赛事当前状态
+//           "long": "Halftime",        // 状态描述(长文本):半场休息
+//           "short": "HT",             // 状态缩写:HT=Halftime(半场)
+//           "elapsed": 45,             // 已进行时长(分钟):45分钟(半场结束)
+//           "extra": null              // 补时/加时时长(null表示无)
+//         }
+//       },
+//       // 联赛信息
+//       "league": {
+//         "id": 200,                           // 联赛唯一ID
+//         "name": "Botola Pro",                // 联赛名称:摩洛哥职业足球甲级联赛
+//         "country": "Morocco",                // 联赛所属国家
+//         "logo": "https://media.api-sports.io/football/leagues/115.png", // 联赛logo地址
+//         "flag": "https://media.api-sports.io/flags/ma.svg",             // 国家旗帜地址
+//         "season": 2019,                      // 赛事赛季:2019/2020赛季(通常取首年)
+//         "round": "Regular Season - 14"       // 联赛轮次:常规赛第14轮
+//       },
+//       // 参赛球队信息
+//       "teams": {
+//         "home": {                           // 主队信息
+//           "id": 967,                        // 主队ID
+//           "name": "Rapide Oued ZEM",        // 主队名称
+//           "logo": "https://media.api-sports.io/football/teams/967.png", // 主队logo地址
+//           "winner": false                   // 是否获胜:false(半场暂时落后)
+//         },
+//         "away": {                           // 客队信息
+//           "id": 968,                        // 客队ID
+//           "name": "Wydad AC",               // 客队名称
+//           "logo": "https://media.api-sports.io/football/teams/968.png", // 客队logo地址
+//           "winner": true                    // 是否获胜:true(半场暂时领先)
+//         }
+//       },
+//       // 进球数(当前已产生的总进球数)
+//       "goals": {
+//         "home": 0,  // 主队进球数
+//         "away": 1   // 客队进球数
+//       },
+//       // 比分详情(不同时段的比分)
+//       "score": {
+//         "halftime": {       // 半场比分
+//           "home": 0,        // 主队半场进球
+//           "away": 1         // 客队半场进球
+//         },
+//         "fulltime": {       // 全场比分(null表示赛事未结束)
+//           "home": null,
+//           "away": null
+//         },
+//         "extratime": {      // 加时赛比分(null表示无加时/未进行)
+//           "home": null,
+//           "away": null
+//         },
+//         "penalty": {        // 点球大战比分(null表示无点球/未进行)
+//           "home": null,
+//           "away": null
+//         }
+//       }
+
 }

+ 1 - 0
app/Console/Commands/SportOdds.php

@@ -30,6 +30,7 @@ class SportOdds extends Command
     public function handle()
     {
         $this->is_roll = $this->argument('is_roll');
+
         if ($this->is_roll == 1) {
             $this->info('滚球开始执行赔率任务...');
             $this->sportOddsData($this->is_roll);

+ 1 - 0
app/Http/Controllers/admin/Config.php

@@ -33,6 +33,7 @@ class Config extends Controller
             $params = request()->validate([
                 'val' => ['required', 'integer', 'min:0', 'in:0,1']
             ]);
+            ConfigModel::updateOrCreate(['field' => 'pc28_switch'], ['val' => $params['val']]);
             Cache::put('pc28_switch', $params['val']);
         } catch (ValidationException $e) {
             return $this->error(HttpStatus::VALIDATION_FAILED, $e->validator->errors()->first());

+ 5 - 0
app/Http/Controllers/admin/Wallet.php

@@ -284,6 +284,11 @@ class Wallet extends Controller
             ]);
             $search = request()->all();
             $result = RechargeService::paginate($search);
+            foreach($result['data'] as &$item) {
+                if ($item['from'] == 2) {
+                    $item['image'] = str_replace(env('APP_URL'), env('FOOTBALL_APP_URL').'/', $item['image']);
+                }
+            }
         } catch (ValidationException $e) {
             return $this->error(HttpStatus::CUSTOM_ERROR, $e->validator->errors()->first());
         } catch (Exception $e) {

+ 3 - 3
app/Http/Controllers/api/PcIssue.php

@@ -45,7 +45,7 @@ class PcIssue extends BaseController
         } else {
             //pc28
             $issueController = new Issue();
-        }  $issueController = new NewPc();
+        }  
         return $issueController->history();
     }
 
@@ -71,9 +71,9 @@ class PcIssue extends BaseController
      */
     public function countdown(): JsonResponse
     {
+        //0:pc28 1:急速28
         $pc28Switch = Config::where('field', 'pc28_switch')->first()->val;
         if ($pc28Switch == 1) {
-            //pc28分分彩/极速28
             $issueController = new NewPc();
         } else {
             //pc28
@@ -88,9 +88,9 @@ class PcIssue extends BaseController
      */
     public function index()
     {
+        //0:pc28 1:急速28
         $pc28Switch = Config::where('field', 'pc28_switch')->first()->val;
         if ($pc28Switch == 1) {
-            //pc28分分彩/极速28
             $issueController = new NewPc();
         } else {
             //pc28