117 lines
5.0 KiB
PHP
117 lines
5.0 KiB
PHP
<?php
|
|
require_once __DIR__ . '/../core_config/database.php';
|
|
require_once __DIR__ . '/../core_config/middleware_auth.php';
|
|
requireRole('user');
|
|
|
|
$pdo = Database::getConnection();
|
|
$stats = $pdo->query("SELECT
|
|
(SELECT COUNT(*) FROM spbu) as spbu,
|
|
(SELECT COUNT(*) FROM jalan) as jalan,
|
|
(SELECT COUNT(*) FROM kavling) as kavling,
|
|
(SELECT COUNT(*) FROM rumah_ibadah) as rumah_ibadah,
|
|
(SELECT COUNT(*) FROM warga_miskin) as warga_miskin,
|
|
(SELECT COUNT(*) FROM kawasan_kumuh) as kawasan_kumuh,
|
|
(SELECT COUNT(*) FROM spbu WHERE buka_24_jam=1) as spbu_24jam
|
|
")->fetch();
|
|
|
|
// Hitung kawasan merah (rawan)
|
|
$merahResult = $pdo->query("SELECT COUNT(*) as cnt FROM (
|
|
SELECT k.id FROM kawasan_kumuh k
|
|
LEFT JOIN warga_miskin w ON ST_Contains(k.geom, w.geom)
|
|
GROUP BY k.id HAVING COUNT(w.id) > 3
|
|
) sub")->fetch();
|
|
$kawasanMerah = (int)($merahResult['cnt'] ?? 0);
|
|
|
|
// Hitung blank spot
|
|
$blankCount = $pdo->query("
|
|
SELECT COUNT(*) as cnt
|
|
FROM warga_miskin w
|
|
WHERE NOT EXISTS (
|
|
SELECT 1
|
|
FROM rumah_ibadah ri
|
|
WHERE ST_Distance_Sphere(ST_GeomFromText(ST_AsText(w.geom), 4326), ST_GeomFromText(ST_AsText(ri.geom), 4326)) <= ri.radius_bantuan_meter
|
|
)
|
|
")->fetch();
|
|
$blankSpot = (int)($blankCount['cnt'] ?? 0);
|
|
|
|
$pageTitle = 'Beranda';
|
|
$activeNav = 'dashboard';
|
|
require_once __DIR__ . '/partials/header.php';
|
|
?>
|
|
|
|
<div class="card" style="background: var(--bg-surface); border: 1px solid var(--border-light); margin-bottom: 24px;">
|
|
<h2 style="font-size:1.4rem;font-weight:700;margin-bottom:6px;color:var(--text-primary);">👋 Selamat Datang, <?= htmlspecialchars(currentUser()['nama_lengkap'] ?: currentUser()['username']) ?>!</h2>
|
|
<p style="color:var(--text-secondary);font-size:0.9rem;max-width:600px;">
|
|
Anda masuk sebagai <strong>Pengguna</strong>. Anda dapat melihat seluruh data spasial, analisis, dan berpartisipasi dengan mengirim Laporan Warga atau memberikan ulasan fasilitas.
|
|
</p>
|
|
</div>
|
|
|
|
<div class="stats-grid">
|
|
<div class="stat-card primary">
|
|
<div class="stat-icon"><i class="fas fa-gas-pump"></i></div>
|
|
<div class="stat-body">
|
|
<div class="stat-label">Total SPBU</div>
|
|
<div class="stat-value"><?= $stats['spbu'] ?></div>
|
|
<div class="stat-change"><?= $stats['spbu_24jam'] ?> buka 24 jam</div>
|
|
</div>
|
|
</div>
|
|
<div class="stat-card info">
|
|
<div class="stat-icon"><i class="fas fa-road"></i></div>
|
|
<div class="stat-body">
|
|
<div class="stat-label">Ruas Jalan</div>
|
|
<div class="stat-value"><?= $stats['jalan'] ?></div>
|
|
<div class="stat-change">Segmen terpetakan</div>
|
|
</div>
|
|
</div>
|
|
<div class="stat-card success">
|
|
<div class="stat-icon"><i class="fas fa-mosque"></i></div>
|
|
<div class="stat-body">
|
|
<div class="stat-label">Rumah Ibadah</div>
|
|
<div class="stat-value"><?= $stats['rumah_ibadah'] ?></div>
|
|
<div class="stat-change">Lokasi tercatat</div>
|
|
</div>
|
|
</div>
|
|
<div class="stat-card warning">
|
|
<div class="stat-icon"><i class="fas fa-users"></i></div>
|
|
<div class="stat-body">
|
|
<div class="stat-label">Warga Miskin</div>
|
|
<div class="stat-value"><?= $stats['warga_miskin'] ?></div>
|
|
<div class="stat-change"><?= $blankSpot ?> blank spot</div>
|
|
</div>
|
|
</div>
|
|
<div class="stat-card danger">
|
|
<div class="stat-icon"><i class="fas fa-exclamation-triangle"></i></div>
|
|
<div class="stat-body">
|
|
<div class="stat-label">Kawasan Rawan</div>
|
|
<div class="stat-value"><?= $kawasanMerah ?></div>
|
|
<div class="stat-change">dari <?= $stats['kawasan_kumuh'] ?> kawasan</div>
|
|
</div>
|
|
</div>
|
|
<div class="stat-card violet">
|
|
<div class="stat-icon"><i class="fas fa-vector-square"></i></div>
|
|
<div class="stat-body">
|
|
<div class="stat-label">Kavling / Parsil</div>
|
|
<div class="stat-value"><?= $stats['kavling'] ?></div>
|
|
<div class="stat-change">Bidang tanah</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card" style="background: var(--primary-glow); border: 1px solid var(--primary-light); margin-bottom: 24px;">
|
|
<div style="display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px;">
|
|
<div>
|
|
<h3 style="font-size:1.1rem; font-weight:700; margin-bottom:6px; color:var(--text-primary);">🗺️ Buka Peta Interaktif</h3>
|
|
<p style="color:var(--text-secondary); font-size:0.88rem; max-width:500px;">
|
|
Lihat semua layer data spasial: SPBU, jalan, kavling, rumah ibadah, warga miskin, kawasan kumuh, dan analisis spasial.
|
|
</p>
|
|
</div>
|
|
<div style="display:flex; gap:10px;">
|
|
<a href="<?= app_url('panel_user/peta_user.php') ?>" class="btn btn-success">
|
|
<i class="fas fa-map-marked-alt"></i> Buka Peta
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<?php require_once __DIR__ . '/partials/footer.php'; ?>
|