123 lines
3.5 KiB
PHP
123 lines
3.5 KiB
PHP
<?php
|
|
|
|
namespace App\Filament\Imports\Helper;
|
|
|
|
use App\Models\StatistikoPlayer;
|
|
use App\Traits\UpdateHelper;
|
|
use Illuminate\Support\LazyCollection;
|
|
use Spatie\SimpleExcel\SimpleExcelReader;
|
|
|
|
class ImportPlayer
|
|
{
|
|
use UpdateHelper;
|
|
|
|
public static function run(string $filePath): void
|
|
{
|
|
$fieldnames = [
|
|
'sport_id',
|
|
'match_id',
|
|
'ss_player_id',
|
|
'activeteam_id',
|
|
'playersubstitute_id',
|
|
'goals',
|
|
'assists',
|
|
'own_goals',
|
|
'shots_on_target',
|
|
'shots_off_target',
|
|
'shots_blocked',
|
|
'fouls',
|
|
'was_fouled',
|
|
'offsides',
|
|
'possessions_lost',
|
|
'total_tackles',
|
|
'touches',
|
|
'total_cross',
|
|
'cross_done',
|
|
'total_dribbles',
|
|
'dribbles_won',
|
|
'total_ground_duels',
|
|
'total_ground_duels_won',
|
|
'total_aerial_duels',
|
|
'total_duels_aerial_won',
|
|
'total_pass',
|
|
'pass',
|
|
'total_long_balls',
|
|
'long_balls',
|
|
'blocked_shots',
|
|
'clearances',
|
|
'dribbled_past',
|
|
'hit_woodwork',
|
|
'interceptions',
|
|
'key_pass',
|
|
'last_man_tackle',
|
|
'dispossessed',
|
|
'clearance_off_line',
|
|
'bcc',
|
|
'bcm',
|
|
'errors_lead_to_a_goal',
|
|
'errors_lead_to_a_shot',
|
|
'penalty_committed',
|
|
'penalty_miss',
|
|
'penalty_save',
|
|
'penalty_won',
|
|
'saves',
|
|
'saves_from_in_box',
|
|
'total_runs_out',
|
|
'runs_out',
|
|
'punches',
|
|
'good_high_claim',
|
|
'minutes_played',
|
|
'lineup',
|
|
'minute_event_during_the_match',
|
|
'type_event_during_the_match',
|
|
'description_event_during_the_match',
|
|
'subtype_event_during_the_match',
|
|
'card_yellow',
|
|
'card_yellowred',
|
|
'card_red',
|
|
'ingamepenalty_missed',
|
|
'penaltyshoutout_scored',
|
|
'penaltyshoutout_missed',
|
|
'player_position',
|
|
'playerrating_value',
|
|
'tm_player_id',
|
|
];
|
|
|
|
SimpleExcelReader::create(storage_path('app/public/'.$filePath))
|
|
->getRows()
|
|
->chunk(1000)
|
|
->each(function (LazyCollection $chunk) use ($fieldnames) {
|
|
|
|
foreach ($chunk as $row) {
|
|
|
|
$row = array_values($row);
|
|
|
|
$match_id = 0;
|
|
$ss_player_id = 0;
|
|
|
|
$update_array = [];
|
|
foreach ($fieldnames as $key => $name) {
|
|
if ($key == 1) {
|
|
$match_id = (int) $row[$key];
|
|
} elseif ($key == 2) {
|
|
$ss_player_id = (int) $row[$key];
|
|
} else {
|
|
$update_array[$name] = $row[$key];
|
|
}
|
|
}
|
|
|
|
StatistikoPlayer::updateOrCreate(
|
|
[
|
|
'match_id' => $match_id,
|
|
'ss_player_id' => $ss_player_id,
|
|
],
|
|
$update_array
|
|
);
|
|
}
|
|
});
|
|
|
|
/**update statistic player tabel */
|
|
UpdateHelper::updatePlayers(1000000);
|
|
}
|
|
}
|