diff --git a/pfosten/app/Http/Controllers/TippsController.php b/pfosten/app/Http/Controllers/TippsController.php index 14496974..0482e734 100644 --- a/pfosten/app/Http/Controllers/TippsController.php +++ b/pfosten/app/Http/Controllers/TippsController.php @@ -15,12 +15,8 @@ use DB; class TippsController extends Controller { - public function createTipps() { + public static function createTipps($user_id) { $activeSeason = Season::getCurrent(); - $user=Auth::user(); - -// Log::info($user->id); -// Log::info("** Start: createTipps for " . $activeSeason->name . "**"); $rounds = Round::all()->where('season_id', '=', $activeSeason->id); foreach($rounds as $round) { @@ -31,12 +27,12 @@ class TippsController extends Controller // Tipp erzeugen wenn noch nicht vorhanden $tipp = DB::table('tipps')->where([ ['game_id','=',$game->id], - ['user_id','=',$user->id]] + ['user_id','=',$user_id]] )->first(); if (! $tipp) { //Log::info('Creating missing tip: game_id=' . $game->id . ", user_id=" . $user->id); $tipp=Tipp::create([ - 'user_id' => $user->id, + 'user_id' => $user_id, 'game_id'=> $game->id, 'score1'=> -1, 'score2'=> -1, @@ -50,6 +46,13 @@ class TippsController extends Controller } + public static function createAllTips(){ + $users = DB::table('users')->where('deleted',null)->get(); + foreach($users as $user) { + TippsController::createTipps($user->id); + } + } + public function index() { $activeSeason = Season::getCurrent(); @@ -58,7 +61,7 @@ class TippsController extends Controller $user = Auth::user(); - $this->createTipps(); // ggfs. fehlender Tipp Eintraege einfügen + TippsController::createTipps($user->id); // ggfs. fehlender Tipp Eintraege einfügen if ($activeSeason) { diff --git a/pfosten/app/Http/Controllers/UsersController.php b/pfosten/app/Http/Controllers/UsersController.php index 8c282657..4631d11f 100644 --- a/pfosten/app/Http/Controllers/UsersController.php +++ b/pfosten/app/Http/Controllers/UsersController.php @@ -84,4 +84,10 @@ class UsersController extends Controller return redirect('/users'); } + public function ranking() { + TippsController::createAllTips(); + + $users = DB::table('users')->where('deleted',null)->get(); + return view('users.ranking', compact('users')); + } } diff --git a/pfosten/app/User.php b/pfosten/app/User.php index a3b20f40..86a345e9 100644 --- a/pfosten/app/User.php +++ b/pfosten/app/User.php @@ -6,6 +6,9 @@ use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; use App\Season; use App\Payment; +use App\Round; +use App\Game; +use Log; class User extends Authenticatable { @@ -61,4 +64,32 @@ class User extends Authenticatable return null; } + public static function getScore($user_id) { + + Log::info("User::getScore for userid=" . $user_id); + + $season = Season::getCurrent(); + + $rounds = Round::where('season_id','=',$season->id)->get(); + + $totalScore=0; + foreach($rounds as $round) { + $games = Game::where('round_id','=',$round->id)->get(); + Log::info(' round_id=' . $round->id); + foreach ($games as $game) { + + Log::info(' game_id=' . $game->id); + + $tipp = Tipp::getTipp($game->id,$user_id); + $score = Tipp::getScore($tipp->id); + + Log::info(" Game id=" . $game->id. ", Tipp id=". $tipp->id.", score=" . $score); + + $totalScore+=$score; + } + } + Log::info("Total score=" . $totalScore); + return $totalScore; + } + } diff --git a/pfosten/resources/views/layouts/nav.blade.php b/pfosten/resources/views/layouts/nav.blade.php index b477ffb0..1565fb05 100644 --- a/pfosten/resources/views/layouts/nav.blade.php +++ b/pfosten/resources/views/layouts/nav.blade.php @@ -7,7 +7,7 @@ Runden Spieler Tipps - Rangliste + Rangliste Spieler: {{ Auth::user()->name }}(abmelden) @endif diff --git a/pfosten/resources/views/users/ranking.blade.php b/pfosten/resources/views/users/ranking.blade.php new file mode 100644 index 00000000..f4dfca55 --- /dev/null +++ b/pfosten/resources/views/users/ranking.blade.php @@ -0,0 +1,49 @@ +@extends('layouts.layout') + +@section('content') + + + + Rangliste: + + + + + + + Name + Punkte + + + @foreach($users as $user) + + + {{ $user->name }} + {{ App\User::getScore($user->id) }} + + @endforeach + + + + + + + + + + + +@endsection + + + + + + + + + + + + + diff --git a/pfosten/routes/web.php b/pfosten/routes/web.php index 8a623058..cd4a5d24 100644 --- a/pfosten/routes/web.php +++ b/pfosten/routes/web.php @@ -40,6 +40,7 @@ Route::post('/games/store', 'GamesController@store'); Route::get('/users','UsersController@index'); Route::get('/users/edit/{user_id}','UsersController@edit'); Route::post('/users/store','UsersController@store'); +Route::get('/users/ranking','UsersController@ranking'); Route::get('/tipps','TippsController@index'); Route::get('/tipps/edit/{tipp_id}','TippsController@edit');