diff --git a/pfosten/app/Http/Controllers/Leagues/LeaguesController.php b/pfosten/app/Http/Controllers/Leagues/LeaguesController.php index 3b8e23fd..8a94d03e 100644 --- a/pfosten/app/Http/Controllers/Leagues/LeaguesController.php +++ b/pfosten/app/Http/Controllers/Leagues/LeaguesController.php @@ -198,11 +198,31 @@ class LeaguesController extends Controller $matchesTotal[$match->round_id][$league->id] = $lg; } } - } + } return view ('leagues.matches', compact('season', 'matchesTotal','leagues','leagueNames','roundNames')); } + public static function showLeagueRanking($rank, $maxRoundId=-1) { + $season = Season::getCurrent(); + $leagues = array_reverse(League::getRanking($rank)); + $leagueNames = League::getNames(); + $userNames = User::getNames(); + + $leagueScores = League::getRanking($rank); + return view ('leagues.chart',compact('season','leagues', 'leagueNames', 'userNames','leagueScores')); + } + + public static function showSingleUserMatches($userId) { + $season = Season::getCurrent(); + $leagueNames = League::getNames(); + $roundNames = Round::getNames(); + $matches = Match::getMatchResultsForUser($userId); + + $user = User::where('id','=', $userId)->first(); + $userName = $user->name; + return view ('leagues.playermatches',compact('season','leagueNames','roundNames','matches','userName')); + } } \ No newline at end of file diff --git a/pfosten/app/leagues/League.php b/pfosten/app/leagues/League.php index 3f393f9f..84cd2b24 100644 --- a/pfosten/app/leagues/League.php +++ b/pfosten/app/leagues/League.php @@ -5,6 +5,7 @@ namespace App\Leagues; use Illuminate\Database\Eloquent\Model; use App\Season; +use App\Round; use DB; use Log; @@ -59,4 +60,48 @@ class League extends Model return $league->start_round_id; } + + + public static function cmpScore($score1, $score2) { + return ($score1[1] < $score2[1]); + } + + public static function getRanking($rank) { + $season = Season::getCurrent(); + $leagues = League::where('rank','=',$rank)->where('season_id','=', $season->id)->orderBy('id')->get(); + + error_log("LeagueCount:".sizeof($leagues)); + + $leagueScores=array(); + foreach($leagues as $league) { + $memberIds = LeagueMember::getMembers($league->id); + + $memberScores =array(); + foreach($memberIds as $memberId) { + $tpl=array(); + $tpl[0]=$memberId; + $tpl[1]=0; + $tpl[2]=0; // goals + $tpl[3]=0; // countergoals + $memberScores[$memberId] = $tpl; + } + + $matches=Match::getMatchResults($league->id,-1); + foreach ($matches as $match) { + if (!Round::isCompleted($match->round_id)) { continue; } + $memberScores[$match->user1_id][1] += $match->user1_league_score; + $memberScores[$match->user1_id][2] += $match->user1_rankscore; + $memberScores[$match->user1_id][3] += $match->user2_rankscore; + $memberScores[$match->user2_id][1] += $match->user2_league_score; + $memberScores[$match->user2_id][2] += $match->user2_rankscore; + $memberScores[$match->user2_id][3] += $match->user1_rankscore; + } + usort($memberScores, array('App\Leagues\League','cmpScore')); + + $leagueScores[$league->id]=$memberScores; + + } + return $leagueScores; + } + } diff --git a/pfosten/app/leagues/Match.php b/pfosten/app/leagues/Match.php index e2ca1c44..241db1a8 100644 --- a/pfosten/app/leagues/Match.php +++ b/pfosten/app/leagues/Match.php @@ -155,13 +155,9 @@ class Match extends Model public static function getMatchResults($leagueId, $maxRoundId=-1) { $roundtipps = Tipp::getRoundTipps($maxRoundId); $roundtipps = $roundtipps["roundtipps"]; - $startRoundId = League::getStartRoundId($leagueId); $matches = Match::getLeagueMatches($leagueId, $maxRoundId); - if ($maxRoundId==-1) {$maxRoundId=Round::getLastLockedRoundId();} - - $matchResults=array(); - $members = LeagueMember::getMembers($leagueId); + if ($maxRoundId==-1) {$maxRoundId=Round::getLastCompleteRoundId();} foreach($matches as $key => $match) { if (!Round::isCompleted($match->round_id)) continue; @@ -175,9 +171,12 @@ class Match extends Model $matches[$key]->user1_rankscore = $user1_score; $matches[$key]->user2_rankscore = $user2_score; + //$matches[$key]->user1_hits = $roundtipps[$user1_key][] + if ($user1_score > $user2_score) { $matches[$key]->user1_league_score = 3; $matches[$key]->user2_league_score = 0; + } else if ($user1_score < $user2_score){ $matches[$key]->user1_league_score = 0; @@ -187,8 +186,31 @@ class Match extends Model $matches[$key]->user2_league_score = 1; } -// error_log($match->user1_id." vs ".$match->user2_id. " =>" . $user1_score.":".$user2_score); } return $matches; } + + public static function getMatchResultsForUser($userId, $maxRoundId=-1) { + $season = Season::getCurrent(); + $leagues = League::where('season_id','=',$season->id)->get(); + + $matchList=array(); + + foreach($leagues as $league) { + $member=LeagueMember::where('league_id','=',$league->id)->where('user_id','=',$userId)->first(); + if ($member) { + // $userId ist member dieser League + $matchResults = Match::getMatchResults($league->id,$maxRoundId); + foreach($matchResults as $result) { + if ($result->user1_id == $userId || $result->user2_id==$userId) { + array_push($matchList, $result); + } + } + } + } + + return $matchList; + + } + } diff --git a/pfosten/resources/views/layouts/nav.blade.php b/pfosten/resources/views/layouts/nav.blade.php index f1b95277..6e5685d7 100644 --- a/pfosten/resources/views/layouts/nav.blade.php +++ b/pfosten/resources/views/layouts/nav.blade.php @@ -25,7 +25,7 @@ Spieler-Liga
diff --git a/pfosten/resources/views/leagues/chart.blade.php b/pfosten/resources/views/leagues/chart.blade.php new file mode 100755 index 00000000..97ac86b0 --- /dev/null +++ b/pfosten/resources/views/leagues/chart.blade.php @@ -0,0 +1,34 @@ +@extends('layouts.layout') + +@section('content') +| Punkte | +Spieler | +Torverhältnis | +
| {{$player[1]}} | +{{$userNames[$player[0]]}} | +{{$player[2]}}:{{$player[3]}} | +
+ + @endforeach +
| Liga / Gruppe | +Runde | +Spieler 1 | +Spieler 2 | +
| {{$leagueNames[$match->league_id]}} | +{{$roundNames[$match->round_id]}} | +{{$match->user1_name}} | +{{$match->user2_name}} | +