From 82d6e6a1197304a07e3cb98ca32ead4d563f9dbf Mon Sep 17 00:00:00 2001 From: Torsten Date: Thu, 17 Aug 2017 17:41:11 +0200 Subject: [PATCH] Cached ranking as default, mockup quota editor --- .../app/Http/Controllers/UsersController.php | 177 ++-------- .../resources/views/seasons/index.blade.php | 21 ++ .../resources/views/users/ranking.blade.php | 329 ++++++++++-------- .../resources/views/users/ranking2.blade.php | 205 ----------- pfosten/routes/web.php | 1 - 5 files changed, 234 insertions(+), 499 deletions(-) delete mode 100755 pfosten/resources/views/users/ranking2.blade.php diff --git a/pfosten/app/Http/Controllers/UsersController.php b/pfosten/app/Http/Controllers/UsersController.php index a0e09d89..14d531eb 100755 --- a/pfosten/app/Http/Controllers/UsersController.php +++ b/pfosten/app/Http/Controllers/UsersController.php @@ -45,6 +45,11 @@ class UsersController extends Controller $users = DB::table('users')->where('deleted',null)->orderBy('lastname')->get(); + foreach($users as $user) { + Log::info($user->id); + } + + return view('users.index', compact('users','active_user_count')); } @@ -112,147 +117,10 @@ class UsersController extends Controller - public function ranking($round_id) { - Log::info("Start ranking"); - - $currentSeason=Season::getCurrent(); - if (!$currentSeason) { return redirect("/"); } - - if($round_id==-1) { - $round_id = Round::getLastLockedRoundId(); - if ($round_id==-1) { - - $sql="select DATE_FORMAT(date_sub(min(games.kickoff), interval 1 hour),'%d.%m.%Y %H:%i') as start_date from rounds,games where rounds.season_id=".$currentSeason->id." and games.round_id=rounds.id;"; - $date = DB::select($sql); - - if (count($date)>0) { - $start_date = $date[0]->start_date; - return view('users.no_ranking', compact('start_date')); - } else { - return redirect("/"); - } - } - } - - if (Auth::guest()) { return redirect("/"); } - - TippsController::createAllTips(); - - $users = DB::table('users')->where('deleted',null)->get(); - - $highestDayScore=0; - - // Tagessieg - foreach($users as $user) { - //Log::info("User: ".$user->id.", ".$user->fullname); - $user->totalScore=0; // Summe Ranglisten-Punkte bis heute - $user->dayScore=0; // Heute gemachte Ranglisten-Punkte - - $user->dayWinScore=0; // Tagessieg-Punkte, nur exakte Ergebnisse zählen - $user->dayWinHighestJoker=0; // Tagessieg-Punkte, nur exakte Ergebnisse zählen - - $round=Round::where('id','=',$round_id)->first(); - $games=Game::where('round_id','=',$round->id)->get(); - //Log::info('Nr of games found: '.count($games)." game->id=".$round->id." user->id=".$user->id ); - foreach($games as $game) { - $tipp = Tipp::where([['game_id','=',$game->id],['user_id','=',$user->id]])->first(); - if ($tipp) { - $score = Tipp::getDayScoreLocal($game->score1,$game->score2,$tipp->score1,$tipp->score2,$tipp->joker); - if ($score > $user->dayWinScore) { - $user->dayWinScore = $score; - - } - if ($score > $highestDayScore) { $highestDayScore = $score; } - - } else { - Log::info("No tipp found for game_id=".$game->id.", user_id=".$user->id); - } - } - } - - - //Tendency Key=UserID_Runde - $tendencies=array('0_0'=>0); - - - // Punktrangliste - $rounds=Round::where([['season_id','=',$currentSeason->id],['id','<=',$round_id]])->orderBy('id')->get(); - foreach($rounds as $round) { - - $games=Game::where('round_id','=',$round->id)->orderBy('id')->get(); - $index=0; - - foreach($games as $game) { - foreach($users as $user) { - $key = $user->id."_".$round->id; - $user->tendencyCount=0;// 4 correct tendencies ==> +2 bonus score - $tipp = Tipp::where('game_id','=',$game->id)->where('user_id','=',$user->id)->first(); - - if ($tipp) { - // Ranglisten-Punkte berechen - $score = Tipp::getScoreLocal($game->score1,$game->score2,$tipp->score1,$tipp->score2,$tipp->joker); - - if ($score>0) { - - if (!array_key_exists($key,$tendencies)) { $tendencies[$key]=0; } - $tendencies[$key]+=1; - - } - - $user->totalScore += $score; - - if ($game->round_id == $round_id) { - $user->dayScore += $score; - } - - $tippDisplay[$user->id][$game->id][0] = $tipp->score1 ==-1 ? 'x' : $tipp->score1; - $tippDisplay[$user->id][$game->id][1] = $tipp->score2 ==-1 ? 'x' : $tipp->score2; - $tippDisplay[$user->id][$game->id][2] = $tipp->joker; - } - - // Increase score here - if (array_key_exists($key,$tendencies)) { - if ($tendencies[$key] == 4) { - //Log::info("Increasing score ! userid=" . $user->id . ", gameid " . $game->id . ", roundid " . $round->id . ", tippid " . $tipp->id . ", tendency=" . $tendencies[$key]); - $user->totalScore += 2; - $user->dayScore+=2; - } - } - } - $index+=1; - } - } - - $arr=[]; - foreach($users as $user) { - array_push($arr, $user); - } - usort($arr, array($this,"cmp")); - $users=$arr; - - $rank=1; - foreach($users as $user) { - $user->rank =$rank; - $rank +=1; - } - - $round=Round::where('id','=',$round_id)->first(); - $games=Game::where('round_id','=',$round->id)->get(); - - $all_rounds=Round::where('season_id','=',$currentSeason->id)->get(); - return view('users.ranking', compact('users','round','all_rounds','games','tippDisplay','highestDayScore')); - - } - - public function cmp($user1, $user2) { - return ($user1->totalScore < $user2->totalScore); - } - - - public function ranking2($max_round_id) { + public function ranking($max_round_id) { $currentSeason = Season::getCurrent(); @@ -291,6 +159,9 @@ class UsersController extends Controller $user_ids=array(); $round_ids=array(); + + + if ($max_round_id==-1) { $max_round_id=Round::getLastLockedRoundId(); } foreach ($result as $entry) { @@ -339,12 +210,15 @@ class UsersController extends Controller array_push($roundtipps[$key]['tipps'], $entry->tipp_score1, $entry->tipp_score2, $entry->joker); array_push($roundtipps[$key]['results'], $entry->game_score1, $entry->game_score2); + } Log::info("max_round_id=".$max_round_id); // Aufbau der Rankingliste in rankingDisplay, sowie aufaddieren der jeweiligen Punkte. $rankingDisplay=array(); + + foreach ($user_ids as $user_id) { $rankscore_total= 0; $payout_sum = 0; @@ -354,6 +228,7 @@ class UsersController extends Controller $key = $round_id . "_" . $user_id; if ($user_id==1) { Log::info("Dayscore round: ".$round_id." = ".$roundtipps[$key]['dayscore']);} if ($user_id==1) { Log::info("Rankscore round: ".$round_id." = ".$roundtipps[$key]['rankscore']);} + if (!array_key_exists($user_id, $rankingDisplay)) { $rankingDisplay[$user_id] = array(); @@ -374,8 +249,7 @@ class UsersController extends Controller $rankingDisplay[$user_id]["tipp_score1"] = $roundtipps[$key]["tipps"][0]; $rankingDisplay[$user_id]["tipp_score2"] = $roundtipps[$key]["tipps"][1]; $rankingDisplay[$user_id]["joker1"] = $roundtipps[$key]["tipps"][2]; - - $rankingDisplay[$user_id]["result_score1"] = + $rankingDisplay[$user_id]["result_score1"] = $roundtipps[$key]["results"][0]; $rankingDisplay[$user_id]["result_score2"] = $roundtipps[$key]["results"][1]; // Determine coloration for Game1 @@ -386,6 +260,9 @@ class UsersController extends Controller $rankingDisplay[$user_id]["tipp_score3"] = $roundtipps[$key]["tipps"][3]; $rankingDisplay[$user_id]["tipp_score4"] = $roundtipps[$key]["tipps"][4]; $rankingDisplay[$user_id]["joker2"] = $roundtipps[$key]["tipps"][5]; + $rankingDisplay[$user_id]["result_score3"] = $roundtipps[$key]["results"][2]; + $rankingDisplay[$user_id]["result_score4"] = $roundtipps[$key]["results"][3]; + // Determine coloration for Game2 $rankingDisplay[$user_id]["trendCol2"] = Tipp::trendCol($roundtipps[$key]["results"][2],$roundtipps[$key]["results"][3], $roundtipps[$key]["tipps"][3],$roundtipps[$key]["tipps"][4], @@ -394,6 +271,8 @@ class UsersController extends Controller $rankingDisplay[$user_id]["tipp_score5"] = $roundtipps[$key]["tipps"][6]; $rankingDisplay[$user_id]["tipp_score6"] = $roundtipps[$key]["tipps"][7]; $rankingDisplay[$user_id]["joker3"] = $roundtipps[$key]["tipps"][8]; + $rankingDisplay[$user_id]["result_score5"] = $roundtipps[$key]["results"][4]; + $rankingDisplay[$user_id]["result_score6"] = $roundtipps[$key]["results"][5]; // Determine coloration for Game3 $rankingDisplay[$user_id]["trendCol3"] = Tipp::trendCol($roundtipps[$key]["results"][4],$roundtipps[$key]["results"][5], $roundtipps[$key]["tipps"][6],$roundtipps[$key]["tipps"][7], @@ -402,6 +281,8 @@ class UsersController extends Controller $rankingDisplay[$user_id]["tipp_score7"] = $roundtipps[$key]["tipps"][9]; $rankingDisplay[$user_id]["tipp_score8"] = $roundtipps[$key]["tipps"][10]; $rankingDisplay[$user_id]["joker4"] = $roundtipps[$key]["tipps"][11]; + $rankingDisplay[$user_id]["result_score7"] = $roundtipps[$key]["results"][6]; + $rankingDisplay[$user_id]["result_score8"] = $roundtipps[$key]["results"][7]; // Determine coloration for Game4 $rankingDisplay[$user_id]["trendCol4"] = Tipp::trendCol($roundtipps[$key]["results"][6],$roundtipps[$key]["results"][7], $roundtipps[$key]["tipps"][9],$roundtipps[$key]["tipps"][10], @@ -417,7 +298,7 @@ class UsersController extends Controller // Sortieren nach Rankscore $entries = array(); - usort($rankingDisplay, array($this,"cmp2")); + usort($rankingDisplay, array($this,"cmp")); foreach($rankingDisplay as $entry) { array_push($entries, $entry); @@ -442,17 +323,25 @@ class UsersController extends Controller Log::info("Searching for dayscore winners. Highest dayscore=".$highest_dayscore); // is_dayscorewinner setzen (Tagessieg) + // Nur wenn alle Spiele eingetragen=gespielt sind ! + $round_completed = Round::isCompleted($max_round_id); foreach($rankingDisplay as $key => $user) { - if ($user["dayscore"]>0 && $user["dayscore"]==$highest_dayscore) { + if ($user["dayscore"]>0 && $user["dayscore"]==$highest_dayscore && $round_completed) { $rankingDisplay[$key]["is_dayscorewinner"]=1; Log::info("Setting dayscorewin for player:".$user["user_name"]); } } - return view('users.ranking2', compact('all_rounds','rankingDisplay','userids','round','games')); + // Store game results as separate array. Wir nutzen aus, dass die Ergebnisse in jeder Zeile + // von Rankingdisplay abgespeichert sind. + $game_results=array(); // 4 Spielergebnisse der angezeigten Runde + array_push($game_results,$rankingDisplay[0]["result_score1"],$rankingDisplay[0]["result_score2"],$rankingDisplay[0]["result_score3"],$rankingDisplay[0]["result_score4"],$rankingDisplay[0]["result_score5"],$rankingDisplay[0]["result_score6"],$rankingDisplay[0]["result_score7"],$rankingDisplay[0]["result_score8"]); + + + return view('users.ranking', compact('all_rounds','rankingDisplay','userids','round','games','game_results')); } - public function cmp2($user1, $user2) { + public function cmp($user1, $user2) { return ($user1['rankscore_total'] < $user2['rankscore_total']); } diff --git a/pfosten/resources/views/seasons/index.blade.php b/pfosten/resources/views/seasons/index.blade.php index 4ea411dd..eace313c 100644 --- a/pfosten/resources/views/seasons/index.blade.php +++ b/pfosten/resources/views/seasons/index.blade.php @@ -19,6 +19,27 @@
Neue anlegen
+ + @if ($activeSeason) +
+

Spielquoten

+

Spielmodus: Tagessieg 50%

+

Spielmodus: Platzierung 50%

+

 

+

Platzierungsquoten:

+

Platz 1: 21 %

+

Platz 2: 17 %

+

Platz 3: 13 %

+

Platz 4: 10 %

+

Platz 5: 9%

+

Platz 6: 8%

+

Platz 7: 7%

+

Platz 8: 6%

+

Platz 9: 5%

+

Platz 10: 4%

+
+ @endif + diff --git a/pfosten/resources/views/users/ranking.blade.php b/pfosten/resources/views/users/ranking.blade.php index 4d807f74..ae8807e0 100755 --- a/pfosten/resources/views/users/ranking.blade.php +++ b/pfosten/resources/views/users/ranking.blade.php @@ -17,170 +17,201 @@ @endforeach -
-
-

Saison: {{ App\Season::getCurrent()->name }}

-

Runde: {{ $round->name }}

-

Rangliste und Tippübersicht

- - - - - - - - - - - - - -
=richtige Tendenz
=richtiges Ergebnis
=richtiges Ergebnis mit Joker
+ +
+
+ +

{{ App\Season::getCurrent()->name }}

+

{{ $round->name }}

+

Rangliste und Tippübersicht

+ + + + + + + + + + + + + +
=richtige Tendenz
=richtiges Ergebnis
=richtiges Ergebnis mit Joker

 

- - - - - - - - - +
-
- Rang -
-
-
- Tagessieg -
-
-
- Spieler -
-
-
- Punkte Gesamt -
-
-
- Punkte Tag -
-
-
- {{$games[0]->team1}} -
-
-
- {{$games[0]->team2}} -
-
-
- Joker -
-
+ + + + + + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @foreach($rankingDisplay as $entry) - @foreach($users as $user) - @if (App\User::is_season_paid($user->id)=="Ja") - - - - - - - - - - - - - - - - - - - - @endif - @endforeach - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + -
+
+ Rang +
+
+
+ Tagessieg +
+
+
+ Spieler +
+
+
+ Punkte Gesamt +
+
+
+ Punkte Tag +
+
+
+ {{$games[0]->team1}} +
+
+
+ {{$games[0]->team2}} +
+
+
+ Joker +
+
-
- {{$games[1]->team1}} -
-
-
- {{$games[1]->team2}} -
-
-
- Joker -
-
+
+ {{$games[1]->team1}} +
+
+
+ {{$games[1]->team2}} +
+
+
+ Joker +
+
-
- {{$games[2]->team1}} -
-
-
- {{$games[2]->team2}} -
-
-
- Joker -
-
+
+ {{$games[2]->team1}} +
+
+
+ {{$games[2]->team2}} +
+
+
+ Joker +
+
-
- {{$games[3]->team1}} -
-
-
- {{$games[3]->team2}} -
-
-
- Joker -
-
+
+ {{$games[3]->team1}} +
+
+
+ {{$games[3]->team2}} +
+
+
+ Joker +
+
+
+ Debug (DayWinScore) +
+
Spiel-Ergebnis{{ ($game_results[0]==-1? "" : $game_results[0]) }}{{ ($game_results[1]==-1? "" : $game_results[1]) }}{{ ($game_results[2]==-1? "" : $game_results[2]) }}{{ ($game_results[3]==-1? "" : $game_results[3]) }}{{ ($game_results[4]==-1? "" : $game_results[4]) }}{{ ($game_results[5]==-1? "" : $game_results[5]) }}{{ ($game_results[6]==-1? "" : $game_results[6]) }}{{ ($game_results[7]==-1? "" : $game_results[7]) }}
  {{ $user->rank }} 
 {{ $user->name }}   {{ $user->totalScore }}  {{ $user->dayScore }}  {{ $tippDisplay[$user->id][$games[0]->id][0] }}  {{ $tippDisplay[$user->id][$games[0]->id][1] }} 
 {{$tippDisplay[$user->id][$games[1]->id][0] }}  {{$tippDisplay[$user->id][$games[1]->id][1] }} 
 {{$tippDisplay[$user->id][$games[2]->id][0] }}  {{$tippDisplay[$user->id][$games[2]->id][1] }} 
 {{$tippDisplay[$user->id][$games[3]->id][0] }}  {{$tippDisplay[$user->id][$games[3]->id][1] }} 
  {{ $entry["rank"] }} 
 {{ $entry["user_name"] }}   {{ $entry["rankscore_total"] }}  {{ $entry["rankscore"] }}  {{ str_replace("-1","x",$entry["tipp_score1"]) }}  {{ str_replace("-1","x",$entry["tipp_score2"]) }} 
 {{ str_replace("-1","x",$entry["tipp_score3"]) }}  {{ str_replace("-1","x",$entry["tipp_score4"]) }} 
 {{ str_replace("-1","x",$entry["tipp_score5"]) }}  {{ str_replace("-1","x",$entry["tipp_score6"]) }} 
 {{ str_replace("-1","x",$entry["tipp_score7"]) }}  {{ str_replace("-1","x",$entry["tipp_score8"]) }} 
 {{ $entry["dayscore"] }} 
-

 

+ @endforeach + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + -
+

 

+
+ @endsection diff --git a/pfosten/resources/views/users/ranking2.blade.php b/pfosten/resources/views/users/ranking2.blade.php deleted file mode 100755 index 0294d5d3..00000000 --- a/pfosten/resources/views/users/ranking2.blade.php +++ /dev/null @@ -1,205 +0,0 @@ -@extends('layouts.layout') - -@section('content') - -
- - @foreach($all_rounds as $r) - @if (App\Round::hasLockedGame($r->id) ) -
- @if ($r->id == $round->id) - - @else - {{$r->name}} - @endif -
- @endif - @endforeach - -
- - -
-
- -

Saison: {{ App\Season::getCurrent()->name }}

-

Runde: {{ $round->name }}

-

Rangliste und Tippübersicht

- - - - - - - - - - - - - -
=richtige Tendenz
=richtiges Ergebnis
=richtiges Ergebnis mit Joker
-

 

- - - - - - - - - - - - - - - - - - - - - - - - - @foreach($rankingDisplay as $entry) - - - - - - - - - - - - - - - - - - - - - - - @endforeach - - - - - - - - - - - - - - - - - - - -
-
- Rang -
-
-
- Tagessieg -
-
-
- Spieler -
-
-
- Punkte Gesamt -
-
-
- Punkte Tag -
-
-
- {{$games[0]->team1}} -
-
-
- {{$games[0]->team2}} -
-
-
- Joker -
-
-
- {{$games[1]->team1}} -
-
-
- {{$games[1]->team2}} -
-
-
- Joker -
-
-
- {{$games[2]->team1}} -
-
-
- {{$games[2]->team2}} -
-
-
- Joker -
-
-
- {{$games[3]->team1}} -
-
-
- {{$games[3]->team2}} -
-
-
- Joker -
-
-
- Debug (DayWinScore) -
-
  {{ $entry["rank"] }} 
 {{ $entry["user_name"] }}   {{ $entry["rankscore_total"] }}  {{ $entry["rankscore"] }}  {{ $entry["tipp_score1"] }}  {{ $entry["tipp_score2"] }} 
 {{$entry["tipp_score3"] }}  {{$entry["tipp_score4"] }} 
 {{$entry["tipp_score5"] }}  {{$entry["tipp_score6"] }} 
 {{$entry["tipp_score7"] }}  {{$entry["tipp_score8"] }} 
 {{ $entry["dayscore"] }} 
- -

 

- -
- -
- - - -@endsection - - - - - - - - - - - - - diff --git a/pfosten/routes/web.php b/pfosten/routes/web.php index c72dae30..8e68be2a 100644 --- a/pfosten/routes/web.php +++ b/pfosten/routes/web.php @@ -43,7 +43,6 @@ Route::get('/users','UsersController@index'); Route::get('/users/edit/{user_id}','UsersController@edit'); Route::post('/users/store','UsersController@store'); Route::get('/users/ranking/{round_id}','UsersController@ranking'); -Route::get('/users/ranking2/{round_id}','UsersController@ranking2'); Route::get('/tipps','TippsController@index'); Route::get('/tipps/edit/{tipp_id}','TippsController@edit');