pluck('match_id')->toArray(); } else { $matches_played = false; } $team_position = $filter['team_position']; /** * STATTISTIC DATA */ $res = StatistikoEvent::where('league_id', $league_id) ->where(function ($query) use ($team_id, $team_position) { switch ($team_position) { case 'home': return $query->where('home_id', '=', $team_id); case 'away': return $query->where('away_id', '=', $team_id); default: return $query->where('home_id', '=', $team_id) ->orWhere('away_id', '=', $team_id); } }) ->when($matches_played, function ($query) use ($matches_played) { return $query->whereIn('match_id', $matches_played); })->when($start, function ($query) use ($start) { return $query->where('starttime', '>=', $start); })->when($end, function ($query) use ($end) { return $query->where('starttime', '<=', $end); })->first(); $start = $filter['start_date'] ?? 0; $end = $filter['end_date'] ?? 0; $accuracy = (float) $filter['accuracy']; if ($res == null) { $handicap_range = 0; $total_range = 0; } else { $exp_handicap = $res['exp_away'] - $res['exp_home']; $exp_total = $res['exp_away'] + $res['exp_home']; $handicap_range = [$exp_handicap - $accuracy, $exp_handicap + $accuracy]; $total_range = [$exp_total - $accuracy, $exp_total + $accuracy]; } /** * WITH PLAYER */ $tm_player_id = $filter['tm_player_id']; if ($tm_player_id) { $matches_played = StatistikoPlayer::where('tm_player_id', (int) $tm_player_id)->pluck('match_id')->toArray(); } else { $matches_played = false; } $similar_past_matches = $filter['similar_past_matches'] ?? 0; $res = StatistikoEvent::when($league_id, function ($query) use ($league_id, $similar_past_matches) { switch ($similar_past_matches) { case 'league': return $query->where('league_id', $league_id); default: return $query->whereBetween('exp_handicap', $handicap_range); } })->when($matches_played, function ($query) use ($matches_played) { return $query->whereIn('match_id', $matches_played); })->when($handicap_range, function ($query) use ($handicap_range) { return $query->whereBetween('exp_handicap', $handicap_range); })->when($total_range, function ($query) use ($total_range) { return $query->whereBetween('exp_total', $total_range); })->when($start, function ($query) use ($start) { return $query->where('starttime', '>=', $start); })->when($end, function ($query) use ($end) { return $query->where('starttime', '<=', $end); }) ->get(); // switch ($similar_past_matches) { // case 'league': // $res = StatistikoEvent::when($league_id, function ($query) use ($league_id) { // return $query->where('league_id', $league_id); // })->when($matches_played, function ($query) use ($matches_played) { // return $query->whereIn('match_id', $matches_played); // })->when($handicap_range, function ($query) use ($handicap_range) { // return $query->whereBetween('exp_handicap', $handicap_range); // })->when($total_range, function ($query) use ($total_range) { // return $query->whereBetween('exp_total', $total_range); // })->when($start, function ($query) use ($start) { // return $query->where('starttime', '>=', $start); // })->when($end, function ($query) use ($end) { // return $query->where('starttime', '<=', $end); // }) // ->get(); // break; // case 'all': // $res = StatistikoEvent::when($handicap_range, function ($query) use ($handicap_range) { // return $query->whereBetween('exp_handicap', $handicap_range); // })->when($matches_played, function ($query) use ($matches_played) { // return $query->whereIn('match_id', $matches_played); // })->when($total_range, function ($query) use ($total_range) { // return $query->whereBetween('exp_total', $total_range); // })->when($start, function ($query) use ($start) { // return $query->where('starttime', '>=', $start); // })->when($end, function ($query) use ($end) { // return $query->where('starttime', '<=', $end); // }) // ->get(); // break; // // case 'none': // // $res = StatistikoEvent::when($league_id, function ($query) use ($league_id) { // // return $query->where('league_id', $league_id); // // })->when($team_id, function ($query) use ($team_id, $team_position) { // // switch ($team_position) { // // case 'home': // // return $query->where('home_id', $team_id); // // break; // // case 'away': // // return $query->where('away_id', $team_id); // // break; // // default: // // return $query->where('home_id', '=', $team_id)->orWhere('away_id', '=', $team_id); // // break; // // } // // })->when($start, function ($query) use ($start) { // // return $query->where('starttime', '>=', $start); // // })->when($end, function ($query) use ($end) { // // return $query->where('starttime', '<=', $end); // // }) // // ->get(); // // break; // } $datasets = []; $labels = []; $statistic_type = $filter['statistic_type']; if (! $statistic_type || $statistic_type == 'none') { $statistic_type = 'gls'; } foreach ($res as $value) { $labels[] = $value['starttime']->format('d.M.y'); // dd($filter); // $tmp['exp_handicap'] = (float) $value['exp_handicap']; // $tmp['exp_total'] = (float) $value['exp_total']; // $tmp['exp_away'] = (float) $value['exp_away']; // $tmp['exp_home'] = (float) $value['exp_home']; if ($team_position == 'home') { switch ($statistic_type) { case 'gls': $val = (int) $value['gls_h']; break; case 'crn': $val = (int) $value['crn_h']; break; case 'fls': $val = (int) $value['fls_h']; break; case 'ofs': $val = (int) $value['ofs_h']; break; case 'crd': $val = (int) $value['crd_h']; break; case 'snt': $val = (int) $value['snt_h']; break; case 'tsh': $val = (int) $value['tsh_h']; break; } } elseif ($team_position == 'away') { switch ($statistic_type) { case 'gls': $val = (int) $value['gls_a']; break; case 'crn': $val = (int) $value['crn_a']; break; case 'fls': $val = (int) $value['fls_a']; break; case 'ofs': $val = (int) $value['ofs_a']; break; case 'crd': $val = (int) $value['crd_a']; break; case 'snt': $val = (int) $value['snt_a']; break; case 'tsh': $val = (int) $value['tsh_a']; break; } } else { switch ($statistic_type) { case 'gls': if ($team_id == $value['home_id']) { $val = (int) $value['gls_a']; } else { $val = (int) $value['gls_h']; } break; case 'crn': if ($team_id == $value['home_id']) { $val = (int) $value['crn_a']; } else { $val = (int) $value['crn_h']; } break; case 'fls': if ($team_id == $value['home_id']) { $val = (int) $value['fls_a']; } else { $val = (int) $value['fls_h']; } break; case 'ofs': if ($team_id == $value['home_id']) { $val = (int) $value['ofs_a']; } else { $val = (int) $value['ofs_h']; } break; case 'crd': if ($team_id == $value['home_id']) { $val = (int) $value['crd_a']; } else { $val = (int) $value['crd_h']; } break; case 'snt': if ($team_id == $value['home_id']) { $val = (int) $value['snt_a']; } else { $val = (int) $value['snt_h']; } break; case 'tsh': if ($team_id == $value['home_id']) { $val = (int) $value['tsh_a']; } else { $val = (int) $value['tsh_h']; } break; } } $datasets[] = $val; } $data = [ 'datasets' => [ [ 'label' => ucfirst($team_position), 'data' => $datasets, 'fill' => true, 'tension' => 0.5, 'borderColor' => '#36A2EB', ], ], 'labels' => $labels, ]; return $data; } }