fix import player, new columns remove telescope, consider emty vars in PlayerDataMerge
This commit is contained in:
1 parent
43013d3eec
commit
bef576616f
14 files changed
+553
-1437
No files matched your search
@@ -4,57 +4,28 @@ namespace App\Traits\PlayerProps;
|
||||
|
||||
use App\Models\StatistikoDetail;
|
||||
use App\Models\StatistikoEvent;
|
||||
use App\Models\StatistikoPlayer;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
// use Illuminate\Support\Facades\Log;
|
||||
|
||||
trait PlayerQuery
|
||||
{
|
||||
public function loadPartsPlayer(int $part, object $players): array
|
||||
{
|
||||
if (! $this->team_id) {
|
||||
return [];
|
||||
}
|
||||
if (! $this->liga_id) {
|
||||
return [];
|
||||
}
|
||||
|
||||
$player_ids = [];
|
||||
foreach ($players as $row) {
|
||||
$player_ids[] = $row->ss_player_id;
|
||||
}
|
||||
|
||||
$matches_ids = [];
|
||||
switch ($this->season_or_date) {
|
||||
case 'season':
|
||||
if (! $this->season_selected) {
|
||||
$this->season_selected = $this->getCurrentSeason();
|
||||
}
|
||||
|
||||
// Log::debug('home_id away_id', [$this->home_id, $this->away_id]);
|
||||
|
||||
$matches_ids = match ($part) {
|
||||
1 => StatistikoEvent::where('league_id', $this->liga_id)
|
||||
->when($this->season_selected, function ($query) {
|
||||
return $query->whereIn('season', $this->season_selected);
|
||||
})->pluck('match_id')->toArray(),
|
||||
2 => StatistikoEvent::where('league_id', $this->liga_id)
|
||||
->when($this->season_selected, function ($query) {
|
||||
return $query->whereNotIn('season', $this->season_selected);
|
||||
})->pluck('match_id')->toArray()
|
||||
};
|
||||
break;
|
||||
default:
|
||||
$matches_ids = match ($part) {
|
||||
1 => StatistikoEvent::where('league_id', $this->liga_id)
|
||||
->when($this->date_spliter, function ($query) {
|
||||
return $query->whereDate('starttime', '>', $this->date_spliter);
|
||||
})->pluck('match_id')->toArray(),
|
||||
2 => StatistikoEvent::where('league_id', $this->liga_id)
|
||||
->when($this->season_selected, function ($query) {
|
||||
return $query->whereDate('starttime', '<=', $this->date_spliter);
|
||||
})->pluck('match_id')->toArray()
|
||||
};
|
||||
}
|
||||
|
||||
Log::debug('matches_ids', $matches_ids);
|
||||
|
||||
$res = StatistikoPlayer::with('details')->whereIn('ss_player_id', $player_ids)->whereIn('match_id', $matches_ids)->get();
|
||||
$arr = [];
|
||||
$count = 0;
|
||||
$res = $this->getPlayers($part, $player_ids);
|
||||
foreach ($res as $val) {
|
||||
|
||||
$ss_player_id = (int) $val->ss_player_id;
|
||||
@@ -63,24 +34,15 @@ trait PlayerQuery
|
||||
$home_id = (int) $val->event->home_id;
|
||||
$away_id = (int) $val->event->away_id;
|
||||
|
||||
if ($ss_player_id == 1200574) {
|
||||
$count++;
|
||||
}
|
||||
|
||||
if (! isset($arr[$ss_player_id])) {
|
||||
self::array_template($arr, $ss_player_id);
|
||||
}
|
||||
|
||||
if ($activeteam_id == $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 == $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;
|
||||
}
|
||||
$cards = $val->card_yellow + $val->card_yellowred;
|
||||
|
||||
@@ -99,8 +61,6 @@ trait PlayerQuery
|
||||
$arr[$ss_player_id]['was_fouled'] += $val->was_fouled;
|
||||
}
|
||||
|
||||
// Log::debug('count 1200574', [$part => $count]);
|
||||
|
||||
foreach ($players as $player) {
|
||||
if (isset($arr[$player->ss_player_id])) {
|
||||
$arr[$player->ss_player_id]['position'] = $player->position;
|
||||
@@ -128,10 +88,8 @@ trait PlayerQuery
|
||||
$player_ids[] = $player->ss_player_id;
|
||||
}
|
||||
|
||||
$matches_ids = StatistikoEvent::where('league_id', $this->liga_id)->pluck('match_id')->toArray();
|
||||
$res = StatistikoPlayer::with('details')->whereIn('ss_player_id', $player_ids)->whereIn('match_id', $matches_ids)->get();
|
||||
|
||||
$arr = [];
|
||||
$res = $this->getPlayers(1, $player_ids);
|
||||
foreach ($res as $val) {
|
||||
|
||||
$ss_player_id = (int) $val->ss_player_id;
|
||||
@@ -141,19 +99,15 @@ trait PlayerQuery
|
||||
$away_id = (int) $val->event->away_id;
|
||||
|
||||
if (! isset($arr[$ss_player_id])) {
|
||||
self::array_template($arr, $ss_player_id);
|
||||
$this->array_template($arr, $ss_player_id);
|
||||
}
|
||||
|
||||
if ($activeteam_id == $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 == $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;
|
||||
}
|
||||
$cards = $val->card_yellow + $val->card_yellowred;
|
||||
|
||||
@@ -183,7 +137,7 @@ trait PlayerQuery
|
||||
return $arr;
|
||||
}
|
||||
|
||||
public static function array_template(array &$arr, int $ss_player_id)
|
||||
public function array_template(array &$arr, int $ss_player_id)
|
||||
{
|
||||
$arr[$ss_player_id]['ss_player_id'] = 0;
|
||||
$arr[$ss_player_id]['total_events'] = 0;
|
||||
@@ -221,4 +175,40 @@ trait PlayerQuery
|
||||
|
||||
return $tmp;
|
||||
}
|
||||
|
||||
public function getPlayers(int $part, array $player_ids)
|
||||
{
|
||||
switch ($this->season_or_date) {
|
||||
case 'season':
|
||||
if (! $this->season_selected) {
|
||||
$this->season_selected = $this->getCurrentSeason();
|
||||
}
|
||||
|
||||
return match ($part) {
|
||||
1 => StatistikoEvent::with('details')
|
||||
->whereIn('ss_player_id', $player_ids)
|
||||
->when($this->season_selected, function ($query) {
|
||||
return $query->whereIn('season', $this->season_selected);
|
||||
})->pluck('match_id')->toArray(),
|
||||
2 => StatistikoEvent::with('details')
|
||||
->whereIn('ss_player_id', $player_ids)
|
||||
->when($this->season_selected, function ($query) {
|
||||
return $query->whereNotIn('season', $this->season_selected);
|
||||
})->pluck('match_id')->toArray(),
|
||||
};
|
||||
default:
|
||||
return match ($part) {
|
||||
1 => StatistikoEvent::with('details')
|
||||
->whereIn('ss_player_id', $player_ids)
|
||||
->when($this->date_spliter, function ($query) {
|
||||
return $query->whereDate('starttime', '>', $this->date_spliter);
|
||||
})->pluck('match_id')->toArray(),
|
||||
2 => StatistikoEvent::with('details')
|
||||
->whereIn('ss_player_id', $player_ids)
|
||||
->when($this->season_selected, function ($query) {
|
||||
return $query->whereDate('starttime', '<=', $this->date_spliter);
|
||||
})->pluck('match_id')->toArray()
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user