refactor: [business-card] 메뉴 2개로 분리 (파트너 명함신청 / 명함신청 처리)
- 파트너 명함신청 (/sales/business-cards): 모든 사용자 (신청폼+이력) - 명함신청 처리 (/sales/business-cards/manage): 관리자 전용 (2분할) - 뱃지를 manage 라우트에 연동
This commit is contained in:
@@ -15,7 +15,7 @@ public function __construct(
|
||||
) {}
|
||||
|
||||
/**
|
||||
* 목록 페이지 (관리자: 관리뷰 / 파트너: 신청뷰)
|
||||
* 파트너 명함신청 (신청폼 + 이력) - 모든 사용자
|
||||
*/
|
||||
public function index(Request $request): View|Response
|
||||
{
|
||||
@@ -24,26 +24,37 @@ public function index(Request $request): View|Response
|
||||
}
|
||||
|
||||
$user = auth()->user();
|
||||
|
||||
if ($user->isAdmin()) {
|
||||
$search = $request->get('search');
|
||||
$stats = $this->service->getStats();
|
||||
$pendingRequests = $this->service->getPendingRequests($search);
|
||||
$processedRequests = $this->service->getProcessedRequests($search);
|
||||
|
||||
return view('sales.business-cards.admin-index', compact(
|
||||
'stats',
|
||||
'pendingRequests',
|
||||
'processedRequests',
|
||||
'search'
|
||||
));
|
||||
}
|
||||
|
||||
$myRequests = $this->service->getMyRequests($user->id);
|
||||
|
||||
return view('sales.business-cards.partner-index', compact('user', 'myRequests'));
|
||||
}
|
||||
|
||||
/**
|
||||
* 명함신청 처리 (관리자 전용 - 대기/완료 2분할)
|
||||
*/
|
||||
public function manage(Request $request): View|Response
|
||||
{
|
||||
if ($request->header('HX-Request')) {
|
||||
return response('', 200)->header('HX-Redirect', route('sales.business-cards.manage'));
|
||||
}
|
||||
|
||||
if (! auth()->user()->isAdmin()) {
|
||||
abort(403, '관리자만 접근할 수 있습니다.');
|
||||
}
|
||||
|
||||
$search = $request->get('search');
|
||||
$stats = $this->service->getStats();
|
||||
$pendingRequests = $this->service->getPendingRequests($search);
|
||||
$processedRequests = $this->service->getProcessedRequests($search);
|
||||
|
||||
return view('sales.business-cards.admin-index', compact(
|
||||
'stats',
|
||||
'pendingRequests',
|
||||
'processedRequests',
|
||||
'search'
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* 명함 신청 등록
|
||||
*/
|
||||
@@ -86,7 +97,7 @@ public function process(Request $request, int $id)
|
||||
]);
|
||||
}
|
||||
|
||||
return redirect()->route('sales.business-cards.index')
|
||||
return redirect()->route('sales.business-cards.manage')
|
||||
->with('success', '처리가 완료되었습니다.');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,12 +60,12 @@ public function boot(): void
|
||||
$menuBadges['byUrl']['/sales/managers/approvals'] = $approvalStats['pending'];
|
||||
}
|
||||
|
||||
// 명함신청 대기 건수
|
||||
// 명함신청 대기 건수 (관리자용 처리 메뉴에 표시)
|
||||
$businessCardService = app(BusinessCardRequestService::class);
|
||||
$businessCardPending = $businessCardService->getPendingCount();
|
||||
if ($businessCardPending > 0) {
|
||||
$menuBadges['byRoute']['sales.business-cards.index'] = $businessCardPending;
|
||||
$menuBadges['byUrl']['/sales/business-cards'] = $businessCardPending;
|
||||
$menuBadges['byRoute']['sales.business-cards.manage'] = $businessCardPending;
|
||||
$menuBadges['byUrl']['/sales/business-cards/manage'] = $businessCardPending;
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
// 서비스 오류 시 무시
|
||||
|
||||
@@ -1283,9 +1283,10 @@
|
||||
->name('approvals.detail');
|
||||
});
|
||||
|
||||
// 명함신청 관리
|
||||
// 명함신청
|
||||
Route::get('business-cards', [\App\Http\Controllers\Sales\BusinessCardRequestController::class, 'index'])->name('business-cards.index');
|
||||
Route::post('business-cards', [\App\Http\Controllers\Sales\BusinessCardRequestController::class, 'store'])->name('business-cards.store');
|
||||
Route::get('business-cards/manage', [\App\Http\Controllers\Sales\BusinessCardRequestController::class, 'manage'])->name('business-cards.manage');
|
||||
Route::post('business-cards/{id}/process', [\App\Http\Controllers\Sales\BusinessCardRequestController::class, 'process'])->name('business-cards.process');
|
||||
|
||||
// 매니저 검색 (리소스 라우트보다 먼저 정의해야 함!)
|
||||
|
||||
Reference in New Issue
Block a user