244 lines
8.1 KiB
PHP
244 lines
8.1 KiB
PHP
<?php
|
|
|
|
namespace App\Console\Commands\Grapper;
|
|
|
|
use App\Models\CompetitionGroupProvider;
|
|
use App\Models\ElementProvider;
|
|
use App\Models\Event;
|
|
use App\Models\Mapper;
|
|
use Illuminate\Support\Carbon;
|
|
|
|
class FindFixture
|
|
{
|
|
public static $elements = [];
|
|
|
|
public static $groups = [];
|
|
|
|
public static function search(&$event)
|
|
{
|
|
$match_id = false;
|
|
|
|
$event_id = $event['event_id'];
|
|
|
|
$betradar_id = $event['betradar_id'] ?? 0;
|
|
|
|
$betsapi_id = $event['betsapi_id'] ?? 0;
|
|
|
|
$bet365_id = $event['bet365_id'] ?? 0;
|
|
|
|
$_1xbet_id = $event['_1xbet_id'] ?? 0;
|
|
|
|
$bwin_id = $event['bwin_id'] ?? 0;
|
|
|
|
/*************************************************
|
|
* USE ID
|
|
*************************************************/
|
|
|
|
dd($event);
|
|
|
|
// DEFAULT BETRADAR
|
|
if ($betradar_id) {
|
|
$match_id = Event::where('betradar_id', $betradar_id)->value('id');
|
|
} else {
|
|
switch ($event['provider_id']) {
|
|
case 2:
|
|
// BETSAPI
|
|
$match_id = Event::where('betsapi_id', '=', $event_id)->value('id');
|
|
break;
|
|
case 3:
|
|
// MAGLOO KENIA
|
|
$match_id = Event::where('magken_id', $event_id)->value('id');
|
|
break;
|
|
case 4:
|
|
// MAGLOO NIGERIA
|
|
$match_id = Event::where('magnig_id', $event_id)->value('id');
|
|
break;
|
|
case 5:
|
|
// LOGIFUTUR NIGERA
|
|
$match_id = Event::where('lognig_id', $event_id)->value('id');
|
|
break;
|
|
case 6:
|
|
// LOGIFUTUR COLOMBIA
|
|
$match_id = Event::where('logcol_id', $event_id)->value('id');
|
|
break;
|
|
}
|
|
}
|
|
|
|
if ($match_id) {
|
|
Mapper::where('event_id', $event_id)->delete();
|
|
|
|
$event['id'] = $match_id;
|
|
|
|
return;
|
|
}
|
|
|
|
/*************************************************
|
|
* USE DB
|
|
*************************************************/
|
|
|
|
$home_id = $elements[$event['home_id']] ?? 0;
|
|
|
|
$away_id = $elements[$event['away_id']] ?? 0;
|
|
|
|
$competition_group_id = $groups[$event['group_id']] ?? 0;
|
|
|
|
if (! $home_id) {
|
|
$ele = [];
|
|
$ele['sport_id'] = $event['sport_id'];
|
|
$ele['provider_id'] = $event['provider_id'];
|
|
$ele['element_id'] = $match->home_id ?? 0;
|
|
$ele['name'] = $event['home'];
|
|
ElementProvider::updateOrCreate(['provider_element_id' => (int) $event['home_id']], $ele);
|
|
}
|
|
|
|
if (! $away_id) {
|
|
$ele = [];
|
|
$ele['sport_id'] = $event['sport_id'];
|
|
$ele['provider_id'] = $event['provider_id'];
|
|
$ele['element_id'] = $match->away_id ?? 0;
|
|
$ele['name'] = $event['away'];
|
|
ElementProvider::updateOrCreate(['provider_element_id' => (int) $event['away_id']], $ele);
|
|
}
|
|
|
|
if (! $competition_group_id) {
|
|
$group = [];
|
|
$group['sport_id'] = $event['sport_id'];
|
|
$group['provider_id'] = $event['provider_id'];
|
|
$group['competition_group_id'] = $match->competition_group_id;
|
|
$group['name'] = $event['group'];
|
|
CompetitionGroupProvider::updateOrCreate(['provider_group_id' => (int) $event['group_id']], $group);
|
|
}
|
|
|
|
$update_array = [];
|
|
|
|
if ($betradar_id && ! $match->betradar_id) {
|
|
$update_array['betradar_id'] = $betradar_id;
|
|
}
|
|
if ($betsapi_id && ! $match->betsapi_id) {
|
|
$update_array['betsapi_id'] = $betsapi_id;
|
|
}
|
|
if ($bet365_id && ! $match->bet365_id) {
|
|
$update_array['bet365_id'] = $bet365_id;
|
|
}
|
|
if ($_1xbet_id && ! $match->_1xbet_id) {
|
|
$update_array['bet365_id'] = $_1xbet_id;
|
|
}
|
|
if ($bwin_id && ! $match->bwin_id) {
|
|
$update_array['bwin_id'] = $bwin_id;
|
|
}
|
|
|
|
// event_id
|
|
switch ($event['provider_id']) {
|
|
case 3:
|
|
// MAGLOO KENIA
|
|
if (! $match->magken_id) {
|
|
$update_array['magken_id'] = $event_id;
|
|
}
|
|
break;
|
|
case 4:
|
|
// MAGLOO NIGERIA
|
|
if (! $match->magnig_id) {
|
|
$update_array['magnig_id'] = $event_id;
|
|
}
|
|
break;
|
|
case 5:
|
|
// LOGIFUTUR NIGERA
|
|
if (! $match->lognig_id) {
|
|
$update_array['lognig_id'] = $event_id;
|
|
}
|
|
break;
|
|
case 6:
|
|
// LOGIFUTUR COLOMBIA
|
|
if (! $match->logcol_id) {
|
|
$update_array['logcol_id'] = $event_id;
|
|
}
|
|
break;
|
|
}
|
|
|
|
if ($update_array) {
|
|
Event::where('id', $match_id)->update($update_array);
|
|
}
|
|
|
|
$startime = $event['starttime'];
|
|
|
|
$from = Carbon::createFromDate($startime)->subDay();
|
|
|
|
$to = Carbon::createFromDate($startime)->addDay();
|
|
|
|
if ($find_by_name) {
|
|
$home_id = ElementProvider::where(['sport_id' => (int) $event['sport_id']])
|
|
->where('provider_id', $event['provider_id'])
|
|
->where('name', $home)
|
|
->value('element_id');
|
|
$away_id = ElementProvider::where(['sport_id' => (int) $event['sport_id']])
|
|
->where('provider_id', $event['provider_id'])
|
|
->where('name', $away)
|
|
->value('element_id');
|
|
$competition_group_id = CompetitionGroupProvider::where(['sport_id' => (int) $event['sport_id']])
|
|
->where('provider_id', $event['provider_id'])
|
|
->where('name', $groupname)
|
|
->value('competition_group_id');
|
|
}
|
|
|
|
if ($home_id && $away_id && $competition_group_id) {
|
|
|
|
$match_id = Event::query()
|
|
->where('home_id', $home_id)
|
|
->where('away_id', $away_id)
|
|
->where('competition_group_id', $competition_group_id)
|
|
->where('starttime', '>', $from->toDateTimeString())
|
|
->where('starttime', '<', $to->toDateTimeString())
|
|
->value('id');
|
|
|
|
if ($match_id) {
|
|
|
|
$update_array = [];
|
|
|
|
if ($betradar_id) {
|
|
$update_array['betradar_id'] = $betradar_id;
|
|
}
|
|
if ($betsapi_id) {
|
|
$update_array['betsapi_id'] = $betsapi_id;
|
|
}
|
|
if ($bet365_id) {
|
|
$update_array['bet365_id'] = $bet365_id;
|
|
}
|
|
|
|
if ($update_array) {
|
|
Event::where('id', $match_id)->update($update_array);
|
|
}
|
|
|
|
switch ($event['provider_id']) {
|
|
case 2:
|
|
// BETSAPI
|
|
Event::where('id', $match_id)->update(['betsapi_id' => $event_id]);
|
|
break;
|
|
case 3:
|
|
// MAGLOO KENIA
|
|
Event::where('id', $match_id)->update(['magken_id' => $event_id]);
|
|
break;
|
|
case 4:
|
|
// MAGLOO NIGERIA
|
|
Event::where('id', $match_id)->update(['magnig_id' => $event_id]);
|
|
break;
|
|
case 5:
|
|
// LOGIFUTUR NIGERA
|
|
Event::where('id', $match_id)->update(['lognig_id' => $event_id]);
|
|
break;
|
|
case 6:
|
|
// LOGIFUTUR COLOMBIA
|
|
Event::where('id', $match_id)->update(['logcol_id' => $event_id]);
|
|
break;
|
|
default:
|
|
}
|
|
} else {
|
|
Mapper::updateOrCreate(['event_id' => $event_id], $event);
|
|
}
|
|
} else {
|
|
Mapper::updateOrCreate(['event_id' => $event_id], $event);
|
|
}
|
|
|
|
$event['id'] = $match_id;
|
|
}
|
|
}
|