lip пре 3 дана
родитељ
комит
a929bafe96

+ 7 - 8
app/Console/Commands/Sport.php

@@ -99,13 +99,6 @@ class Sport extends Command
             //未开始的赛事拉取
             $this->fixtures();
         } elseif ($this->is_live == 2){
-            // $data = SportClientService::fixtures([
-            //     'id' => 1506065,
-            // ]);
-            // file_put_contents("1506065.json", json_encode($data));
-            // print_r($data);
-            // die;
-            
             $this->checkLiveFixtures();
             //$this->updateOvertimeFixtures();
         } elseif ($this->is_live == 3) {
@@ -239,6 +232,11 @@ class Sport extends Command
             if (isset($item['fixture']['status']['finished']) && $item['fixture']['status']['finished']) {
                 $sport_data['state'] = 2;
             }
+
+            //如果赛事取消、延期等,标记需要退款
+            if ($sport_data['state'] > 2) {
+                $sport_data['refund_status'] = 1;
+            }
             
             $info = SportModel::where('data_id', $item['fixture']['id'])->first();
             if (!$info) {
@@ -326,7 +324,7 @@ class Sport extends Command
                         SportModel::where('data_id', $item['fixture']['id'])->update($sport_data);
                     }
                     //比赛结束,插入比赛事件
-                    if ($sport_data['state'] >= 2 && !empty($item['events'])) {
+                    if ($sport_data['state'] == 2 && !empty($item['events'])) {
                         foreach($item['events'] as $event) {
                             SportEvent::create([
                                 'data_id' => $item['fixture']['id'],
@@ -340,6 +338,7 @@ class Sport extends Command
                                 'assist' => $event['assist'] ? json_encode($event['assist']) : $event['assist'],
                             ]);
                         }
+        
                     }
                 }
                 if ($tableData) {

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

@@ -154,6 +154,11 @@ class SportOdds extends Command
                 if (isset($item['fixture']['status']['finished']) && $item['fixture']['status']['finished']) {
                     $update_data['state'] = 2;
                 }
+                //如果赛事取消、延期等,标记需要退款
+                if (isset($update_data['state']) && $update_data['state'] > 2) {
+                    $update_data['refund_status'] = 1;
+                }
+
                 $update_data['odds'] = $odds;
                 SportModel::where('data_id',$data_id)->update($update_data);
                 echo $data_id.": 更新成功\r\n";

+ 33 - 1
app/Http/Controllers/admin/Sport.php

@@ -7,6 +7,8 @@ use App\Models\Sport as SportModel;
 use App\Models\SportEvent;
 use Exception;
 use App\Constants\HttpStatus;
+use App\Services\SportClientService;
+
 
 class Sport extends Controller
 {
@@ -115,7 +117,11 @@ class Sport extends Controller
             ]);
             $id = $params['id'];
             if (isset($params['state']) && $params['state'] !== null) {
-                SportModel::whereIn('id', $id)->update(['state' => $params['state']]);
+                $update_data = ['state' => $params['state']];
+                if ($params['state'] > 2) {
+                    $update_data['refund_status'] = 1;
+                }
+                SportModel::whereIn('id', $id)->update($update_data);
             }
             if (isset($params['is_locked']) && $params['is_locked'] !== null) {
                 SportModel::whereIn('id', $id)->update(['is_locked' => $params['is_locked']]);
@@ -155,4 +161,30 @@ class Sport extends Controller
         }
     }
 
+    public function getFixtures()
+    {
+        $params = request()->validate([
+            'data_id' => ['required'],
+        ]);
+        $data_id = $params['data_id'];
+        $data = SportClientService::fixtures([
+            'id' => $data_id,
+        ]);
+        $data = !empty($data['response'][0]) ? $data['response'][0] : [];
+        $result = [];
+        if (!empty($data['fixture'])) {
+            $result['fixture'] = $data['fixture'];
+        }
+        if (!empty($data['goals'])) {
+            $result['goals'] = $data['goals'];
+        }
+        if (!empty($data['score'])) {
+            $result['score'] = $data['score'];
+        }
+        if (!empty($data['events'])) {
+            $result['events'] = $data['events'];
+        }
+        return $this->success($result);
+    }
+
 }

+ 1 - 1
app/Models/Sport.php

@@ -7,6 +7,6 @@ class Sport extends BaseModel
     protected $table = 'sport';
     protected $fillable = ['data_id', 'home_team_id', 'home_team_en', 'home_team', 'home_team_logo', 'guest_team_id', 'guest_team_en', 'guest_team', 'guest_team_logo', 'half_score', 'rbt', 
     'is_roll', 'score', 'league_en','league','odds','state','game_time','status','handicap_limit','over_under_limit','duying_limit','correct_core_limit','odd_even_limit','total_goal_limit',
-    'is_handicap', 'is_over_under','is_duying','is_correct_core','is_odd_even','is_total_goal','is_locked','fixture_status','is_send','odd_ids_locked','is_refund'];
+    'is_handicap', 'is_over_under','is_duying','is_correct_core','is_odd_even','is_total_goal','is_locked','fixture_status','is_send','odd_ids_locked','refund_status'];
  
 }

+ 1 - 0
routes/admin.php

@@ -251,6 +251,7 @@ Route::middleware(['admin.jwt'])->group(function () {
             Route::get('/info', [Sport::class, 'info']);
             Route::post('/setStatus', [Sport::class, 'setStatus']);
             Route::post('/setOddsLocked', [Sport::class, 'setOddsLocked']);
+            Route::post('/getFixtures', [Sport::class, 'getFixtures']);
         });