protected function calcolaClassifica($giornata) { $squadre_classifica = array(); $campionato_id = $giornata->campionato_id; $array_squadre = Squadra::where('campionato_id', $campionato_id)->get(); $dati_casa = array(); $dati_trasferta = array(); foreach ($array_squadre as $squadra) { $dati_casa[$squadra->id] = $this->ricavaDatiPartiteInCasa($squadra, $giornata); $dati_trasferta[$squadra->id] = $this->ricavaDatiPartiteInTrasferta($squadra, $giornata); $dati_totale[$squadra->id] = $this->ricavaDatiTotaleSquadra($dati_casa[$squadra->id], $dati_trasferta[$squadra->id], $squadra->nomesquadra); $squadre_classifica[$squadra->id] = $dati_totale[$squadra->id]; } //ordina in base a punti->differenza reti->gol fatti->nome usort($squadre_classifica, function ($a, $b) { $result = $b['punti'] - $a['punti']; if ($b['punti'] == $a['punti']) { $result = $b['gol_fatti'] - $b['gol_subiti'] - ($a['gol_fatti'] - $a['gol_subiti']); if ($b['gol_fatti'] - $b['gol_subiti'] == $a['gol_fatti'] - $a['gol_subiti']) { $result = $b['gol_fatti'] - $a['gol_fatti']; if ($b['gol_fatti'] == $a['gol_fatti']) { $result = strcmp($a['nome'], $b['nome']); } } } return $result; }); return $squadre_classifica; }
protected function updateDB($array_results) { $cont_partite_aggiornate = 0; //ricava idcampionato $campionato = Campionato::where('div', $this->div_campionato)->where('stagione', $this->stagione_full)->first(); $idcampionato = $campionato->id; foreach ($array_results as $value) { //ricava id_squadracasa $squadra_casa = $value['HomeTeam']; $id_squadracasa = Squadra::where('campionato_id', $idcampionato)->where('nomecsv', $squadra_casa)->first()->id; //ricava id_squadratrasferta $squadra_trasferta = $value['AwayTeam']; $id_squadratrasferta = Squadra::where('campionato_id', $idcampionato)->where('nomecsv', $squadra_trasferta)->first()->id; //ricava id_partita $id_partita = Partita::where('campionato_id', $idcampionato)->where('id_squadracasa', $id_squadracasa)->where('id_squadratrasferta', $id_squadratrasferta)->first()->id; //verifica se la partita è già stata aggiornata, e in caso positivo va a quella successiva $giocata = Partita::where('id', $id_partita)->first()->giocata; if ($giocata) { continue; } //ricava la data in formato per mysql $data_csv = $value['Date']; //attuale formato dd/mm/yy $data_ok = date_create_from_format('d/m/y', $data_csv); $data_mysql = date_format($data_ok, 'Y-m-d'); //crea il record da scrivere $record_partita = array('giocata' => TRUE, 'data' => $data_mysql, 'fthg' => $value['FTHG'], 'ftag' => $value['FTAG'], 'ftr' => $value['FTR'], 'hthg' => $value['HTHG'], 'htag' => $value['HTAG'], 'htr' => $value['HTR']); //Match Statistics (Opzionali) if (isset($value['Attendance'])) { $record_partita['attendance'] = $value['Attendance']; } if (isset($value['Referee'])) { $record_partita['referee'] = $value['Referee']; } if (isset($value['HS'])) { $record_partita['hs'] = $value['HS']; } if (isset($value['AS'])) { $record_partita['as'] = $value['AS']; } if (isset($value['HST'])) { $record_partita['hst'] = $value['HST']; } if (isset($value['AST'])) { $record_partita['ast'] = $value['AST']; } if (isset($value['HHW'])) { $record_partita['hhw'] = $value['HHW']; } if (isset($value['AHW'])) { $record_partita['ahw'] = $value['AHW']; } if (isset($value['HC'])) { $record_partita['hc'] = $value['HC']; } if (isset($value['AC'])) { $record_partita['ac'] = $value['AC']; } if (isset($value['HF'])) { $record_partita['hf'] = $value['HF']; } if (isset($value['AF'])) { $record_partita['af'] = $value['AF']; } if (isset($value['HO'])) { $record_partita['ho'] = $value['HO']; } if (isset($value['AO'])) { $record_partita['ao'] = $value['AO']; } if (isset($value['HY'])) { $record_partita['hy'] = $value['HY']; } if (isset($value['AY'])) { $record_partita['ay'] = $value['AY']; } if (isset($value['HR'])) { $record_partita['hr'] = $value['HR']; } if (isset($value['AR'])) { $record_partita['ar'] = $value['AR']; } if (isset($value['HBP'])) { $record_partita['hbp'] = $value['HBP']; } if (isset($value['ABP'])) { $record_partita['abp'] = $value['ABP']; } //Quote medie Bookmakers Betbrain $record_partita['bbavh'] = $value['BbAvH']; $record_partita['bbavd'] = $value['BbAvD']; $record_partita['bbava'] = $value['BbAvA']; $record_partita['bbavover25'] = $value['BbAv>2.5']; $record_partita['bbavunder25'] = $value['BbAv<2.5']; //aggiorna la partita sul DB Partita::where('id', $id_partita)->update($record_partita); $cont_partite_aggiornate++; } return $cont_partite_aggiornate; }
protected function ricavaPartiteSquadra($id_squadracasa, $campionato_id) { $array_analisi_squadra = array(); $array_partite_casa = Partita::where('campionato_id', $campionato_id)->where('id_squadracasa', $id_squadracasa)->get(); foreach ($array_partite_casa as $partita) { $nomesquadra = Squadra::where('id', $partita->id_squadratrasferta)->first()->nomesquadra; $giornata = Giornata::where('id', $partita->giornata_id)->first()->giornata; if ($partita->giocata) { switch ($partita->ftr) { case 'H': $esito = 'V'; break; case 'D': $esito = 'N'; break; case 'A': $esito = 'P'; break; } $risultato = $partita->fthg . '-' . $partita->ftag; } else { $esito = null; $risultato = ' - '; } $array_analisi_squadra[$giornata] = array('squadra' => $nomesquadra, 'tipo' => 'Casa', 'esito' => $esito, 'risultato' => $risultato); } $array_partite_trasferta = Partita::where('campionato_id', $campionato_id)->where('id_squadratrasferta', $id_squadracasa)->get(); foreach ($array_partite_trasferta as $partita) { $nomesquadra = Squadra::where('id', $partita->id_squadracasa)->first()->nomesquadra; $giornata = Giornata::where('id', $partita->giornata_id)->first()->giornata; if ($partita->giocata) { switch ($partita->ftr) { case 'H': $esito = 'P'; break; case 'D': $esito = 'N'; break; case 'A': $esito = 'V'; break; } $risultato = $partita->ftag . '-' . $partita->fthg; } else { $esito = null; $risultato = ' - '; } $array_analisi_squadra[$giornata] = array('squadra' => $nomesquadra, 'tipo' => 'Trasferta', 'esito' => $esito, 'risultato' => $risultato); } ksort($array_analisi_squadra); return $this->formattaAnalisiPerTabella($array_analisi_squadra); }
protected function scriviCalendarioSuDatabase($div_campionato) { //ricava idcampionato $campionato = Campionato::where('div', $div_campionato)->where('stagione', $this->stagione)->first(); $idcampionato = $campionato->id; //scrive tabella Squadre foreach ($this->arraySquadre as $value) { $record_squadra = array('campionato_id' => $idcampionato, 'nomesquadra' => $value, 'nomecsv' => $this->getCsvNameFromCalendarName($value)); Squadra::create($record_squadra); } //scrive tabella Giornate foreach ($this->arrayGiornate as $value) { $record_giornata = array('campionato_id' => $idcampionato, 'giornata' => $value['num'], 'data' => $value['data']); Giornata::create($record_giornata); } //scrive tabella Partite foreach ($this->arrayPartite as $value) { //ricava id_giornata $id_giornata = Giornata::where('campionato_id', $idcampionato)->where('giornata', $value['giornata'])->first()->id; //ricava id_squadracasa $id_squadracasa = Squadra::where('campionato_id', $idcampionato)->where('nomesquadra', $value['casa'])->first()->id; //ricava id_squadratrasferta $id_squadratrasferta = Squadra::where('campionato_id', $idcampionato)->where('nomesquadra', $value['trasferta'])->first()->id; $record_partita = array('campionato_id' => $idcampionato, 'giornata_id' => $id_giornata, 'id_squadracasa' => $id_squadracasa, 'id_squadratrasferta' => $id_squadratrasferta); Partita::create($record_partita); } }