Tipps und Ranglisten erste Basic Version

This commit is contained in:
Torsten 2017-06-22 21:22:07 +02:00
parent 7a33f5f889
commit 12651fc2e8
6 changed files with 99 additions and 9 deletions

View file

@ -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) {

View file

@ -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'));
}
}

View file

@ -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;
}
}

View file

@ -7,7 +7,7 @@
<a class="lead" href="/rounds">Runden</a> &nbsp; &nbsp; &nbsp;
<a class="lead" href="/users">Spieler</a> &nbsp; &nbsp; &nbsp;
<a class="lead" href="/tipps">Tipps</a> &nbsp; &nbsp; &nbsp;
<a class="lead" href="#" >Rangliste</a> &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;
<a class="lead" href="/users/ranking" >Rangliste</a> &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;
<label class="lead text ml-auto" >Spieler: {{ Auth::user()->name }}</label><a class="lead" href="/logout">(abmelden)</a>
@endif

View file

@ -0,0 +1,49 @@
@extends('layouts.layout')
@section('content')
<section class="jumbotron text-center">
<div class="container">
<div class="lead">Rangliste:</div>
<p>&nbsp;</p>
<div>
<table class="table-bordered">
<tr class="table-bordered">
<td class="table-bordered">Name</td>
<td class="table-bordered">&nbsp;Punkte&nbsp;</td>
</tr>
@foreach($users as $user)
<tr>
<td class="table-bordered">&nbsp;<a class="text list-unstyled" href="/users/edit/{{$user->id}}">{{ $user->name }}&nbsp;</a></td>
<td class="table-bordered">&nbsp;{{ App\User::getScore($user->id) }}&nbsp;</td>
</tr>
@endforeach
</table>
<p>&nbsp;</p>
</div>
</div>
</section>
@endsection

View file

@ -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');