lip 2 주 전
부모
커밋
9da01d9913

+ 1 - 1
app/Console/Commands/Sport.php

@@ -194,7 +194,7 @@ class Sport extends Command
             $info = SportModel::where('data_id', $item['fixture']['id'])->first();
             $info = SportModel::where('data_id', $item['fixture']['id'])->first();
             
             
             $fixture_status = null;
             $fixture_status = null;
-            if (empty($info->is_roll) && isset($item['fixture']['status']['long']) ) {
+            if (isset($item['fixture']['status']['long']) ) {
                 $long = $item['fixture']['status']['long'];
                 $long = $item['fixture']['status']['long'];
                 if (isset($this->fixture_status[$long])) {
                 if (isset($this->fixture_status[$long])) {
                     $fixture_status = json_encode($item['fixture']['status']);
                     $fixture_status = json_encode($item['fixture']['status']);

+ 30 - 11
app/Console/Commands/SportOdds.php

@@ -86,7 +86,7 @@ class SportOdds extends Command
             //直播赔率(获取正在直播的所有赛事的赔率)
             //直播赔率(获取正在直播的所有赛事的赔率)
             if ($is_live == 1) {
             if ($is_live == 1) {
                 $data = SportClientService::oddsLive([]);
                 $data = SportClientService::oddsLive([]);
-                // file_put_contents("oddsLive.json",json_encode($data));
+                file_put_contents("oddsLive.json",json_encode($data));
                 $this->updateOddsLive($data);
                 $this->updateOddsLive($data);
             } else {
             } else {
                 //普通球赛是开赛前购买,更新数据
                 //普通球赛是开赛前购买,更新数据
@@ -119,22 +119,42 @@ class SportOdds extends Command
                     'is_send' => 0,
                     'is_send' => 0,
                     'is_roll' => 1,
                     'is_roll' => 1,
                     'is_locked' => 0,
                     'is_locked' => 0,
+                    'odds' => $odds
                 ];
                 ];
-                $fixture_status = null;
+                $odd_fixture_status = null;//直播赔率中的赛事时间和状态(与直播赛事信息中的赛事时间和状态存在较大差异)
                 if (isset($item['fixture']['status']['long']) ) {
                 if (isset($item['fixture']['status']['long']) ) {
                     $long = $item['fixture']['status']['long'];
                     $long = $item['fixture']['status']['long'];
                     if (isset($this->fixture_status[$long])) {
                     if (isset($this->fixture_status[$long])) {
-                        $fixture_status = json_encode($item['fixture']['status']);
-                        $update_data['fixture_status'] = $fixture_status;
+                        
+                        $sport_info = SportModel::where('data_id',$data_id)->first();
+                        $fixture_status = $sport_info['fixture_status'] ? json_decode($sport_info['fixture_status'],true) : [];
+                        
+                        $odd_fixture_status = $item['fixture']['status'];
+                        $update_data['odd_fixture_status'] = json_encode($odd_fixture_status);
+                        
+                        //如果时间差距超过3分钟,则锁盘,不超过3分钟就解锁
+                        if (isset($fixture_status['elapsed']) && isset($odd_fixture_status['elapsed'])) {
+                            if (abs($fixture_status['elapsed'] - $odd_fixture_status['elapsed']) > 3) {
+                                $odds = $sport_info['odds'] ? json_decode($sport_info['odds'],true) : null;
+                                $odds_ids = [];
+                                foreach($odds as $odd) {
+                                    $odds_ids[] = $odd['id'];
+                                }
+                                $update_data['odd_ids_locked'] = json_encode($odds_ids);
+                                unset($update_data['odds']);//不更新赔率
+                            } else {
+                                $update_data['odd_ids_locked'] = null;
+                            }
+                        }
                     } 
                     } 
                     
                     
-                    if (isset($this->long_status[$long])) {
-                        $update_data['state'] = $this->long_status[$long];
-                    }
-                }
-                if (isset($item['teams']['home']['goals'])) {
-                    $update_data['score'] = $item['teams']['home']['goals'] ."-". $item['teams']['away']['goals'];
+                    // if (isset($this->long_status[$long])) {
+                    //     $update_data['state'] = $this->long_status[$long];
+                    // }
                 }
                 }
+                // if (isset($item['teams']['home']['goals'])) {
+                //     $update_data['score'] = $item['teams']['home']['goals'] ."-". $item['teams']['away']['goals'];
+                // }
                 
                 
                 //锁盘
                 //锁盘
                 if (isset($item['fixture']['status']['blocked']) && $item['fixture']['status']['blocked']) {
                 if (isset($item['fixture']['status']['blocked']) && $item['fixture']['status']['blocked']) {
@@ -156,7 +176,6 @@ class SportOdds extends Command
                     $update_data['refund_status'] = 1;
                     $update_data['refund_status'] = 1;
                 }
                 }
 
 
-                $update_data['odds'] = $odds;
                 SportModel::where('data_id',$data_id)->update($update_data);
                 SportModel::where('data_id',$data_id)->update($update_data);
                 // echo $data_id.": 更新成功\r\n";
                 // echo $data_id.": 更新成功\r\n";
             }
             }

+ 1 - 1
app/Http/Controllers/admin/LhcOrder.php

@@ -120,7 +120,7 @@ class LhcOrder extends Controller
                 $walletInfo->save();
                 $walletInfo->save();
                 
                 
                 FundsRecord::addData([
                 FundsRecord::addData([
-                    'change_type' => '退款',
+                    'change_type' => '六合彩退款',
                     'amount' => $order->amount,
                     'amount' => $order->amount,
                     'before_balance' => $before,
                     'before_balance' => $before,
                     'after_balance' => $after,
                     'after_balance' => $after,

+ 1 - 1
app/Http/Controllers/admin/Order.php

@@ -46,7 +46,7 @@ class Order extends Controller
                 $walletInfo->save();
                 $walletInfo->save();
                 
                 
                 FundsRecord::addData([
                 FundsRecord::addData([
-                    'change_type' => '退款',
+                    'change_type' => '体彩退款',
                     'amount' => $order->amount,
                     'amount' => $order->amount,
                     'before_balance' => $before,
                     'before_balance' => $before,
                     'after_balance' => $after,
                     'after_balance' => $after,

+ 15 - 4
app/Http/Controllers/admin/Sport.php

@@ -142,17 +142,28 @@ class Sport extends Controller
         try {
         try {
             $params = request()->validate([
             $params = request()->validate([
                 'id' => ['required','integer'],
                 'id' => ['required','integer'],
-                'odd_id' => ['required','integer'],
+                'odd_id' => ['nullable','integer'],
             ]);
             ]);
             $id = $params['id'];
             $id = $params['id'];
             $info = SportModel::where('id', $id)->first();
             $info = SportModel::where('id', $id)->first();
             if (!$info) throw new Exception('赛事不存在');
             if (!$info) throw new Exception('赛事不存在');
 
 
             $odd_ids_locked = $info->odd_ids_locked ? json_decode($info->odd_ids_locked, true) : [];
             $odd_ids_locked = $info->odd_ids_locked ? json_decode($info->odd_ids_locked, true) : [];
-            if (in_array($params['odd_id'], $odd_ids_locked)) {
-                $odd_ids_locked = array_diff($odd_ids_locked, [$params['odd_id']]);
+            if (empty($params['odd_id'])) {
+                if (empty($odd_ids_locked) && !empty($info->odds)) {
+                    $odds = json_decode($info->odds, true);
+                    foreach ($odds as $odd) {
+                        $odd_ids_locked[] = $odd['id'];
+                    }
+                } else {
+                    $odd_ids_locked = [];
+                }
             } else {
             } else {
-                $odd_ids_locked[] = $params['odd_id'];
+                if (in_array($params['odd_id'], $odd_ids_locked)) {
+                    $odd_ids_locked = array_diff($odd_ids_locked, [$params['odd_id']]);
+                } else {
+                    $odd_ids_locked[] = $params['odd_id'];
+                }
             }
             }
             $info->odd_ids_locked = json_encode($odd_ids_locked);
             $info->odd_ids_locked = json_encode($odd_ids_locked);
             $info->is_send = 0;
             $info->is_send = 0;

+ 1 - 0
app/Models/Sport.php

@@ -11,6 +11,7 @@ class Sport extends BaseModel
     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', 
     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_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','refund_status'];
     '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'];
+    protected $hidden = [];
     
     
     public static function getLongStatus($status){
     public static function getLongStatus($status){
         $long_status = [
         $long_status = [

+ 3 - 1
app/Services/RebateService.php

@@ -92,7 +92,9 @@ class RebateService extends BaseService
     //更新有效投注额
     //更新有效投注额
     public static function updateEffectiveBettingAmount($rebate, $amount): void
     public static function updateEffectiveBettingAmount($rebate, $amount): void
     {
     {
-        $rebate->increment('effective_betting_amount', $amount);
+        if ($rebate) {
+            $rebate->increment('effective_betting_amount', $amount);
+        }
     }
     }
 
 
     //笔笔返 根据某天的有效投注额,和反水比例,进行笔笔返
     //笔笔返 根据某天的有效投注额,和反水比例,进行笔笔返