Fungsi stats.vocherrealtime (yang di dalam kode tertulis sebagai voucherRealtime) adalah bagian dari sistem statistik di dashboard untuk menghitung total pendapatan dari voucher hotspot yang dihasilkan.
Berikut adalah penjelasan teknis mengenai cara kerjanya:
1. Sumber Data (Database)
Data diambil dari tabel billing_history (riwayat pembuatan/penjualan voucher) dan digabungkan (join) dengan tabel hotspot_profile_metadata (pengaturan harga per profil).
2. Logika Perhitungan (Backend)
Perhitungan ini dilakukan di dalam DashboardController.php dengan logika sebagai berikut:
Query SQL
Sistem menjumlahkan (SUM) harga dari semua voucher milik user tersebut.
Penentuan Harga
Menggunakan fungsi:
COALESCE(pm.price, bh.price)
Artinya:
- Jika ada harga terbaru yang diatur di menu Profile (
hotspot_profile_metadata), maka harga itulah yang dipakai. - Jika tidak ada, sistem akan menggunakan harga yang tersimpan saat voucher pertama kali dibuat di
billing_history.
3. Tampilan di Dashboard (Frontend)
Di file dashboard.blade.php, data ini dikelola menggunakan AlpineJS:
- Variabel
$voucherRealtimedari PHP dikirim ke objek JavaScriptstats. - Fungsi
formatRupiah(stats.voucherRealtime)mengubah angka tersebut menjadi format mata uang IDR.
4. Sinkronisasi Real-time
Meskipun angkanya merupakan total akumulasi, sistem memiliki mekanisme sinkronisasi otomatis:
Broadcasting
Perubahan data (saat voucher baru terjual atau dibuat) dikirim secara instan ke browser menggunakan Laravel Echo (WebSockets) melalui event DashboardStatsUpdated.
Sync Service
Ada layanan MikrotikSyncService yang secara berkala menghitung ulang statistik ini dan menyiarkannya ke dashboard agar angka selalu akurat tanpa perlu refresh halaman.
Ringkasan Alur
Voucher Dibuat → Masuk ke billing_history
Dashboard Update → Menampilkan total nilai rupiah dari seluruh voucher berdasarkan harga profil
WebSocket → Memastikan angka update otomatis di layar tanpa refresh
Top comments (0)