From bd371f25d5cff0024543082aaf8beb8bfc1ec910 Mon Sep 17 00:00:00 2001 From: pro Date: Fri, 30 Jan 2026 16:38:16 +0900 Subject: [PATCH] =?UTF-8?q?fix:=EB=8C=80=EC=8B=9C=EB=B3=B4=EB=93=9C?= =?UTF-8?q?=EC=97=90=20=EB=A7=A4=EB=8B=88=EC=A0=80=EB=A1=9C=20=EC=A7=80?= =?UTF-8?q?=EC=A0=95=EB=90=9C=20=EA=B3=84=EC=95=BD=EB=8F=84=20=ED=91=9C?= =?UTF-8?q?=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 내가 등록한 계약 (20% 수당) - 내가 매니저로 지정된 계약 (5% 수당) - 두 목록을 합쳐서 "내 계약 현황"에 표시 Co-Authored-By: Claude Opus 4.5 --- .../Sales/SalesDashboardController.php | 31 ++++++++++++++----- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/Sales/SalesDashboardController.php b/app/Http/Controllers/Sales/SalesDashboardController.php index 8136cf33..745fa704 100644 --- a/app/Http/Controllers/Sales/SalesDashboardController.php +++ b/app/Http/Controllers/Sales/SalesDashboardController.php @@ -107,19 +107,28 @@ private function getDashboardData(Request $request): array 'confirmed_commission' => 0, // 확정 가입비 수당 ]; - // 테넌트 목록 (나와 연결된 계약만 - 내가 등록한 가망고객에서 전환된 테넌트) - // 현재 사용자와 하위 영업파트너 ID 목록 + // 테넌트 목록 (나와 연결된 계약만) + // 1. 내가 등록하거나 내 하위 영업파트너가 등록한 가망고객 + // 2. 내가 매니저로 지정된 계약 $currentUserId = auth()->id(); $childrenIds = auth()->user()->children()->pluck('id')->toArray(); $partnerIds = array_merge([$currentUserId], $childrenIds); - // 내가 등록하거나 내 하위 영업파트너가 등록한 전환된 가망고객의 tenant_id 목록 조회 - $convertedTenantIds = TenantProspect::whereNotNull('tenant_id') + // 1) 내가 등록한 가망고객에서 전환된 tenant_id (20% 수당) + $registeredTenantIds = TenantProspect::whereNotNull('tenant_id') ->where('status', TenantProspect::STATUS_CONVERTED) ->whereIn('registered_by', $partnerIds) ->pluck('tenant_id') ->toArray(); + // 2) 내가 매니저로 지정된 tenant_id (5% 수당) + $managedTenantIds = SalesTenantManagement::where('manager_user_id', $currentUserId) + ->pluck('tenant_id') + ->toArray(); + + // 두 목록 합치기 (중복 제거) + $convertedTenantIds = array_unique(array_merge($registeredTenantIds, $managedTenantIds)); + // 전환된 테넌트만 조회 (최신순, 페이지네이션) $tenants = Tenant::whereIn('id', $convertedTenantIds) ->orderBy('created_at', 'desc') @@ -204,18 +213,26 @@ public function assignManager(int $tenantId, Request $request): JsonResponse */ public function refreshTenantList(Request $request): View { - // 현재 사용자와 하위 영업파트너 ID 목록 + // 테넌트 목록 (나와 연결된 계약만) $currentUserId = auth()->id(); $childrenIds = auth()->user()->children()->pluck('id')->toArray(); $partnerIds = array_merge([$currentUserId], $childrenIds); - // 내가 등록하거나 내 하위 영업파트너가 등록한 전환된 가망고객의 tenant_id 목록 조회 - $convertedTenantIds = TenantProspect::whereNotNull('tenant_id') + // 1) 내가 등록한 가망고객에서 전환된 tenant_id (20% 수당) + $registeredTenantIds = TenantProspect::whereNotNull('tenant_id') ->where('status', TenantProspect::STATUS_CONVERTED) ->whereIn('registered_by', $partnerIds) ->pluck('tenant_id') ->toArray(); + // 2) 내가 매니저로 지정된 tenant_id (5% 수당) + $managedTenantIds = SalesTenantManagement::where('manager_user_id', $currentUserId) + ->pluck('tenant_id') + ->toArray(); + + // 두 목록 합치기 (중복 제거) + $convertedTenantIds = array_unique(array_merge($registeredTenantIds, $managedTenantIds)); + // 전환된 테넌트만 조회 (최신순, 페이지네이션) $tenants = Tenant::whereIn('id', $convertedTenantIds) ->orderBy('created_at', 'desc')