diff --git a/app/Http/Controllers/Sales/SalesManagerController.php b/app/Http/Controllers/Sales/SalesManagerController.php index 38806bf4..1d62eab7 100644 --- a/app/Http/Controllers/Sales/SalesManagerController.php +++ b/app/Http/Controllers/Sales/SalesManagerController.php @@ -32,10 +32,11 @@ public function index(Request $request): View|Response 'search' => $request->get('search'), 'role' => $request->get('role'), 'approval_status' => $request->get('approval_status'), + 'parent_id' => auth()->id(), // 현재 로그인한 사용자가 유치한 파트너만 조회 ]; $partners = $this->service->getSalesPartners($filters)->paginate(20); - $stats = $this->service->getStats(); + $stats = $this->service->getStats(auth()->id()); // 통계도 현재 사용자 기준 return view('sales.managers.index', compact('partners', 'stats')); } diff --git a/app/Services/Sales/SalesManagerService.php b/app/Services/Sales/SalesManagerService.php index c7a5a36e..1a25036b 100644 --- a/app/Services/Sales/SalesManagerService.php +++ b/app/Services/Sales/SalesManagerService.php @@ -397,6 +397,11 @@ public function getSalesPartners(array $filters = []) $query->where('approval_status', $filters['approval_status']); } + // 유치자(추천인) 필터 - 현재 로그인한 사용자가 유치한 파트너만 + if (!empty($filters['parent_id'])) { + $query->where('parent_id', $filters['parent_id']); + } + return $query->orderBy('name'); } @@ -453,7 +458,7 @@ public function getSalesRoles() /** * 통계 조회 */ - public function getStats(): array + public function getStats(?int $parentId = null): array { $tenantId = session('selected_tenant_id', 1); @@ -465,6 +470,11 @@ public function getStats(): array }); }); + // 유치자 기준 필터 + if ($parentId) { + $baseQuery->where('parent_id', $parentId); + } + return [ 'total' => (clone $baseQuery)->count(), 'pending' => (clone $baseQuery)->where('approval_status', 'pending')->count(),