|
|
@@ -115,13 +115,18 @@ class SportOdds extends Command
|
|
|
$data = $data['response'];
|
|
|
foreach($data as $item) {
|
|
|
$data_id = $item['fixture']['id'];
|
|
|
- $odds = $this->doOdds($item['odds']);
|
|
|
+ $sport_info = SportModel::where('data_id',$data_id)->select('odds','odd_ids_locked')->first();
|
|
|
+ $old_odd_ids_locked = $sport_info['odd_ids_locked'];
|
|
|
+ $odds_data = $this->doOdds($item['odds'], $sport_info['odds']);
|
|
|
+ $odds = $odds_data['odds'];
|
|
|
$odds = !empty($odds) ? json_encode($odds) : null;
|
|
|
+ $odd_ids_locked = array_merge($old_odd_ids_locked, $odds_data['odd_ids_locked']);
|
|
|
|
|
|
$update_data = [
|
|
|
'is_send' => 0,
|
|
|
'is_roll' => 1,
|
|
|
'is_locked' => 0,
|
|
|
+ 'odd_ids_locked' => array_unique($odd_ids_locked),
|
|
|
'odds' => $odds,
|
|
|
'error' => 0, //异常类型:0正常;1直播赔率的赛事时异常
|
|
|
];
|
|
|
@@ -129,7 +134,6 @@ class SportOdds extends Command
|
|
|
if (isset($item['fixture']['status']['long']) ) {
|
|
|
// $long = $item['fixture']['status']['long'];
|
|
|
// if (isset($this->fixture_status[$long])) {
|
|
|
-
|
|
|
$sport_info = SportModel::where('data_id',$data_id)->first();
|
|
|
$fixture_status = $sport_info['fixture_status'] ? json_decode($sport_info['fixture_status'],true) : [];
|
|
|
|
|
|
@@ -147,9 +151,7 @@ class SportOdds extends Command
|
|
|
$update_data['error'] = 0;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
// }
|
|
|
-
|
|
|
}
|
|
|
|
|
|
//锁盘
|
|
|
@@ -191,13 +193,15 @@ class SportOdds extends Command
|
|
|
}
|
|
|
|
|
|
//去掉无效的赔率
|
|
|
- private function doOdds($odds) {
|
|
|
+ private function doOdds($odds, $old_odds) {
|
|
|
// 1. 获取赔率,缓存数据
|
|
|
$sport_odds = cache('sport_odds');
|
|
|
if (!$sport_odds) {
|
|
|
$sport_odds = SportOddsModel::where('function_name', '<>', null)->get()->toArray();
|
|
|
Cache::set('sport_odds', $sport_odds, 300); //有效期5分钟
|
|
|
}
|
|
|
+ $old_odds = $old_odds ? json_decode($old_odds, true) : [];
|
|
|
+ $odds_ids = []; //新的玩法id集合
|
|
|
|
|
|
$sport_odds = array_column($sport_odds, null,'odd_name_en');
|
|
|
$new_odds = [];
|
|
|
@@ -206,8 +210,20 @@ class SportOdds extends Command
|
|
|
continue;
|
|
|
}
|
|
|
$new_odds[] = $item;
|
|
|
+ $odds_ids[] = $item['id'];
|
|
|
+ }
|
|
|
+ $odd_ids_locked = [];
|
|
|
+ foreach($old_odds as $item) {
|
|
|
+ if (!in_array($item['id'], $odds_ids)) {
|
|
|
+ $new_odds[] = $item;
|
|
|
+ //历史玩法如果没有了,数据保存,加锁
|
|
|
+ $odd_ids_locked[] = $item['id'];
|
|
|
+ }
|
|
|
}
|
|
|
- return $new_odds;
|
|
|
+ return [
|
|
|
+ 'odds' => $new_odds,
|
|
|
+ 'odd_ids_locked' => $odd_ids_locked,
|
|
|
+ ];
|
|
|
}
|
|
|
|
|
|
}
|