$sport_id) { $url = $base_url.$magloo_sport_id.'/odds'; $data = Curl::load($url); if (! is_array($data) or \count($data) == 0) { Notice::note('no data in feed', 'r', 1); return; } foreach ($data as $match) { $betradar_id = (int) preg_replace('/\D/', '', $match['p']); $starttime = Carbon::parse($match['dt'])->toDateTimeString(); $event_id = Event::where('betradar_id', $betradar_id)->value('id'); if ($event_id) { $base = []; $base['sport_id'] = $sport_id; $base['provider_id'] = Nuh::$options['provider_id']; $base['bmoid'] = preg_replace('/\D/', '', $match['i']); $base['flag'] = 1; $event_id_collector[] = $event_id; EventBookmaker::updateOrCreate([ 'event_id' => $event_id, 'bookmaker_id' => $bookmaker_id, ], ['in_feed' => 1, 'bmoid' => $base['bmoid']]); foreach ($match['M'] as $magloo_bettype_id => $value) { switch ($magloo_bettype_id) { case 1: // 1x2 $odds = []; $odds['h3w'] = $value['static'][1] ?? 1; $odds['d3w'] = $value['static'][2] ?? 1; $odds['a3w'] = $value['static'][3] ?? 1; $odds['margin'] = (float) Margin::calculate($odds, 1); $odds['starttime'] = $starttime; Odds3way::updateOrCreate([ 'event_id' => $event_id, 'bookmaker_id' => $bookmaker_id, ], $base + $odds); break; case 2: // to qalify $odds = []; $odds['htq'] = $value['static'][4] ?? 1; $odds['atq'] = $value['static'][5] ?? 1; $odds['margin'] = (float) Margin::calculate($odds, 1); OddsTq::updateOrCreate([ 'event_id' => $event_id, 'bookmaker_id' => $bookmaker_id, ], $base + $odds); break; case 10: // double chance $odds = []; $odds['dc1x'] = $value['static'][9] ?? 1; $odds['dc12'] = $value['static'][10] ?? 1; $odds['dcx2'] = $value['static'][11] ?? 1; $odds['margin'] = (float) Margin::calculate($odds, 1); OddsDc::updateOrCreate([ 'event_id' => $event_id, 'bookmaker_id' => $bookmaker_id, ], $base + $odds); break; case 10: // ggng $odds = []; $odds['gg'] = $value['static'][74] ?? 1; $odds['ng'] = $value['static'][76] ?? 1; $odds['margin'] = (float) Margin::calculate($odds, 1); OddsDc::updateOrCreate([ 'event_id' => $event_id, 'bookmaker_id' => $bookmaker_id, ], $base + $odds); break; case 16: // points $odds = FilterHandicap::get($value); $odds['starttime'] = $starttime; OddsHandicap::updateOrCreate([ 'event_id' => $event_id, 'bookmaker_id' => $bookmaker_id, ], $base + $odds); break; case 2000: // points qt $odds = FilterHandicap::get($value); OddsHandicap::updateOrCreate([ 'event_id' => $event_id, 'bookmaker_id' => $bookmaker_id, ], $base + $odds); break; case 2025: // points qt $odds = FilterHandicapQ1::get($value); OddsHandicapQ1::updateOrCreate([ 'event_id' => $event_id, 'bookmaker_id' => $bookmaker_id, ], $base + $odds); break; case 17: case 2002: // totals $odds = FilterTotals::get($value, $sport_id); OddsTotal::updateOrCreate([ 'event_id' => $event_id, 'bookmaker_id' => $bookmaker_id, ], $base + $odds); break; case 2012: // totals qt $odds = FilterTotalsQ1::get($value, $sport_id); OddsTotalQ1::updateOrCreate([ 'event_id' => $event_id, 'bookmaker_id' => $bookmaker_id, ], $base + $odds); break; } } } } } EventBookmaker::whereNotIn('event_id', $event_id_collector) ->where('bookmaker_id', $bookmaker_id) ->update(['in_feed' => 0]); } }