From 0be540ff83ac68f6dbdb6a6b78b668c90d68f71e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Sat, 28 Feb 2026 00:56:10 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20[approvals]=20=EA=B2=B0=EC=9E=AC?= =?UTF-8?q?=EC=9E=90=20=EA=B2=80=EC=83=89=20API=20=EC=9D=91=EB=8B=B5=20?= =?UTF-8?q?=ED=95=84=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - department_name → department 필드명 변경 (프론트엔드 호환) - tenant_user_profiles 조인으로 position(직급) 데이터 추가 - 부서명 검색 지원 추가 --- .../Api/Admin/TenantUserApiController.php | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/Api/Admin/TenantUserApiController.php b/app/Http/Controllers/Api/Admin/TenantUserApiController.php index abe88a72..af840431 100644 --- a/app/Http/Controllers/Api/Admin/TenantUserApiController.php +++ b/app/Http/Controllers/Api/Admin/TenantUserApiController.php @@ -23,18 +23,16 @@ public function search(Request $request): JsonResponse ->where('user_tenants.tenant_id', $tenantId) ->where('user_tenants.is_active', true); }) - ->leftJoin('departments', function ($join) { - $join->on('departments.id', '=', DB::raw('( - SELECT du.department_id FROM department_user du - WHERE du.user_id = users.id AND du.is_primary = 1 - LIMIT 1 - )')); + ->leftJoin('tenant_user_profiles as tp', function ($join) use ($tenantId) { + $join->on('tp.user_id', '=', 'users.id') + ->where('tp.tenant_id', $tenantId); }) + ->leftJoin('departments', 'departments.id', '=', 'tp.department_id') ->whereNull('users.deleted_at') ->when($query, function ($q) use ($query) { $q->where(function ($sub) use ($query) { $sub->where('users.name', 'like', "%{$query}%") - ->orWhere('users.email', 'like', "%{$query}%"); + ->orWhere('departments.name', 'like', "%{$query}%"); }); }) ->orderBy('users.name') @@ -42,7 +40,8 @@ public function search(Request $request): JsonResponse ->select([ 'users.id', 'users.name', - 'departments.name as department_name', + 'departments.name as department', + 'tp.position_key as position', ]) ->get();