This commit is contained in:
salam committed 2026-10-10 22:24:13 +02:00
1 parent c2f068e8bf
commit 436a8ec142
8 files changed
+158 -86

No files matched your search

@@ -64,8 +64,6 @@ class AverageTeam
foreach ($res as $val) { foreach ($res as $val) {
// dd($team_position, $val);
if ($team_position == 'home' && $team_id == $val->home_id) { if ($team_position == 'home' && $team_id == $val->home_id) {
ExpectationAverage::filter($result, 'team', 'gls', $val->gls_h, $val->gls_a); ExpectationAverage::filter($result, 'team', 'gls', $val->gls_h, $val->gls_a);
ExpectationAverage::filter($result, 'team', 'crn', $val->crn_h, $val->crn_a); ExpectationAverage::filter($result, 'team', 'crn', $val->crn_h, $val->crn_a);
@@ -100,14 +98,6 @@ class AverageTeam
ExpectationAverage::filter($result, 'team', 'snt', $val->snt_a, $val->snt_h); ExpectationAverage::filter($result, 'team', 'snt', $val->snt_a, $val->snt_h);
ExpectationAverage::filter($result, 'team', 'tsh', $val->tsh_a, $val->tsh_h); ExpectationAverage::filter($result, 'team', 'tsh', $val->tsh_a, $val->tsh_h);
} }
// ExpectationAverage::filter($result, 'team', 'gls', $val->gls_h, $val->gls_a);
// ExpectationAverage::filter($result, 'team', 'crn', $val->crn_h, $val->crn_a);
// ExpectationAverage::filter($result, 'team', 'fls', $val->fls_h, $val->fls_a);
// ExpectationAverage::filter($result, 'team', 'ofs', $val->ofs_h, $val->ofs_a);
// ExpectationAverage::filter($result, 'team', 'crd', $val->crd_h, $val->crd_a);
// ExpectationAverage::filter($result, 'team', 'snt', $val->snt_h, $val->snt_a);
// ExpectationAverage::filter($result, 'team', 'tsh', $val->tsh_h, $val->tsh_a);
} }
} }
@@ -14,15 +14,24 @@ class AverageTeamSeason
public static function load(array &$expectations, array $filter, object $match) public static function load(array &$expectations, array $filter, object $match)
{ {
$tournament_id = (int) $filter['league_id'] ?? 0; $tournament_id = (int) $filter['league_id'] ?? 0;
$team_position = $filter['team_position'];
$team_id = (int) $filter['team_id'] ?? 0; $team_id = (int) $filter['team_id'] ?? 0;
$seasonmode = $filter['seasonmode']; $seasonmode = $filter['seasonmode'];
$active_season = GetSeason::active($seasonmode); $season = GetSeason::active($seasonmode);
$res = StatistikoEvent::where('league_id', $tournament_id) $res = StatistikoEvent::where('league_id', $tournament_id)
->when($active_season, function ($query) use ($active_season) { ->when($season, function ($query) use ($season) {
return $query->where('season', $active_season); return $query->where('season', $season);
})->when($team_id, function ($query) use ($team_id) { })->when($team_id, function ($query) use ($team_position, $team_id) {
return $query->orWhere('home_id', $team_id)->orWhere('away_id', '=', $team_id); switch ($team_position) {
case 'home':
return $query->where('home_id', $team_id);
case 'away':
return $query->where('away_id', $team_id);
default:
return $query->orWhere('home_id', $team_id)
->orWhere('away_id', '=', $team_id);
}
})->get(); })->get();
if ($res) { if ($res) {
@@ -30,13 +39,41 @@ class AverageTeamSeason
$result = []; $result = [];
foreach ($res as $val) { foreach ($res as $val) {
ExpectationAverage::filter($result, 'team', 'gls', $val->gls_a, $val->gls_h); if ($team_position == 'home' && $team_id == $val->home_id) {
ExpectationAverage::filter($result, 'team', 'crn', $val->crn_a, $val->crn_h); ExpectationAverage::filter($result, 'team', 'gls', $val->gls_h, $val->gls_a);
ExpectationAverage::filter($result, 'team', 'fls', $val->fls_a, $val->fls_h); ExpectationAverage::filter($result, 'team', 'crn', $val->crn_h, $val->crn_a);
ExpectationAverage::filter($result, 'team', 'ofs', $val->ofs_a, $val->ofs_h); ExpectationAverage::filter($result, 'team', 'fls', $val->fls_h, $val->fls_a);
ExpectationAverage::filter($result, 'team', 'crd', $val->crd_a, $val->crd_h); ExpectationAverage::filter($result, 'team', 'ofs', $val->ofs_h, $val->ofs_a);
ExpectationAverage::filter($result, 'team', 'snt', $val->snt_a, $val->snt_h); ExpectationAverage::filter($result, 'team', 'crd', $val->crd_h, $val->crd_a);
ExpectationAverage::filter($result, 'team', 'tsh', $val->tsh_a, $val->tsh_h); ExpectationAverage::filter($result, 'team', 'snt', $val->snt_h, $val->snt_a);
ExpectationAverage::filter($result, 'team', 'tsh', $val->tsh_h, $val->tsh_a);
} elseif ($team_position == 'away' && $team_id == $val->away_id) {
ExpectationAverage::filter($result, 'team', 'gls', $val->gls_a, $val->gls_h);
ExpectationAverage::filter($result, 'team', 'crn', $val->crn_a, $val->crn_h);
ExpectationAverage::filter($result, 'team', 'fls', $val->fls_a, $val->fls_h);
ExpectationAverage::filter($result, 'team', 'ofs', $val->ofs_a, $val->ofs_h);
ExpectationAverage::filter($result, 'team', 'crd', $val->crd_a, $val->crd_h);
ExpectationAverage::filter($result, 'team', 'snt', $val->snt_a, $val->snt_h);
ExpectationAverage::filter($result, 'team', 'tsh', $val->tsh_a, $val->tsh_h);
} else {
if ($team_id == $val->home_id) {
ExpectationAverage::filter($result, 'team', 'gls', $val->gls_h, $val->gls_a);
ExpectationAverage::filter($result, 'team', 'crn', $val->crn_h, $val->crn_a);
ExpectationAverage::filter($result, 'team', 'fls', $val->fls_h, $val->fls_a);
ExpectationAverage::filter($result, 'team', 'ofs', $val->ofs_h, $val->ofs_a);
ExpectationAverage::filter($result, 'team', 'crd', $val->crd_h, $val->crd_a);
ExpectationAverage::filter($result, 'team', 'snt', $val->snt_h, $val->snt_a);
ExpectationAverage::filter($result, 'team', 'tsh', $val->tsh_h, $val->tsh_a);
} elseif ($team_id == $val->away_id) {
ExpectationAverage::filter($result, 'team', 'gls', $val->gls_a, $val->gls_h);
ExpectationAverage::filter($result, 'team', 'crn', $val->crn_a, $val->crn_h);
ExpectationAverage::filter($result, 'team', 'fls', $val->fls_a, $val->fls_h);
ExpectationAverage::filter($result, 'team', 'ofs', $val->ofs_a, $val->ofs_h);
ExpectationAverage::filter($result, 'team', 'crd', $val->crd_a, $val->crd_h);
ExpectationAverage::filter($result, 'team', 'snt', $val->snt_a, $val->snt_h);
ExpectationAverage::filter($result, 'team', 'tsh', $val->tsh_a, $val->tsh_h);
}
}
} }
$bets = ['gls', 'crn', 'fls', 'ofs', 'crd', 'snt', 'tsh']; $bets = ['gls', 'crn', 'fls', 'ofs', 'crd', 'snt', 'tsh'];
@@ -58,7 +95,7 @@ class AverageTeamSeason
$expectations['crd_team_season']['name'] = 'Cards'; $expectations['crd_team_season']['name'] = 'Cards';
$expectations['snt_team_season']['name'] = 'Shots on Target'; $expectations['snt_team_season']['name'] = 'Shots on Target';
$expectations['tsh_team_season']['name'] = 'Total Shots'; $expectations['tsh_team_season']['name'] = 'Total Shots';
$expectations['active_season'] = $active_season; $expectations['active_season'] = $season;
} }
} }
} }
@@ -20,7 +20,6 @@ class ExpectationsTeam
* STATTISTIC DATA * STATTISTIC DATA
*/ */
$team_id = (int) $filter['team_id'] ?? 0; $team_id = (int) $filter['team_id'] ?? 0;
$league_id = (int) $filter['league_id'] ?? 0;
$team_position = $filter['team_position']; $team_position = $filter['team_position'];
$similar_past_matches = $filter['similar_past_matches']; $similar_past_matches = $filter['similar_past_matches'];
@@ -40,7 +39,7 @@ class ExpectationsTeam
return []; return [];
} }
$tmp = []; $tmp = self::template();
foreach ($res as $value) { foreach ($res as $value) {
// dd($match->home_id, $match->away_id, $value); // dd($match->home_id, $match->away_id, $value);
ExpectationCollecting::sort($similar_past_matches, $tmp, 'gls', $value->home_id, $value->away_id, $value->gls_h, $value->gls_a, $match); ExpectationCollecting::sort($similar_past_matches, $tmp, 'gls', $value->home_id, $value->away_id, $value->gls_h, $value->gls_a, $match);
@@ -52,14 +51,15 @@ class ExpectationsTeam
ExpectationCollecting::sort($similar_past_matches, $tmp, 'crn', $value->home_id, $value->away_id, $value->crn_h, $value->crn_a, $match); ExpectationCollecting::sort($similar_past_matches, $tmp, 'crn', $value->home_id, $value->away_id, $value->crn_h, $value->crn_a, $match);
} }
if (self::$collectionMethod == 'A') { if ($expectations) {
$expectations = ExpectationMethodA::calc($tmp); if (self::$collectionMethod == 'A') {
} else { $expectations = ExpectationMethodA::calc($tmp);
$expectations = ExpectationMethodB::calc($tmp); } else {
$expectations = ExpectationMethodB::calc($tmp);
}
ExpectationsMinMax::calc($expectations, $match);
} }
ExpectationsMinMax::calc($expectations, $match);
$expectations['gls']['name'] = 'Goals'; $expectations['gls']['name'] = 'Goals';
$expectations['crn']['name'] = 'Corner'; $expectations['crn']['name'] = 'Corner';
$expectations['fls']['name'] = 'Fouls'; $expectations['fls']['name'] = 'Fouls';
@@ -120,4 +120,23 @@ class ExpectationsTeam
$expectations['draw_odd'] = $expectations['draw_count'] ? number_format(Round::odd($count_tp / $expectations['draw_count']), 2) : 0; $expectations['draw_odd'] = $expectations['draw_count'] ? number_format(Round::odd($count_tp / $expectations['draw_count']), 2) : 0;
$expectations['lost_odd'] = $expectations['lost_count'] ? number_format(Round::odd($count_tp / $expectations['lost_count']), 2) : 0; $expectations['lost_odd'] = $expectations['lost_count'] ? number_format(Round::odd($count_tp / $expectations['lost_count']), 2) : 0;
} }
public static function template()
{
$arr = [];
$bets = ['gls', 'crn', 'fls', 'ofs', 'crd', 'snt', 'tsh'];
foreach ($bets as $bet) {
foreach (['team_home', 'team_away'] as $team) {
foreach (['scored', 'conceded'] as $sc) {
foreach (['home', 'away'] as $ha) {
foreach (['evt', 'sum'] as $es) {
$arr[$bet][$team][$sc][$ha][$es] = 0;
}
}
}
}
}
return $arr;
}
} }
@@ -13,28 +13,32 @@ class ExpectationMethodB
$result = []; $result = [];
foreach ($expectations as $bettype => $data) { foreach ($expectations as $bettype => $data) {
$result[$bettype]['home'] = round(( if ($data['team_home']['scored']['home']['evt'] && $data['team_away']['scored']['home']['evt']) {
$data['team_home']['scored']['home']['sum'] * $cfHA + $result[$bettype]['home'] = round((
$data['team_home']['scored']['away']['sum'] + $data['team_home']['scored']['home']['sum'] * $cfHA +
$data['team_away']['conceded']['away']['sum'] * $cfHA + $data['team_home']['scored']['away']['sum'] +
$data['team_away']['conceded']['home']['sum'] $data['team_away']['conceded']['away']['sum'] * $cfHA +
) / ( $data['team_away']['conceded']['home']['sum']
$data['team_home']['scored']['home']['evt'] * $cfHA + ) / (
$data['team_home']['scored']['away']['evt'] + $data['team_home']['scored']['home']['evt'] * $cfHA +
$data['team_away']['conceded']['home']['evt'] + $data['team_home']['scored']['away']['evt'] +
$data['team_away']['conceded']['away']['evt'] * $cfHA $data['team_away']['conceded']['home']['evt'] +
), 1); $data['team_away']['conceded']['away']['evt'] * $cfHA
$result[$bettype]['away'] = round(( ), 1);
$data['team_home']['conceded']['home']['sum'] * $cfHA + }
$data['team_home']['conceded']['away']['sum'] + if ($data['team_home']['scored']['home']['evt'] && $data['team_away']['scored']['home']['evt']) {
$data['team_away']['scored']['away']['sum'] * $cfHA + $result[$bettype]['away'] = round((
$data['team_away']['scored']['home']['sum'] $data['team_home']['conceded']['home']['sum'] * $cfHA +
) / ( $data['team_home']['conceded']['away']['sum'] +
$data['team_home']['conceded']['home']['evt'] * $cfHA + $data['team_away']['scored']['away']['sum'] * $cfHA +
$data['team_home']['conceded']['away']['evt'] + $data['team_away']['scored']['home']['sum']
$data['team_away']['scored']['home']['evt'] + ) / (
$data['team_away']['scored']['away']['evt'] * $cfHA $data['team_home']['conceded']['home']['evt'] * $cfHA +
), 1); $data['team_home']['conceded']['away']['evt'] +
$data['team_away']['scored']['home']['evt'] +
$data['team_away']['scored']['away']['evt'] * $cfHA
), 1);
}
} }
return $result; return $result;
@@ -62,17 +62,19 @@ class ExpectationsMinMax
} }
foreach ($bets as $key) { foreach ($bets as $key) {
if ($expectations[$key]['home'] > $final[$key]['max']) { if (isset($expectations[$key])) {
$expectations[$key]['home'] = $final[$key]['max']; if ($expectations[$key]['home'] > $final[$key]['max']) {
} $expectations[$key]['home'] = $final[$key]['max'];
if ($expectations[$key]['away'] > $final[$key]['max']) { }
$expectations[$key]['away'] = $final[$key]['max']; if ($expectations[$key]['away'] > $final[$key]['max']) {
} $expectations[$key]['away'] = $final[$key]['max'];
if ($expectations[$key]['home'] < $final[$key]['min']) { }
$expectations[$key]['home'] = $final[$key]['min']; if ($expectations[$key]['home'] < $final[$key]['min']) {
} $expectations[$key]['home'] = $final[$key]['min'];
if ($expectations[$key]['away'] < $final[$key]['min']) { }
$expectations[$key]['away'] = $final[$key]['min']; if ($expectations[$key]['away'] < $final[$key]['min']) {
$expectations[$key]['away'] = $final[$key]['min'];
}
} }
} }
@@ -82,17 +84,19 @@ class ExpectationsMinMax
$gls_away_max = $match->exp_away * (1 + ($Y / 2)); $gls_away_max = $match->exp_away * (1 + ($Y / 2));
$gls_away_min = $match->exp_away * (1 - ($Y / 2)); $gls_away_min = $match->exp_away * (1 - ($Y / 2));
if ($expectations['gls']['home'] > $gls_home_max) { if (isset($expectations['gls'])) {
$expectations['gls']['home'] = $gls_home_max; if ($expectations['gls']['home'] > $gls_home_max) {
} $expectations['gls']['home'] = $gls_home_max;
if ($expectations['gls']['away'] > $gls_away_max) { }
$expectations['gls']['away'] = $gls_away_max; if ($expectations['gls']['away'] > $gls_away_max) {
} $expectations['gls']['away'] = $gls_away_max;
if ($expectations['gls']['home'] < $gls_home_min) { }
$expectations['gls']['home'] = $gls_home_min; if ($expectations['gls']['home'] < $gls_home_min) {
} $expectations['gls']['home'] = $gls_home_min;
if ($expectations['gls']['away'] < $gls_away_min) { }
$expectations['gls']['away'] = $gls_away_min; if ($expectations['gls']['away'] < $gls_away_min) {
$expectations['gls']['away'] = $gls_away_min;
}
} }
} }
} }
+20 -1
View File
@@ -26,7 +26,7 @@ class LoadEventsBoxes
return []; return [];
} }
$expectations = []; $expectations = self::template();
ExpectationsTeam::load($expectations, $filter, $match); ExpectationsTeam::load($expectations, $filter, $match);
@@ -47,4 +47,23 @@ class LoadEventsBoxes
return $expectations; return $expectations;
} }
public static function template()
{
$arr = [];
$bets = ['gls', 'crn', 'fls', 'ofs', 'crd', 'snt', 'tsh'];
foreach ($bets as $bet) {
foreach (['team_home', 'team_away'] as $team) {
foreach (['scored', 'conceded'] as $sc) {
foreach (['home', 'away'] as $ha) {
foreach (['evt', 'sum'] as $es) {
$arr[$bet][$team][$sc][$ha][$es] = 0;
}
}
}
}
}
return $arr;
}
} }
+8 -8
View File
@@ -144,8 +144,8 @@ class BoxesBettypeAll extends StatsOverviewWidget
// $str .= '<div class="col-span-2"></div><div>Home</div><div>Away</div>'; // $str .= '<div class="col-span-2"></div><div>Home</div><div>Away</div>';
foreach ($bets as $name) { foreach ($bets as $name) {
$str .= '<div class="font-normal text-left col-span-2">'.$data[$name]['name'].'</div>'; $str .= '<div class="font-normal text-left col-span-2">'.$data[$name]['name'].'</div>';
$str .= '<div class="text-right">'.number_format($data[$name]['home'], 1).'</div>'; $str .= '<div class="text-right">'.number_format($data[$name]['home'] ?? 0, 1).'</div>';
$str .= '<div class="text-right">'.number_format($data[$name]['away'], 1).'</div>'; $str .= '<div class="text-right">'.number_format($data[$name]['away'] ?? 0, 1).'</div>';
} }
$str .= '</div>'; $str .= '</div>';
@@ -159,8 +159,8 @@ class BoxesBettypeAll extends StatsOverviewWidget
// $str .= '<div class="col-span-2"></div><div>Home</div><div>Away</div>'; // $str .= '<div class="col-span-2"></div><div>Home</div><div>Away</div>';
foreach ($bets as $name) { foreach ($bets as $name) {
$str .= '<div class="font-normal text-left col-span-2">'.$data[$name]['name'].'</div>'; $str .= '<div class="font-normal text-left col-span-2">'.$data[$name]['name'].'</div>';
$str .= '<div class="text-right">'.number_format($data[$name]['home'], 1).'</div>'; $str .= '<div class="text-right">'.number_format($data[$name]['home'] ?? 0, 1).'</div>';
$str .= '<div class="text-right">'.number_format($data[$name]['away'], 1).'</div>'; $str .= '<div class="text-right">'.number_format($data[$name]['away'] ?? 0, 1).'</div>';
} }
$str .= '</div>'; $str .= '</div>';
@@ -174,8 +174,8 @@ class BoxesBettypeAll extends StatsOverviewWidget
// $str .= '<div class="col-span-2"></div><div>Home</div><div>Away</div>'; // $str .= '<div class="col-span-2"></div><div>Home</div><div>Away</div>';
foreach ($bets as $name) { foreach ($bets as $name) {
$str .= '<div class="font-normal text-left col-span-2">'.$data[$name]['name'].'</div>'; $str .= '<div class="font-normal text-left col-span-2">'.$data[$name]['name'].'</div>';
$str .= '<div class="text-right">'.number_format($data[$name]['home'], 1).'</div>'; $str .= '<div class="text-right">'.number_format($data[$name]['home'] ?? 0, 1).'</div>';
$str .= '<div class="text-right">'.number_format($data[$name]['away'], 1).'</div>'; $str .= '<div class="text-right">'.number_format($data[$name]['away'] ?? 0, 1).'</div>';
} }
$str .= '</div>'; $str .= '</div>';
@@ -189,8 +189,8 @@ class BoxesBettypeAll extends StatsOverviewWidget
// $str .= '<div class="col-span-2"></div><div>Home</div><div>Away</div>'; // $str .= '<div class="col-span-2"></div><div>Home</div><div>Away</div>';
foreach ($bets as $name) { foreach ($bets as $name) {
$str .= '<div class="font-normal text-left col-span-2">'.$data[$name]['name'].'</div>'; $str .= '<div class="font-normal text-left col-span-2">'.$data[$name]['name'].'</div>';
$str .= '<div class="text-right">'.number_format($data[$name]['home'], 1).'</div>'; $str .= '<div class="text-right">'.number_format($data[$name]['home'] ?? 0, 1).'</div>';
$str .= '<div class="text-right">'.number_format($data[$name]['away'], 1).'</div>'; $str .= '<div class="text-right">'.number_format($data[$name]['away'] ?? 0, 1).'</div>';
} }
$str .= '</div>'; $str .= '</div>';
@@ -79,7 +79,6 @@ class LoadEventsQueryAll
} }
} }
// dd($handicap_range, $total_range);
/** /**
* STATTISTIC DATA * STATTISTIC DATA
*/ */
@@ -95,7 +94,7 @@ class LoadEventsQueryAll
}) })
->where(function ($query) use ($match, $similar_past_matches) { ->where(function ($query) use ($match, $similar_past_matches) {
if ($similar_past_matches == 'none') { if ($similar_past_matches == 'none') {
return $query->where('home_id', '=', $match->home_id) return $query->orWhere('home_id', '=', $match->home_id)
->orWhere('home_id', '=', $match->away_id) ->orWhere('home_id', '=', $match->away_id)
->orWhere('away_id', '=', $match->home_id) ->orWhere('away_id', '=', $match->home_id)
->orWhere('away_id', '=', $match->away_id); ->orWhere('away_id', '=', $match->away_id);