wip pp filter
This commit is contained in:
1 parent
fc1e1b2832
commit
55f31acf2a
23 files changed
+1127
-329
No files matched your search
@@ -3,14 +3,20 @@
|
||||
namespace App\Filament\Pages\Selections;
|
||||
|
||||
use App\Filament\Pages\Selections\Helper\GetSeason;
|
||||
use App\Filament\Widgets\Boxes\LoadPlayerAverages;
|
||||
use App\Models\StatistikoDetail;
|
||||
use App\Models\StatistikoEvent;
|
||||
use App\Models\StatistikoPlayer;
|
||||
|
||||
class LoadPlayerSelection
|
||||
{
|
||||
public static function load(?int $team_id, ?string $team_position, ?array $season, ?string $seasonmode)
|
||||
public static function load(?array $arr)
|
||||
{
|
||||
$season = GetSeason::load($season, $seasonmode);
|
||||
$team_id = $arr['team_id'];
|
||||
|
||||
$team_position = $arr['team_position'];
|
||||
|
||||
$season = GetSeason::load($arr['season'], $arr['season_mode']);
|
||||
|
||||
$matches = StatistikoEvent::whereIn('season', $season)
|
||||
->where(function ($query) use ($team_id, $team_position) {
|
||||
switch ($team_position) {
|
||||
@@ -22,30 +28,50 @@ class LoadPlayerSelection
|
||||
return $query->where('home_id', '=', $team_id)
|
||||
->orWhere('away_id', '=', $team_id);
|
||||
}
|
||||
})->pluck('match_id')->toArray();
|
||||
})->get();
|
||||
|
||||
$matches_count = count($matches);
|
||||
$matches_count = $matches->count();
|
||||
|
||||
$positions_map = LoadPositions::load();
|
||||
|
||||
$players = LoadPlayerAverages::load($team_id, $season);
|
||||
$player_name_map = [];
|
||||
$res = StatistikoDetail::where('ss_team_id', $team_id)->get();
|
||||
foreach ($res as $val) {
|
||||
$player_name_map[$val->ss_player_id]['name'] = $val->player_name;
|
||||
$player_name_map[$val->ss_player_id]['pos'] = $val->position;
|
||||
$player_name_map[$val->ss_player_id]['foot'] = $val->preferred_foot;
|
||||
}
|
||||
|
||||
$arr = [];
|
||||
foreach ($players as $ss_player_id => $val) {
|
||||
if (! isset($arr[$ss_player_id])) {
|
||||
$arr[$ss_player_id]['player_name'] = $val['player_name'];
|
||||
$arr[$ss_player_id]['events_played_home'] = $val['events_played_home'];
|
||||
$arr[$ss_player_id]['events_played_away'] = $val['events_played_away'];
|
||||
$arr[$ss_player_id]['minutes_played_home'] = $val['minutes_played_home'];
|
||||
$arr[$ss_player_id]['minutes_played_away'] = $val['minutes_played_away'];
|
||||
$arr[$ss_player_id]['preferred_foot'] = $val['preferred_foot'] ?? '';
|
||||
$arr[$ss_player_id]['player_position'] = $val['position'] ?? '';
|
||||
$arr[$ss_player_id]['color_level'] = round($matches_count / 3);
|
||||
} else {
|
||||
$arr[$ss_player_id]['events_played_home'] += $val['events_played_home'];
|
||||
$arr[$ss_player_id]['events_played_away'] += $val['events_played_away'];
|
||||
$arr[$ss_player_id]['minutes_played_home'] += $val['minutes_played_home'];
|
||||
$arr[$ss_player_id]['minutes_played_away'] += $val['minutes_played_away'];
|
||||
foreach ($matches as $match) {
|
||||
$players = StatistikoPlayer::where('match_id', $match->match_id)->get();
|
||||
foreach ($players as $val) {
|
||||
$ss_player_id = (int) $val->ss_player_id;
|
||||
|
||||
if (isset($player_name_map[$ss_player_id])) {
|
||||
|
||||
$activeteam_id = (int) $val->activeteam_id;
|
||||
$minutes_played = (int) $val->minutes_played;
|
||||
|
||||
if (! isset($arr[$ss_player_id])) {
|
||||
self::array_template($arr, $ss_player_id);
|
||||
$arr[$ss_player_id]['player_name'] = $player_name_map[$ss_player_id]['name'] ?? '';
|
||||
$arr[$ss_player_id]['preferred_foot'] = $player_name_map[$ss_player_id]['foot'] ?? '';
|
||||
$arr[$ss_player_id]['player_position'] = $player_name_map[$ss_player_id]['pos'] ?? '';
|
||||
$arr[$ss_player_id]['color_level'] = round($matches_count / 3);
|
||||
}
|
||||
|
||||
if ($activeteam_id == $match->home_id) {
|
||||
$arr[$ss_player_id]['events_played_home'] += 1;
|
||||
$arr[$ss_player_id]['minutes_played_home'] += $minutes_played;
|
||||
$arr[$ss_player_id]['events_played_home'] += 1;
|
||||
$arr[$ss_player_id]['minutes_played_home'] += $minutes_played;
|
||||
} elseif ($activeteam_id == $match->away_id) {
|
||||
$arr[$ss_player_id]['events_played_away'] += 1;
|
||||
$arr[$ss_player_id]['minutes_played_away'] += $minutes_played;
|
||||
$arr[$ss_player_id]['events_played_away'] += 1;
|
||||
$arr[$ss_player_id]['minutes_played_away'] += $minutes_played;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -118,4 +144,16 @@ class LoadPlayerSelection
|
||||
|
||||
return sprintf($format, $hours, $minutes);
|
||||
}
|
||||
|
||||
public static function array_template(array &$arr, int $ss_player_id)
|
||||
{
|
||||
$arr[$ss_player_id]['ss_player_id'] = 0;
|
||||
$arr[$ss_player_id]['color_level'] = 0;
|
||||
$arr[$ss_player_id]['preferred_foot'] = '';
|
||||
$arr[$ss_player_id]['player_position'] = '';
|
||||
$arr[$ss_player_id]['events_played_home'] = 0;
|
||||
$arr[$ss_player_id]['events_played_away'] = 0;
|
||||
$arr[$ss_player_id]['minutes_played_home'] = 0;
|
||||
$arr[$ss_player_id]['minutes_played_away'] = 0;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user