- 영업관리 대시보드: 수당 현황, 테넌트 진행률, 파트너 활동 - 파트너관리: 영업파트너 CRUD, 역할 관리, 서류 관리 - 영업파트너승인: 신규 파트너 신청 승인/반려 워크플로우 - 상품관리: 카테고리별 상품, 가격/수당률 설정 - 고객관리(관리자): 전사 고객 현황, 본사 진행상태 8단계 - 영업파트너 고객관리: 명함등록 기반 영업권, 테넌트 전환 - 인터뷰 시나리오: 질문 템플릿, 세션 기반 인터뷰 기록 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
6.2 KiB
6.2 KiB
파트너관리
개요
파트너관리는 영업파트너(판매자/매니저)의 등록, 수정, 역할 관리, 서류 관리를 수행하는 기능입니다. 파트너 등록 신청, 서류 업로드, 역할 부여/위임, 계층 구조(추천인) 관리를 지원합니다.
- 라우트:
GET /sales/managers - 미들웨어:
auth,hq.member - UI 기술: Blade + HTMX + Alpine.js + Tailwind CSS
파일 구조
mng/
├── app/Http/Controllers/Sales/
│ └── SalesManagerController.php # 메인 컨트롤러 (425줄)
├── app/Services/Sales/
│ └── SalesManagerService.php # 비즈니스 로직 서비스
├── app/Models/Sales/
│ ├── SalesPartner.php # 영업파트너 모델
│ └── SalesManagerDocument.php # 파트너 서류 모델
└── resources/views/sales/managers/
├── index.blade.php # 파트너 목록
├── create.blade.php # 등록 폼
├── show.blade.php # 상세 페이지
├── edit.blade.php # 수정 폼
└── partials/
├── show-modal.blade.php # 상세 모달
└── edit-modal.blade.php # 수정 모달
api/
└── database/migrations/
└── 2026_01_29_100000_create_sales_partners_table.php
라우트
// routes/web.php (sales prefix 그룹 내)
// Resource 라우트
GET /managers → index() 파트너 목록
GET /managers/create → create() 등록 폼
POST /managers → store() 등록 처리
GET /managers/{id} → show() 상세 페이지
GET /managers/{id}/edit → edit() 수정 폼
PUT /managers/{id} → update() 수정 처리
DELETE /managers/{id} → destroy() 비활성화 (관리자)
// 추가 라우트
GET /managers/{id}/modal-show → modalShow() 상세 모달
GET /managers/{id}/modal-edit → modalEdit() 수정 모달
POST /managers/{id}/approve → approve() 승인
POST /managers/{id}/reject → reject() 반려
POST /managers/{id}/delegate-role → delegateRole() 역할 위임
POST /managers/{id}/assign-role → assignRole() 역할 부여
POST /managers/{id}/remove-role → removeRole() 역할 제거
GET /managers/{id}/documents/{docId}/download → downloadDocument() 서류 다운로드
DELETE /managers/{id}/documents/{docId} → deleteDocument() 서류 삭제
컨트롤러
SalesManagerController
| 메서드 | HTTP | 설명 |
|---|---|---|
index() |
GET | 파트너 목록 (현재 사용자 유치분) |
create() |
GET | 등록 폼 |
store() |
POST | 파트너 등록 (서류 업로드 포함) |
show() |
GET | 상세 페이지 |
edit() |
GET | 수정 폼 |
update() |
PUT | 정보 수정 |
destroy() |
DELETE | 비활성화 (관리자 전용) |
modalShow() |
GET | 상세 모달 (HTMX) |
modalEdit() |
GET | 수정 모달 (HTMX) |
delegateRole() |
POST | 상담매니저 역할 위임 |
assignRole() |
POST | 역할 부여 (sales/manager) |
removeRole() |
POST | 역할 제거 |
downloadDocument() |
GET | 서류 파일 다운로드 |
deleteDocument() |
DELETE | 서류 파일 삭제 |
SalesManagerService
| 메서드 | 설명 |
|---|---|
getSalesPartners() |
필터 적용 파트너 목록 조회 |
getStats() |
파트너 통계 계산 |
getApprovalStats() |
승인 관련 통계 |
createSalesPartner() |
파트너 생성 |
updateSalesPartner() |
파트너 수정 |
approve() |
승인 처리 |
reject() |
반려 처리 |
모델
SalesPartner
테이블: sales_partners
| 필드 | 타입 | 설명 |
|---|---|---|
user_id |
bigint (FK) | 연결된 사용자 ID |
partner_code |
string | 파트너 고유 코드 (SP + 연도 + 순번) |
partner_type |
string | individual(개인) / corporate(법인) |
commission_rate |
decimal(5,2) | 기본 수수료율 |
manager_commission_rate |
decimal(5,2) | 관리자 수수료율 |
bank_name |
string | 은행명 |
account_number |
string | 계좌번호 |
account_holder |
string | 예금주 |
status |
string | pending / active / inactive / suspended |
approved_at |
timestamp | 승인 일시 |
approved_by |
bigint (FK) | 승인자 ID |
total_contracts |
int | 총 계약 건수 (캐시) |
total_commission |
decimal | 총 수당 (캐시) |
- SoftDeletes 적용
SalesManagerDocument
테이블: sales_manager_documents
- 파트너 등록 시 필수 서류 관리 (신분증, 통장사본 등)
DOCUMENT_TYPES상수로 서류 타입 정의
파트너 계층 구조
User 모델의 parent_id를 통한 다단계 구조:
추천인 (parent)
└── 영업파트너 (children)
└── 하위 파트너 (children)
뷰 구성
┌─ 페이지 헤더 ──────────────────────
│ 제목: "파트너관리"
│ [등록] 버튼
│
├─ 통계 카드 ────────────────────────
│ 전체 | 활성 | 대기중 | 비활성
│
├─ 필터 영역 ────────────────────────
│ 검색 (이름, 아이디) | 상태 필터 | 타입 필터
│
├─ 파트너 목록 테이블 ───────────────
│ 이름 | 파트너코드 | 타입 | 수수료율 | 계약수 | 상태 | 작업
│ └─ 작업: 상세, 수정, 역할관리, 승인/반려
│
├─ 등록 폼 ─────────────────────────
│ 사용자 정보, 파트너 타입, 수수료율
│ 계좌 정보, 서류 업로드
│
└─ 상세/수정 모달 ──────────────────
파트너 정보, 계층, 서류 목록, 역할 관리
HTMX 호환성
- Blade + HTMX 기반으로 HX-Redirect 불필요
- 모달로 상세/수정 처리
- HTMX 또는 JavaScript AJAX 호출