first&last
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace App\Livewire\Users;
|
||||
|
||||
use App\Models\ActivityLog;
|
||||
use App\Models\ServiceRequest;
|
||||
use App\Models\User;
|
||||
use Livewire\Attributes\Layout;
|
||||
use Livewire\Component;
|
||||
|
||||
#[Layout('layouts.app')]
|
||||
class UserShowPage extends Component
|
||||
{
|
||||
public User $user;
|
||||
|
||||
public function mount(User $user): void
|
||||
{
|
||||
abort_unless(auth()->user()->isAdmin() || auth()->user()->isManager(), 403);
|
||||
$this->user = $user->load('department');
|
||||
}
|
||||
|
||||
public function render()
|
||||
{
|
||||
$assigned = ServiceRequest::query()->where('assigned_to', $this->user->id)->count();
|
||||
$resolved = ServiceRequest::query()
|
||||
->where('assigned_to', $this->user->id)
|
||||
->whereHas('status', fn ($q) => $q->whereIn('slug', ['resolved', 'closed']))
|
||||
->count();
|
||||
$avgRating = ServiceRequest::query()->where('assigned_to', $this->user->id)->whereNotNull('client_rating')->avg('client_rating');
|
||||
|
||||
return view('livewire.users.user-show-page', [
|
||||
'assigned' => $assigned,
|
||||
'resolved' => $resolved,
|
||||
'avgRating' => $avgRating ? round((float) $avgRating, 2) : 0,
|
||||
'activities' => ActivityLog::query()->where('user_id', $this->user->id)->latest('created_at')->limit(20)->get(),
|
||||
'recentRequests' => ServiceRequest::query()->where('assigned_to', $this->user->id)->latest()->limit(10)->get(),
|
||||
])->title("Профиль: {$this->user->name}");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user