feat:파트너 검색에 포지션(역할) 필드 추가
- searchPartners 역할 필터를 sales만 → sales/manager 모두 포함하도록 확장 - 사용자 역할(영업파트너/상담매니저)을 position 필드로 API 응답에 추가 - handlePartnerSelect에 position 매핑 추가 (key: position, label: 포지션/직책/역할) - PartnerSearchModal 검색 결과에 position 배지 표시 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -37,9 +37,11 @@ public function searchPartners(Request $request): JsonResponse
|
||||
$query = User::where('is_active', true)
|
||||
->whereHas('userRoles', function ($w) use ($tenantId) {
|
||||
$w->where('tenant_id', $tenantId)
|
||||
->whereHas('role', fn($r) => $r->where('name', 'sales'));
|
||||
->whereHas('role', fn($r) => $r->whereIn('name', ['sales', 'manager']));
|
||||
})
|
||||
->with('salesPartner');
|
||||
->with(['salesPartner', 'userRoles' => function ($q) use ($tenantId) {
|
||||
$q->where('tenant_id', $tenantId)->with('role');
|
||||
}]);
|
||||
|
||||
if ($q !== '') {
|
||||
$query->where(function ($w) use ($q) {
|
||||
@@ -51,8 +53,11 @@ public function searchPartners(Request $request): JsonResponse
|
||||
|
||||
$users = $query->orderBy('name')->limit(20)->get();
|
||||
|
||||
$data = $users->map(function ($user) {
|
||||
$roleLabels = ['sales' => '영업파트너', 'manager' => '상담매니저'];
|
||||
|
||||
$data = $users->map(function ($user) use ($roleLabels) {
|
||||
$sp = $user->salesPartner;
|
||||
$roles = $user->userRoles->map(fn($ur) => $roleLabels[$ur->role?->name] ?? null)->filter()->values();
|
||||
return [
|
||||
'id' => $user->id,
|
||||
'name' => $user->name,
|
||||
@@ -61,6 +66,7 @@ public function searchPartners(Request $request): JsonResponse
|
||||
'company_name' => $sp?->company_name,
|
||||
'biz_no' => $sp?->biz_no,
|
||||
'address' => $sp?->address,
|
||||
'position' => $roles->implode('/'),
|
||||
];
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user