66 lines
1.7 KiB
PHP
66 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use App\Models\Barang;
|
|
use App\Models\Pesanan;
|
|
use App\Models\Transaksi;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use App\Models\Banner;
|
|
use App\Models\FlashSale;
|
|
use Carbon\Carbon;
|
|
|
|
class DashboardController extends Controller
|
|
{
|
|
public function __construct()
|
|
{
|
|
// Pastikan user sudah login
|
|
$this->middleware('auth');
|
|
}
|
|
|
|
public function index()
|
|
{
|
|
// Get user's data
|
|
$user = Auth::user();
|
|
|
|
// Get statistics
|
|
$totalBarang = Barang::count();
|
|
$totalPesanan = Pesanan::where('user_id', $user->id)->count();
|
|
$totalTransaksi = Transaksi::where('user_id', $user->id)->count();
|
|
|
|
// Get recent orders
|
|
$pesanan = Pesanan::with(['barang'])
|
|
->where('user_id', $user->id)
|
|
->latest()
|
|
->take(5)
|
|
->get();
|
|
|
|
// Get pending orders count
|
|
$pesananPending = Pesanan::where('user_id', $user->id)
|
|
->where('status', 'pending')
|
|
->count();
|
|
|
|
// $banners = Banner::where('aktif', true)
|
|
// ->orderBy('urutan', 'asc')
|
|
// ->get();
|
|
|
|
// $activeFlashSale = FlashSale::with(['items' => function($query) {
|
|
// $query->where('aktif', true)
|
|
// ->whereHas('barang');
|
|
// }, 'items.barang'])
|
|
// ->where('aktif', true)
|
|
// ->whereDate('waktu_mulai', '<=', Carbon::now())
|
|
// ->whereDate('waktu_selesai', '>=', Carbon::now())
|
|
// ->first();
|
|
|
|
return view('dashboard.index', compact(
|
|
'totalBarang',
|
|
'totalPesanan',
|
|
'totalTransaksi',
|
|
'pesanan',
|
|
'pesananPending'
|
|
));
|
|
}
|
|
}
|