Skip to content

Commit f06233d

Browse files
committed
fix scoreboard
1 parent dfb7cd9 commit f06233d

File tree

3 files changed

+32
-10
lines changed

3 files changed

+32
-10
lines changed

app/Http/Controllers/RoomController.php

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ public function index($id_room){
1919
}
2020
else if($room->status == 1){
2121
$kumpulan_soal = $this->getAllSoalForRoom($room);
22-
dd($kumpulan_soal);
2322
return view('room', compact('kumpulan_soal'));
2423
}
2524
}
@@ -50,7 +49,6 @@ public function store(Request $request){
5049
return redirect()->route('soal', $room->kode)->with([
5150
'id_room' => $room->kode
5251
]);
53-
// return redirect('/room/create');
5452
}
5553

5654
public function soal($id_room){
@@ -89,40 +87,62 @@ public function start(Request $request, $id_room){
8987
}
9088

9189
public function scoreboard($id_room){
92-
$skors = Skor::all()->where('room_id', $id_room);
93-
$current_skor = array_map(function($skor) {return array(User::find($skor->user_id)->username => (int)$skor->skor);}, $skors);
94-
arsort($current_skor);
90+
$room = Room::all()->where('kode', $id_room)->first();
91+
$room_id = $room->id;
92+
$skors = Skor::where('room_id', $room_id)->orderBy('skor_user', 'desc')->get();
93+
$current_skor = array();
94+
foreach($skors as $skor){
95+
array_push($current_skor, array(User::find($skor->user_id)->username => (int)$skor->skor_user));
96+
}
9597
$data = $current_skor;
9698
return view('scoreboard', compact('data'));
9799
}
98100

101+
public function scoreboard_data($id_room){
102+
$room = Room::all()->where('kode', $id_room)->first();
103+
$room_id = $room->id;
104+
$skors = Skor::where('room_id', $room_id)->orderBy('skor_user', 'desc')->get();
105+
$current_skor = array();
106+
foreach($skors as $skor){
107+
array_push($current_skor, array(User::find($skor->user_id)->username => (int)$skor->skor_user));
108+
}
109+
$data = $current_skor;
110+
return compact('data');
111+
}
112+
99113
public function submit(Request $request){
100114
$jawaban = new Jawaban();
101115
$jawaban->soal_id = $request->soal_id;
102116
$jawaban->user_id = $request->user_id;
103117
$jawaban->jawaban = $request->jawaban;
104118
$jawaban->save();
105-
$this->updateScoreBoard($request);
119+
$benar = $this->updateScoreBoard($request);
106120
//broadcast
121+
return redirect()->route('room.scoreboard', ['id_room' => $request->id_room])->with([
122+
'benar' => $benar
123+
]);
107124
}
108125

109126
private function updateScoreBoard($request){
110127
$soal = Soal::all()->find($request->soal_id);
111128
$score = 0;
129+
$benar = 0;
112130
if($request->jawaban == $soal->jawaban){
113-
$remaining_time = 300 - $request->elapsed_time;
114-
$percentage = $remaining_time/300;
131+
$remaining_time = 15 - $request->elapsed_time;
132+
$percentage = $remaining_time/15;
115133
$score = 100 * $percentage;
134+
$benar = 1;
116135
}
117136
$skor = $this->checkIfScoreExisted($request->room_id, $request->user_id);
137+
$room = Room::all()->where('kode', $request->id_room)->first();
118138
if(!$skor){
119139
$skor = new Skor();
120140
$skor->user_id = $request->user_id;
121-
$skor->room_id = $request->room_id;
141+
$skor->room_id = $room->id;
122142
$skor->skor_user = 0;
123143
}
124144
$skor->skor_user = $skor->skor_user + $score;
125-
145+
return $benar;
126146
}
127147

128148
private function checkIfScoreExisted($room_id, $user_id){

resources/views/room/soal.blade.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
@extends('master')
22
@section('css')
3+
{{dd(session('abcd'))}}
34
<style>
45
html, body {
56
background-color: #fff;

routes/web.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
Route::get('/soal', 'RoomController@soal')->name('soal');
2727
Route::post('/soal', 'RoomController@addSoal')->name('soal.add');
2828
Route::get('/scoreboard', 'RoomController@scoreboard')->name('room.scoreboard');
29+
Route::get('/scoreboard/data', 'RoomController@scoreboard_data')->name('room.scoreboard.data');
2930
Route::post('/submit', 'RoomController@submit')->name('room.submit');
3031
Route::post('/start', 'RooomController@start')->name('room.start');
3132
});

0 commit comments

Comments
 (0)