84 lines
2.2 KiB
PHP
84 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
use App\Models\Location;
|
|
use Carbon\Carbon;
|
|
|
|
class LocationController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
$locations = Location::where('user_id', auth()->id())
|
|
->whereDate('created_at', Carbon::today()) // Hanya ambil data dari hari ini
|
|
->get();
|
|
return view('kurir.dashboard', compact('locations'));
|
|
}
|
|
|
|
// Simpan lokasi yang diupload (via AJAX)
|
|
public function store(Request $request)
|
|
{
|
|
if (!auth()->check()) {
|
|
return response()->json([
|
|
'success' => false,
|
|
'message' => 'User belum login'
|
|
], 401);
|
|
}
|
|
|
|
$request->validate([
|
|
'latitude' => 'required|numeric',
|
|
'longitude' => 'required|numeric',
|
|
]);
|
|
|
|
$location = Location::create([
|
|
'user_id' => auth()->id(),
|
|
'latitude' => $request->latitude,
|
|
'longitude' => $request->longitude,
|
|
]);
|
|
|
|
return response()->json([
|
|
'success' => true,
|
|
'location' => $location,
|
|
]);
|
|
}
|
|
|
|
public function update(Request $request)
|
|
{
|
|
Location::updateOrCreate(
|
|
['user_id' => Auth::id()],
|
|
[
|
|
'latitude' => $request->latitude,
|
|
'longitude' => $request->longitude,
|
|
]
|
|
);
|
|
|
|
return response()->json(['message' => 'Lokasi berhasil diperbarui']);
|
|
}
|
|
|
|
|
|
public function cleanupYesterday()
|
|
|
|
{
|
|
$yesterday = now()->subDay()->toDateString();
|
|
|
|
$idsToKeep = Location::select(DB::raw('MIN(id) as id'))
|
|
->whereDate('created_at', $yesterday)
|
|
->groupBy('user_id')
|
|
->pluck('id');
|
|
|
|
$query = Location::whereDate('created_at', $yesterday)
|
|
->whereNotIn('id', $idsToKeep);
|
|
|
|
$deleted = $query->count(); // Hitung dulu sebelum delete
|
|
|
|
if ($deleted > 0) {
|
|
$query->delete();
|
|
return redirect()->back()->with('success', 'Data kemarin dibersihkan.');
|
|
}
|
|
|
|
return redirect()->back()->with('info', 'Data kemarin sudah bersih, tidak ada yang perlu dihapus.');
|
|
}
|
|
}
|