fix(controller): resolve F-01 — HomeController now matches MapController dashboard data query
This commit is contained in:
@@ -8,11 +8,37 @@ class HomeController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$stations = DB::table('station')
|
||||
->select('stationid', 'name', 'district', 'lat', 'lng', 'rainfall', 'waterlevel', 'siren')
|
||||
->orderBy('stationid')
|
||||
$data = DB::table('station as s')
|
||||
->leftJoin('rainfall as r', function($join) {
|
||||
$join->on('r.stationid', '=', 's.stationid')
|
||||
->whereRaw('r.timestamp = (SELECT MAX(timestamp) FROM rainfall WHERE stationid = s.stationid)');
|
||||
})
|
||||
->leftJoin('waterlevel as w', function($join) {
|
||||
$join->on('w.stationid', '=', 's.stationid')
|
||||
->whereRaw('w.datetime = (SELECT MAX(datetime) FROM waterlevel WHERE stationid = s.stationid)');
|
||||
})
|
||||
->leftJoin('siren as sir', function($join) {
|
||||
$join->on('sir.stationid', '=', 's.stationid')
|
||||
->whereRaw('sir.active_time = (SELECT MAX(active_time) FROM siren WHERE stationid = s.stationid)');
|
||||
})
|
||||
->whereNotNull('s.lat')
|
||||
->whereNotNull('s.lng')
|
||||
->where(function($query) {
|
||||
$query->whereNotNull('r.hourly')
|
||||
->orWhereNotNull('w.waterlevel');
|
||||
})
|
||||
->select(
|
||||
's.*',
|
||||
'r.hourly as rainfall_value',
|
||||
'r.timestamp as rainfall_time',
|
||||
'w.waterlevel as waterlevel_value',
|
||||
'w.datetime as waterlevel_time',
|
||||
'sir.level as siren_level',
|
||||
'sir.active_time as siren_time'
|
||||
)
|
||||
->orderBy('s.stationid', 'asc')
|
||||
->get();
|
||||
|
||||
return view('layout.dashboard', compact('stations'));
|
||||
return view('layout.dashboard', compact('data'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user