Betaspi Grapper Bet365 per sport
This commit is contained in:
1 parent
1ac74e3e4f
commit
676eecd3ca
15 files changed
+513
-356
No files matched your search
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands\Services\DbMapper;
|
||||
|
||||
use App\Console\Commands\DbMapper\Store\StoreElement;
|
||||
use App\Console\Commands\DbMapper\Store\StoreGroup;
|
||||
use App\Console\Commands\DbMapper\Tasks\Helper\FindElement;
|
||||
use App\Console\Commands\DbMapper\Tasks\Helper\FindGroup;
|
||||
use App\Console\Commands\Nuh;
|
||||
use App\Models\Event;
|
||||
use App\Models\Mapper;
|
||||
use App\Utilities\Notice;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class Bet365Tennis
|
||||
{
|
||||
/**
|
||||
* Provider ID 2
|
||||
*/
|
||||
public static function run()
|
||||
{
|
||||
$debug = Nuh::$options['d'] ?? 0;
|
||||
|
||||
if ($debug) {
|
||||
Notice::note(Nuh::$options['name'].' '.Nuh::$options['sport'], 'g');
|
||||
}
|
||||
|
||||
$mappers = Mapper::where('provider_id', 2)->where('sport_id', 5)->where('starttime', '>', Carbon::now())->get()->toArray();
|
||||
|
||||
foreach ($mappers as $mapper) {
|
||||
|
||||
FindElement::run($mapper);
|
||||
|
||||
FindGroup::run($mapper);
|
||||
|
||||
print_r($mapper);
|
||||
|
||||
if ($mapper['txodds_home_id'] && $mapper['txodds_away_id'] && $mapper['txodds_group_id']) {
|
||||
|
||||
$from = Carbon::createFromDate($mapper['starttime'])->subDay();
|
||||
$to = Carbon::createFromDate($mapper['starttime'])->addDay();
|
||||
|
||||
$event = Event::whereDate('starttime', '>', $from)
|
||||
->whereDate('starttime', '<', $to)
|
||||
->where('home_id', $mapper['txodds_home_id'])
|
||||
->where('away_id', $mapper['txodds_away_id'])
|
||||
->where('competition_group_id', $mapper['txodds_group_id'])
|
||||
->first()->toArray();
|
||||
|
||||
if ($event) {
|
||||
StoreElement::store($mapper);
|
||||
|
||||
StoreGroup::store($mapper);
|
||||
|
||||
$arr = [];
|
||||
if ($mapper['bet365_id']) {
|
||||
$arr['bet365_id'] = $mapper['bet365_id'];
|
||||
}
|
||||
if ($mapper['betradar_id']) {
|
||||
$arr['betradar_id'] = $mapper['betradar_id'];
|
||||
}
|
||||
if ($mapper['betsapi_id']) {
|
||||
$arr['betsapi_id'] = $mapper['betsapi_id'];
|
||||
}
|
||||
if ($arr) {
|
||||
Event::where('id', $event['id'])->update($arr);
|
||||
}
|
||||
dd($event);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands\Services\DbMapper;
|
||||
|
||||
use App\Console\Commands\Nuh;
|
||||
use App\Utilities\Notice;
|
||||
|
||||
class DbMapper
|
||||
{
|
||||
public static function switch()
|
||||
{
|
||||
$debug = Nuh::$options['d'] ?? 0;
|
||||
|
||||
switch (Nuh::$options['name']) {
|
||||
case 'Bet365':
|
||||
switch (Nuh::$options['sport']) {
|
||||
case 'Tennis':
|
||||
Bet365Tennis::run();
|
||||
break;
|
||||
|
||||
default:
|
||||
Notice::note(Nuh::$options['name'].' '.Nuh::$options['sport'].' not implemented', 'r', 1);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
Notice::note(Nuh::$options['name'].' '.Nuh::$options['sport'].' not implemented', 'r', 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands\Services\Tasks\Helper;
|
||||
namespace App\Console\Commands\DbMapper\Tasks\Helper;
|
||||
|
||||
class ExplodeString
|
||||
{
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands\Services\Tasks\Helper;
|
||||
namespace App\Console\Commands\DbMapper\Tasks\Helper;
|
||||
|
||||
use App\Models\CountriesItalian;
|
||||
use App\Models\Country;
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands\DbMapper\Tasks\Helper;
|
||||
|
||||
use App\Models\Element;
|
||||
use App\Models\ElementProvider;
|
||||
|
||||
class FindElement
|
||||
{
|
||||
public static function run(&$mapper)
|
||||
{
|
||||
if (isset($mapper['home_id'])) {
|
||||
$mapper['txodds_home_id'] = ElementProvider::where('provider_id', $mapper['provider_id'])
|
||||
->where('provider_element_id', $mapper['home_id'])->value('element_id');
|
||||
}
|
||||
if (! $mapper['txodds_home_id']) {
|
||||
$arr = ExplodeString::grap($mapper['home']);
|
||||
|
||||
$mapper['txodds_home_id'] = Element::where('sport_id', $mapper['sport_id'])
|
||||
->where(function ($query) use ($arr) {
|
||||
foreach ($arr as $str) {
|
||||
$query->where('name', 'like', '%'.$str.'%');
|
||||
}
|
||||
})->value('id');
|
||||
}
|
||||
|
||||
if (isset($mapper['away_id'])) {
|
||||
$mapper['txodds_away_id'] = ElementProvider::where('provider_id', $mapper['provider_id'])
|
||||
->where('provider_element_id', $mapper['away_id'])->value('element_id');
|
||||
}
|
||||
if (! $mapper['txodds_away_id']) {
|
||||
$arr = ExplodeString::grap($mapper['away']);
|
||||
|
||||
$mapper['txodds_away_id'] = Element::where('sport_id', $mapper['sport_id'])
|
||||
->where(function ($query) use ($arr) {
|
||||
foreach ($arr as $str) {
|
||||
$query->where('name', 'like', '%'.$str.'%');
|
||||
}
|
||||
})->value('id');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands\DbMapper\Tasks\Helper;
|
||||
|
||||
use App\Models\CompetitionGroup;
|
||||
use App\Models\CompetitionGroupProvider;
|
||||
|
||||
class FindGroup
|
||||
{
|
||||
public static function run(&$mapper)
|
||||
{
|
||||
|
||||
if (isset($mapper['group_id'])) {
|
||||
$mapper['txodds_group_id'] = CompetitionGroupProvider::where('provider_id', $mapper['provider_id'])
|
||||
->where('provider_group_id', $mapper['group_id'])->value('competition_group_id');
|
||||
}
|
||||
if (! $mapper['txodds_group_id']) {
|
||||
$arr = ExplodeString::grap($mapper['group']);
|
||||
|
||||
$mapper['txodds_group_id'] = CompetitionGroup::where('sport_id', $mapper['sport_id'])
|
||||
->where(function ($query) use ($arr) {
|
||||
foreach ($arr as $str) {
|
||||
$query->where('name', 'like', '%'.$str.'%');
|
||||
}
|
||||
})->value('id');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands\DbMapper\Store;
|
||||
|
||||
use App\Models\ElementProvider;
|
||||
|
||||
class StoreElement
|
||||
{
|
||||
public static function store(&$mapper)
|
||||
{
|
||||
$home = [];
|
||||
$home['sport_id'] = $mapper['sport_id'];
|
||||
$home['element_id'] = $mapper['txodds_home_id'];
|
||||
$home['provider_id'] = $mapper['provider_id'];
|
||||
$home['name'] = $mapper['home'];
|
||||
|
||||
ElementProvider::updateOrCreate(['provider_element_id' => (int) $mapper['home_id']], $home);
|
||||
|
||||
$away = [];
|
||||
$away['sport_id'] = $mapper['sport_id'];
|
||||
$away['element_id'] = $mapper['txodds_away_id'];
|
||||
$away['provider_id'] = $mapper['provider_id'];
|
||||
$away['name'] = $mapper['away'];
|
||||
|
||||
ElementProvider::updateOrCreate(['provider_element_id' => (int) $mapper['away_id']], $away);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands\DbMapper\Store;
|
||||
|
||||
use App\Models\CompetitionGroupProvider;
|
||||
|
||||
class StoreGroup
|
||||
{
|
||||
public static function store(&$mapper)
|
||||
{
|
||||
$group = [];
|
||||
$group['sport_id'] = $mapper['sport_id'];
|
||||
$group['competition_group_id'] = $mapper['txodds_group_id'];
|
||||
$group['provider_id'] = $mapper['provider_id'];
|
||||
$group['name'] = $mapper['group'];
|
||||
|
||||
CompetitionGroupProvider::updateOrCreate(['provider_group_id' => (int) $mapper['group_id']], $group);
|
||||
}
|
||||
}
|
||||
@@ -6,13 +6,13 @@ use App\Console\Commands\Curl;
|
||||
use App\Console\Commands\Nuh;
|
||||
use App\Models\Event;
|
||||
use App\Models\EventBookmaker;
|
||||
use App\Models\Odds2way;
|
||||
use App\Models\Odds3way;
|
||||
use App\Models\Odds3wayHt;
|
||||
use App\Models\OddsDc;
|
||||
use App\Models\OddsDnb;
|
||||
use App\Models\OddsGgng;
|
||||
use App\Models\OddsTotal;
|
||||
use App\Models\Sport;
|
||||
use App\Utilities\Margin;
|
||||
use App\Utilities\Notice;
|
||||
use Illuminate\Support\Carbon;
|
||||
@@ -22,6 +22,7 @@ class Bet365
|
||||
{
|
||||
public static function grap()
|
||||
{
|
||||
|
||||
$debug = Nuh::$options['d'] ?? 0;
|
||||
|
||||
$today = Nuh::$options['t'] ?? 0;
|
||||
@@ -30,130 +31,228 @@ class Bet365
|
||||
|
||||
$single = Nuh::$options['id'] ?? 0;
|
||||
|
||||
$sportmap = Sport::map('bapi', 1, [1, 2, 3, 5]);
|
||||
switch (Nuh::$options['sport']) {
|
||||
case 'Soccer':
|
||||
$sport_id = 1;
|
||||
break;
|
||||
case 'Ice Hockey':
|
||||
$sport_id = 2;
|
||||
break;
|
||||
case 'Basketball':
|
||||
$sport_id = 3;
|
||||
break;
|
||||
case 'Tennis':
|
||||
$sport_id = 5;
|
||||
break;
|
||||
default:
|
||||
Notice::note('SPORT NOT IMPLEMENTED', 'r', 1);
|
||||
break;
|
||||
}
|
||||
|
||||
$events_collector = [];
|
||||
|
||||
$has_markets_collector = [];
|
||||
|
||||
/**
|
||||
* Bet365
|
||||
*/
|
||||
$bookmaker_id = 126;
|
||||
|
||||
foreach ($sportmap as $sport_id) {
|
||||
if ($single) {
|
||||
$events = Event::where('id', Nuh::$options['id'])->where('bet365_id', '>', 0)->select('id', 'sport_id', 'bet365_id', 'starttime')->get();
|
||||
} elseif ($today) {
|
||||
$events = Event::where('sport_id', $sport_id)->where('bet365_id', '>', 0)->where('starttime', '>', Carbon::now()->toDateTimeString())->where('starttime', '<', Carbon::now()->addDay()->toDateTimeString())->select('id', 'sport_id', 'bet365_id', 'starttime')->get();
|
||||
} elseif ($week) {
|
||||
$events = Event::where('sport_id', $sport_id)->where('bet365_id', '>', 0)->where('starttime', '>', Carbon::now()->toDateTimeString())->where('starttime', '<', Carbon::now()->addDays(7)->toDateTimeString())->select('id', 'sport_id', 'bet365_id', 'starttime')->get();
|
||||
} else {
|
||||
// all
|
||||
$events = Event::where('sport_id', $sport_id)->where('bet365_id', '>', 0)->where('starttime', '>', Carbon::now()->toDateTimeString())->select('id', 'sport_id', 'bet365_id', 'starttime')->get();
|
||||
}
|
||||
if ($events ?? null && $debug) {
|
||||
Notice::note('No events', 'r');
|
||||
}
|
||||
foreach ($events as $key => $event) {
|
||||
|
||||
if ($single) {
|
||||
$events = Event::where('id', Nuh::$options['id'])->where('bet365_id', '>', 0)->select('id', 'sport_id', 'bet365_id', 'starttime')->get();
|
||||
} elseif ($today) {
|
||||
$events = Event::where('sport_id', $sport_id)->where('bet365_id', '>', 0)->where('starttime', '>', Carbon::now()->toDateTimeString())->where('starttime', '<', Carbon::now()->addDay()->toDateTimeString())->select('id', 'sport_id', 'bet365_id', 'starttime')->get();
|
||||
} elseif ($week) {
|
||||
$events = Event::where('sport_id', $sport_id)->where('bet365_id', '>', 0)->where('starttime', '>', Carbon::now()->toDateTimeString())->where('starttime', '<', Carbon::now()->addDays(7)->toDateTimeString())->select('id', 'sport_id', 'bet365_id', 'starttime')->get();
|
||||
} else {
|
||||
// all
|
||||
$events = Event::where('sport_id', $sport_id)->where('bet365_id', '>', 0)->where('starttime', '>', Carbon::now()->toDateTimeString())->select('id', 'sport_id', 'bet365_id', 'starttime')->get();
|
||||
if (! $event->has_markets) {
|
||||
$has_markets_collector[] = $event_id;
|
||||
}
|
||||
if ($events ?? null && $debug) {
|
||||
Notice::note('No events', 'r');
|
||||
}
|
||||
foreach ($events as $key => $event) {
|
||||
|
||||
if ($debug) {
|
||||
Notice::note([
|
||||
'id' => $event->id,
|
||||
'bet365_id' => $event->bet365_id,
|
||||
'starttime' => $event->starttime,
|
||||
'count' => count($events).'/'.$key + 1,
|
||||
], 'b');
|
||||
}
|
||||
if ($debug) {
|
||||
Notice::note([
|
||||
'id' => $event->id,
|
||||
'bet365_id' => $event->bet365_id,
|
||||
'starttime' => $event->starttime,
|
||||
'count' => count($events).'/'.$key + 1,
|
||||
], 'b');
|
||||
}
|
||||
/**
|
||||
* BET365 ODDS (per event)
|
||||
*/
|
||||
$url = 'https://api.b365api.com/v4/bet365/prematch?token='.config('env.betsapi_token').'&FI='.$event->bet365_id;
|
||||
|
||||
$data = Curl::load($url);
|
||||
|
||||
if (isset($data['results'][0]['main'])) {
|
||||
|
||||
DB::transaction(function () use ($event, $bookmaker_id) {
|
||||
EventBookmaker::updateOrCreate([
|
||||
'event_id' => $event->id,
|
||||
'sport_id' => $event->sport_id,
|
||||
'bookmaker_id' => $bookmaker_id,
|
||||
], ['starttime' => $event->starttime, 'in_feed' => 1, 'bmoid' => $event->bet365_id]);
|
||||
}, 5);
|
||||
|
||||
$offer = $data['results'][0]['main']['sp'];
|
||||
|
||||
$base = [];
|
||||
$base['event_id'] = $event->id;
|
||||
$base['bookmaker_id'] = $bookmaker_id;
|
||||
$base['sport_id'] = $event->sport_id;
|
||||
$base['provider_id'] = Nuh::$options['provider_id'];
|
||||
$base['bmoid'] = $event->bet365_id;
|
||||
$base['flags'] = 1;
|
||||
|
||||
/**
|
||||
* BET365 ODDS (per event)
|
||||
* ML
|
||||
*/
|
||||
$url = 'https://api.b365api.com/v4/bet365/prematch?token='.config('env.betsapi_token').'&FI='.$event->bet365_id;
|
||||
if (isset($offer['to_win_match'])) {
|
||||
|
||||
$data = Curl::load($url);
|
||||
$data = $offer['to_win_match']['odds'] ?? [];
|
||||
|
||||
if (isset($data['results'][0]['main'])) {
|
||||
if ($data) {
|
||||
|
||||
DB::transaction(function () use ($event, $bookmaker_id) {
|
||||
EventBookmaker::updateOrCreate([
|
||||
'event_id' => $event->id,
|
||||
'sport_id' => $event->sport_id,
|
||||
'bookmaker_id' => $bookmaker_id,
|
||||
], ['starttime' => $event->starttime, 'in_feed' => 1, 'bmoid' => $event->bet365_id]);
|
||||
}, 5);
|
||||
$odds = [];
|
||||
$odds['h2w'] = number_format($data[0]['odds'], 2) ?? 1;
|
||||
$odds['a2w'] = number_format($data[1]['odds'], 2) ?? 1;
|
||||
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
||||
|
||||
$offer = $data['results'][0]['main']['sp'];
|
||||
$odds = array_merge($odds, $base);
|
||||
|
||||
$base = [];
|
||||
$base['event_id'] = $event->id;
|
||||
$base['bookmaker_id'] = $bookmaker_id;
|
||||
$base['sport_id'] = $event->sport_id;
|
||||
$base['provider_id'] = Nuh::$options['provider_id'];
|
||||
$base['bmoid'] = $event->bet365_id;
|
||||
$base['flags'] = 1;
|
||||
$events_collector['odds_2ways'][] = $event->id;
|
||||
|
||||
/**
|
||||
* 1X2
|
||||
*/
|
||||
if (isset($offer['full_time_result'])) {
|
||||
$res = Odds2way::where('event_id', $event->id)->where('bookmaker_id', $bookmaker_id)->first();
|
||||
|
||||
$data = $offer['full_time_result']['odds'] ?? [];
|
||||
|
||||
if ($data) {
|
||||
|
||||
$odds = [];
|
||||
$odds['h3w'] = number_format($data[0]['odds'], 2) ?? 1;
|
||||
$odds['d3w'] = number_format($data[1]['odds'], 2) ?? 1;
|
||||
$odds['a3w'] = number_format($data[2]['odds'], 2) ?? 1;
|
||||
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
||||
|
||||
$odds = array_merge($odds, $base);
|
||||
|
||||
$events_collector['odds_3ways'][] = $event->id;
|
||||
|
||||
$res = Odds3way::where('event_id', $event->id)->where('bookmaker_id', $bookmaker_id)->first();
|
||||
|
||||
if (! $res) {
|
||||
Odds3way::create($odds);
|
||||
} else {
|
||||
$res->h3w = $odds['h3w'];
|
||||
$res->a3w = $odds['d3w'];
|
||||
$res->d3w = $odds['a3w'];
|
||||
$res->flags = 1;
|
||||
$res->margin = $odds['margin'];
|
||||
DB::transaction(function () use ($res) {
|
||||
$res->save();
|
||||
}, 5);
|
||||
}
|
||||
if (! $res) {
|
||||
Odds2way::create($odds);
|
||||
} else {
|
||||
$res->h3w = $odds['h2w'];
|
||||
$res->a3w = $odds['a2w'];
|
||||
$res->flags = 1;
|
||||
$res->margin = $odds['margin'];
|
||||
DB::transaction(function () use ($res) {
|
||||
$res->save();
|
||||
}, 5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* DC
|
||||
*/
|
||||
if (isset($offer['double_chance'])) {
|
||||
/**
|
||||
* 1X2
|
||||
*/
|
||||
if (isset($offer['full_time_result'])) {
|
||||
|
||||
$data = $offer['double_chance']['odds'] ?? [];
|
||||
$data = $offer['full_time_result']['odds'] ?? [];
|
||||
|
||||
if ($data) {
|
||||
if ($data) {
|
||||
|
||||
$odds = [];
|
||||
$odds['dc1x'] = number_format($data[0]['odds'], 2) ?? 1;
|
||||
$odds['dc12'] = number_format($data[1]['odds'], 2) ?? 1;
|
||||
$odds['dcx2'] = number_format($data[2]['odds'], 2) ?? 1;
|
||||
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
||||
$odds = [];
|
||||
$odds['h3w'] = number_format($data[0]['odds'], 2) ?? 1;
|
||||
$odds['d3w'] = number_format($data[1]['odds'], 2) ?? 1;
|
||||
$odds['a3w'] = number_format($data[2]['odds'], 2) ?? 1;
|
||||
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
||||
|
||||
$odds = array_merge($odds, $base);
|
||||
$odds = array_merge($odds, $base);
|
||||
|
||||
$events_collector['odds_dc'][] = $event->id;
|
||||
$events_collector['odds_3ways'][] = $event->id;
|
||||
|
||||
$res = OddsDc::where('event_id', $event->id)->where('bookmaker_id', $bookmaker_id)->first();
|
||||
$res = Odds3way::where('event_id', $event->id)->where('bookmaker_id', $bookmaker_id)->first();
|
||||
|
||||
if (! $res) {
|
||||
Odds3way::create($odds);
|
||||
} else {
|
||||
$res->h3w = $odds['h3w'];
|
||||
$res->a3w = $odds['d3w'];
|
||||
$res->d3w = $odds['a3w'];
|
||||
$res->flags = 1;
|
||||
$res->margin = $odds['margin'];
|
||||
DB::transaction(function () use ($res) {
|
||||
$res->save();
|
||||
}, 5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* DC
|
||||
*/
|
||||
if (isset($offer['double_chance'])) {
|
||||
|
||||
$data = $offer['double_chance']['odds'] ?? [];
|
||||
|
||||
if ($data) {
|
||||
|
||||
$odds = [];
|
||||
$odds['dc1x'] = number_format($data[0]['odds'], 2) ?? 1;
|
||||
$odds['dc12'] = number_format($data[1]['odds'], 2) ?? 1;
|
||||
$odds['dcx2'] = number_format($data[2]['odds'], 2) ?? 1;
|
||||
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
||||
|
||||
$odds = array_merge($odds, $base);
|
||||
|
||||
$events_collector['odds_dc'][] = $event->id;
|
||||
|
||||
$res = OddsDc::where('event_id', $event->id)->where('bookmaker_id', $bookmaker_id)->first();
|
||||
|
||||
if (! $res) {
|
||||
OddsDc::create($odds);
|
||||
} else {
|
||||
$res->dc1x = $odds['dc1x'];
|
||||
$res->dc12 = $odds['dc12'];
|
||||
$res->dcx2 = $odds['dcx2'];
|
||||
$res->flags = 1;
|
||||
$res->margin = $odds['margin'];
|
||||
DB::transaction(function () use ($res) {
|
||||
$res->save();
|
||||
}, 5);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* OU
|
||||
*/
|
||||
if (isset($offer['goals_over_under'])) {
|
||||
|
||||
$data = $offer['goals_over_under']['odds'] ?? [];
|
||||
|
||||
if ($data) {
|
||||
|
||||
$odds = [];
|
||||
$odds['over'] = number_format($data[0]['odds'], 2) ?? 1;
|
||||
$odds['under'] = number_format($data[1]['odds'], 2) ?? 1;
|
||||
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
||||
if ($base['sport_id'] == 1) {
|
||||
$odds['active_spread'] = 1;
|
||||
}
|
||||
|
||||
$odds = array_merge($odds, $base);
|
||||
|
||||
$events_collector['odds_totals'][] = $event->id;
|
||||
|
||||
if ($offer['goals_over_under']['odds'][1]['name'] == '2.5') {
|
||||
$odds['total'] = 2.5;
|
||||
$res = OddsTotal::where('event_id', $event->id)
|
||||
->where('bookmaker_id', $bookmaker_id)
|
||||
->where('total', $odds['total'])
|
||||
->first();
|
||||
|
||||
if (! $res) {
|
||||
OddsDc::create($odds);
|
||||
OddsTotal::create($odds);
|
||||
} else {
|
||||
$res->dc1x = $odds['dc1x'];
|
||||
$res->dc12 = $odds['dc12'];
|
||||
$res->dcx2 = $odds['dcx2'];
|
||||
$res->over = $odds['over'];
|
||||
$res->under = $odds['under'];
|
||||
$res->difference = abs(1 / $odds['over'] - 1 / $odds['under']);
|
||||
$res->flags = 1;
|
||||
$res->margin = $odds['margin'];
|
||||
DB::transaction(function () use ($res) {
|
||||
@@ -163,163 +262,127 @@ class Bet365
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* OU
|
||||
*/
|
||||
if (isset($offer['goals_over_under'])) {
|
||||
/**
|
||||
* GG NG
|
||||
*/
|
||||
if (isset($offer['both_teams_to_score'])) {
|
||||
|
||||
$data = $offer['goals_over_under']['odds'] ?? [];
|
||||
$data = $offer['both_teams_to_score']['odds'] ?? [];
|
||||
|
||||
if ($data) {
|
||||
if ($data) {
|
||||
|
||||
$odds = [];
|
||||
$odds['over'] = number_format($data[0]['odds'], 2) ?? 1;
|
||||
$odds['under'] = number_format($data[1]['odds'], 2) ?? 1;
|
||||
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
||||
if ($base['sport_id'] == 1) {
|
||||
$odds['active_spread'] = 1;
|
||||
}
|
||||
$odds = [];
|
||||
$odds['gg'] = number_format($data[0]['odds'], 2) ?? 1;
|
||||
$odds['ng'] = number_format($data[1]['odds'], 2) ?? 1;
|
||||
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
||||
|
||||
$odds = array_merge($odds, $base);
|
||||
$odds = array_merge($odds, $base);
|
||||
|
||||
$events_collector['odds_totals'][] = $event->id;
|
||||
$events_collector['odds_ggng'][] = $event->id;
|
||||
|
||||
if ($offer['goals_over_under']['odds'][1]['name'] == '2.5') {
|
||||
$odds['total'] = 2.5;
|
||||
$res = OddsTotal::where('event_id', $event->id)
|
||||
->where('bookmaker_id', $bookmaker_id)
|
||||
->where('total', $odds['total'])
|
||||
->first();
|
||||
$res = OddsGgng::where('event_id', $event->id)->where('bookmaker_id', $bookmaker_id)->first();
|
||||
|
||||
if (! $res) {
|
||||
OddsTotal::create($odds);
|
||||
} else {
|
||||
$res->over = $odds['over'];
|
||||
$res->under = $odds['under'];
|
||||
$res->difference = abs(1 / $odds['over'] - 1 / $odds['under']);
|
||||
$res->flags = 1;
|
||||
$res->margin = $odds['margin'];
|
||||
DB::transaction(function () use ($res) {
|
||||
$res->save();
|
||||
}, 5);
|
||||
|
||||
}
|
||||
}
|
||||
if (! $res) {
|
||||
OddsGgng::create($odds);
|
||||
} else {
|
||||
$res->gg = $odds['gg'];
|
||||
$res->ng = $odds['ng'];
|
||||
$res->flags = 1;
|
||||
$res->margin = $odds['margin'];
|
||||
DB::transaction(function () use ($res) {
|
||||
$res->save();
|
||||
}, 5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* GG NG
|
||||
*/
|
||||
if (isset($offer['both_teams_to_score'])) {
|
||||
/**
|
||||
* DNB
|
||||
*/
|
||||
if (isset($offer['draw_no_bet'])) {
|
||||
|
||||
$data = $offer['both_teams_to_score']['odds'] ?? [];
|
||||
$data = $offer['draw_no_bet']['odds'] ?? [];
|
||||
|
||||
if ($data) {
|
||||
if ($data) {
|
||||
|
||||
$odds = [];
|
||||
$odds['gg'] = number_format($data[0]['odds'], 2) ?? 1;
|
||||
$odds['ng'] = number_format($data[1]['odds'], 2) ?? 1;
|
||||
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
||||
$odds = [];
|
||||
$odds['dnb1'] = number_format($data[0]['odds'], 2) ?? 1;
|
||||
$odds['dnb2'] = number_format($data[1]['odds'], 2) ?? 1;
|
||||
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
||||
|
||||
$odds = array_merge($odds, $base);
|
||||
$res = OddsDnb::where('event_id', $event->id)->where('bookmaker_id', $bookmaker_id)->first();
|
||||
|
||||
$events_collector['odds_ggng'][] = $event->id;
|
||||
$odds = array_merge($odds, $base);
|
||||
|
||||
$res = OddsGgng::where('event_id', $event->id)->where('bookmaker_id', $bookmaker_id)->first();
|
||||
$events_collector['odds_dnb'][] = $event->id;
|
||||
|
||||
if (! $res) {
|
||||
OddsDnb::create($odds);
|
||||
} else {
|
||||
$res->dnb1 = $odds['dnb1'];
|
||||
$res->dnb2 = $odds['dnb2'];
|
||||
$res->flags = 1;
|
||||
$res->margin = $odds['margin'];
|
||||
DB::transaction(function () use ($res) {
|
||||
$res->save();
|
||||
}, 5);
|
||||
|
||||
if (! $res) {
|
||||
OddsGgng::create($odds);
|
||||
} else {
|
||||
$res->gg = $odds['gg'];
|
||||
$res->ng = $odds['ng'];
|
||||
$res->flags = 1;
|
||||
$res->margin = $odds['margin'];
|
||||
DB::transaction(function () use ($res) {
|
||||
$res->save();
|
||||
}, 5);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* DNB
|
||||
*/
|
||||
if (isset($offer['draw_no_bet'])) {
|
||||
/**
|
||||
* 1X2 HT
|
||||
*/
|
||||
if (isset($offer['half_time_result'])) {
|
||||
|
||||
$data = $offer['draw_no_bet']['odds'] ?? [];
|
||||
$data = $offer['half_time_result']['odds'] ?? [];
|
||||
|
||||
if ($data) {
|
||||
if ($data) {
|
||||
|
||||
$odds = [];
|
||||
$odds['dnb1'] = number_format($data[0]['odds'], 2) ?? 1;
|
||||
$odds['dnb2'] = number_format($data[1]['odds'], 2) ?? 1;
|
||||
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
||||
$odds = [];
|
||||
$odds['h3w'] = number_format($data[0]['odds'], 2) ?? 1;
|
||||
$odds['d3w'] = number_format($data[1]['odds'], 2) ?? 1;
|
||||
$odds['a3w'] = number_format($data[2]['odds'], 2) ?? 1;
|
||||
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
||||
|
||||
$res = OddsDnb::where('event_id', $event->id)->where('bookmaker_id', $bookmaker_id)->first();
|
||||
$odds = array_merge($odds, $base);
|
||||
|
||||
$odds = array_merge($odds, $base);
|
||||
$events_collector['odds_3ways_ht'][] = $event->id;
|
||||
|
||||
$events_collector['odds_dnb'][] = $event->id;
|
||||
$res = Odds3wayHt::where('event_id', $event->id)->where('bookmaker_id', $bookmaker_id)->first();
|
||||
|
||||
if (! $res) {
|
||||
OddsDnb::create($odds);
|
||||
} else {
|
||||
$res->dnb1 = $odds['dnb1'];
|
||||
$res->dnb2 = $odds['dnb2'];
|
||||
$res->flags = 1;
|
||||
$res->margin = $odds['margin'];
|
||||
DB::transaction(function () use ($res) {
|
||||
$res->save();
|
||||
}, 5);
|
||||
if (! $res) {
|
||||
Odds3wayHt::create($odds);
|
||||
} else {
|
||||
$res->h3w = $odds['h3w'];
|
||||
$res->d3w = $odds['d3w'];
|
||||
$res->a3w = $odds['a3w'];
|
||||
$res->flags = 1;
|
||||
$res->margin = $odds['margin'];
|
||||
DB::transaction(function () use ($res) {
|
||||
$res->save();
|
||||
}, 5);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 1X2 HT
|
||||
*/
|
||||
if (isset($offer['half_time_result'])) {
|
||||
|
||||
$data = $offer['half_time_result']['odds'] ?? [];
|
||||
|
||||
if ($data) {
|
||||
|
||||
$odds = [];
|
||||
$odds['h3w'] = number_format($data[0]['odds'], 2) ?? 1;
|
||||
$odds['d3w'] = number_format($data[1]['odds'], 2) ?? 1;
|
||||
$odds['a3w'] = number_format($data[2]['odds'], 2) ?? 1;
|
||||
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
||||
|
||||
$odds = array_merge($odds, $base);
|
||||
|
||||
$events_collector['odds_3ways_ht'][] = $event->id;
|
||||
|
||||
$res = Odds3wayHt::where('event_id', $event->id)->where('bookmaker_id', $bookmaker_id)->first();
|
||||
|
||||
if (! $res) {
|
||||
Odds3wayHt::create($odds);
|
||||
} else {
|
||||
$res->h3w = $odds['h3w'];
|
||||
$res->d3w = $odds['d3w'];
|
||||
$res->a3w = $odds['a3w'];
|
||||
$res->flags = 1;
|
||||
$res->margin = $odds['margin'];
|
||||
DB::transaction(function () use ($res) {
|
||||
$res->save();
|
||||
}, 5);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$id_collector = [];
|
||||
foreach ($events_collector as $table => $event_ids) {
|
||||
$id_collector[] = $event_ids;
|
||||
DB::table($table)->where('bookmaker_id', $bookmaker_id)->whereNotIn('event_id', $event_ids)->update(['flags' => 0]);
|
||||
}
|
||||
if ($id_collector) {
|
||||
foreach ($id_collector as $event_id) {
|
||||
if (in_array($event_id, $has_markets_collector)) {
|
||||
Event::where('id', $event_id)->update(['has_markets' => 1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -46,7 +46,7 @@ class Bwin
|
||||
|
||||
if (isset($data['results'])) {
|
||||
foreach ($data['results'] as $event) {
|
||||
if ($debug && isset($event['HomeTeam'])) {
|
||||
if ($debug && isset($event['HomeTeam']) && isset($event['SportName'])) {
|
||||
Notice::note($event['RegionName'].'-'.$event['SportName']."\n".$event['HomeTeam'].' - '.$event['AwayTeam']);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ use App\Console\Commands\Grapper\Goldbet;
|
||||
use App\Console\Commands\Grapper\Logifuture;
|
||||
use App\Console\Commands\Grapper\Magloo;
|
||||
use App\Console\Commands\Grapper\TxOdds;
|
||||
use App\Console\Commands\Services\DbMapper\DbMapper;
|
||||
use App\Console\Commands\Services\Services;
|
||||
use App\Models\Supervisor;
|
||||
use App\Utilities\Notice;
|
||||
@@ -116,6 +117,10 @@ class Nuh extends Command
|
||||
// GOLDBET
|
||||
Goldbet::switch();
|
||||
break;
|
||||
case 11:
|
||||
// DB MAPPER
|
||||
DbMapper::switch();
|
||||
break;
|
||||
default:
|
||||
Notice::note('Provider not defined', 'r', 1);
|
||||
break;
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands\Services\Tasks;
|
||||
|
||||
use App\Console\Commands\Nuh;
|
||||
use App\Console\Commands\Services\Tasks\Helper\FindCountry;
|
||||
use App\Console\Commands\Services\Tasks\Helper\FindElement;
|
||||
use App\Console\Commands\Services\Tasks\Helper\FindGroup;
|
||||
use App\Models\Event;
|
||||
use App\Models\Mapper;
|
||||
use App\Utilities\Notice;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class DBMapper
|
||||
{
|
||||
public static function run()
|
||||
{
|
||||
$debug = Nuh::$options['d'] ?? 0;
|
||||
|
||||
if ($debug) {
|
||||
Notice::note('MAPPER SOCCER', 'g');
|
||||
}
|
||||
|
||||
$events = Mapper::get()->toArray();
|
||||
|
||||
$i = 0;
|
||||
foreach ($events as $event) {
|
||||
|
||||
Notice::note($i);
|
||||
|
||||
FindElement::run($event);
|
||||
|
||||
FindGroup::run($event);
|
||||
|
||||
FindCountry::run($event);
|
||||
|
||||
// print_r($event);
|
||||
|
||||
if ($event['txodds_home_id'] && $event['txodds_away_id'] && $event['txodds_group_id']) {
|
||||
$from = Carbon::createFromDate($event['starttime'])->subDay();
|
||||
|
||||
$to = Carbon::createFromDate($event['starttime'])->addDay();
|
||||
|
||||
// DB::enableQueryLog();
|
||||
|
||||
$query = Event::where('starttime', '>', $from->toDateTimeString())
|
||||
->where('starttime', '<', $to->toDateTimeString())
|
||||
->whereIn('home_id', $event['txodds_home_id'])
|
||||
->whereIn('home_id', $event['txodds_away_id'])
|
||||
->whereIn('competition_group_id', $event['txodds_group_id'])
|
||||
->get();
|
||||
|
||||
// Notice::db(DB::getQueryLog());
|
||||
|
||||
Notice::db($query);
|
||||
}
|
||||
|
||||
$i++;
|
||||
if ($i > 100) {
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands\Services\Tasks\Helper;
|
||||
|
||||
use App\Models\Element;
|
||||
use App\Models\ElementProvider;
|
||||
|
||||
class FindElement
|
||||
{
|
||||
public static function run(&$event)
|
||||
{
|
||||
if (isset($event['home_id'])) {
|
||||
$event['txodds_home_id'][] = ElementProvider::where('provider_id', $event['provider_id'])
|
||||
->where('provider_element_id', $event['home_id'])->value('element_id');
|
||||
}
|
||||
if (! $event['txodds_home_id']) {
|
||||
$arr = ExplodeString::grap($event['home']);
|
||||
|
||||
$event['txodds_home_id'] = Element::where('sport_id', $event['sport_id'])
|
||||
->where(function ($query) use ($arr) {
|
||||
foreach ($arr as $str) {
|
||||
$query->orwhere('name', 'like', '%'.$str.'%');
|
||||
}
|
||||
})->pluck('id')->toArray();
|
||||
}
|
||||
|
||||
if (isset($event['away_id'])) {
|
||||
$event['txodds_away_id'][] = ElementProvider::where('provider_id', $event['provider_id'])
|
||||
->where('provider_element_id', $event['away_id'])->value('element_id');
|
||||
}
|
||||
if (! $event['txodds_away_id']) {
|
||||
$arr = ExplodeString::grap($event['away']);
|
||||
|
||||
$event['txodds_away_id'] = Element::where('sport_id', $event['sport_id'])
|
||||
->where(function ($query) use ($arr) {
|
||||
foreach ($arr as $str) {
|
||||
$query->orwhere('name', 'like', '%'.$str.'%');
|
||||
}
|
||||
})->pluck('id')->toArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands\Services\Tasks\Helper;
|
||||
|
||||
use App\Models\CompetitionGroup;
|
||||
use App\Models\CompetitionGroupProvider;
|
||||
|
||||
class FindGroup
|
||||
{
|
||||
public static function run(&$event)
|
||||
{
|
||||
|
||||
if (isset($event['group_id'])) {
|
||||
$event['txodds_group_id'][] = CompetitionGroupProvider::where('provider_id', $event['provider_id'])
|
||||
->where('provider_group_id', $event['group_id'])->value('competition_group_id');
|
||||
}
|
||||
if (! $event['txodds_group_id']) {
|
||||
$arr = ExplodeString::grap($event['group']);
|
||||
|
||||
$event['txodds_group_id'] = CompetitionGroup::where('sport_id', $event['sport_id'])
|
||||
->where(function ($query) use ($arr) {
|
||||
foreach ($arr as $str) {
|
||||
$query->orwhere('name', 'like', '%'.$str.'%');
|
||||
}
|
||||
})->pluck('id')->toArray();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user