Admin APIAdmin All Pending Participants API
GET / — 전체/복수 캠페인 목록
여러 캠페인의 미처리 대상자를 한 번에 조회합니다.
전체/복수 캠페인 미처리 대상자 목록
campaignNos 가 비어있으면 활성(state=true) 캠페인 전체를 대상으로 조회합니다. 여러 캠페인을 한 화면에 모아서 볼 때 사용합니다.
HTTP 요청
GET /ai/admin/pending-participants
Authorization: Bearer {access_token}Query Parameters
| 파라미터 | 타입 | 필수 | 기본값 | 설명 |
|---|---|---|---|---|
campaignNos | int[] | 아니오 | 활성 캠페인 전체 | multi 지원 (?campaignNos=1&campaignNos=2) |
cases | PendingCase[] | 아니오 | 전부 | multi 지원 |
overdueStatuses | OverdueStatus[] | 아니오 | 전부 | multi 지원 |
contactFilter | ContactFilter | 아니오 | ALL | 연락 여부 필터 |
search | string | 아니오 | 닉네임/이메일/전화 like 검색 | |
page | int | 아니오 | 0 | Spring Pageable |
size | int | 아니오 | 20 | 최대 권장 100 |
sort | string | 아니오 | deadline,asc | deadline, lastContactedAt, appliedAt |
응답 데이터 규모가 커질 수 있으므로 운영 중 조회 시에는 overdueStatuses=OVERDUE,TODAY 또는 cases=CONTRACT_UNSIGNED 등으로 범위를 좁혀 호출하는 것을 권장합니다.
응답
성공 응답 (200 OK)
{
"status": 200,
"code": null,
"message": "전체 미처리 대상자 조회 성공",
"data": {
"items": [
{
"applicationId": 321,
"campaignNo": 2350,
"campaignTitle": "솔루션랩 2회 배송 캠페인",
"influenceId": 18,
"nickname": "김크리에이터",
"email": "creator@example.com",
"tel": "010-2222-3333",
"pendingCase": "FIRST_REVIEW_NOT_SUBMITTED",
"pendingCaseDescription": "1차 제작물 미제출",
"deadline": "2026-04-15T18:00:00",
"overdueStatus": "TODAY",
"daysUntilDeadline": 0,
"lastContactedAt": null,
"lastContactSummary": null,
"lastContactMethod": null,
"lastMemoAt": null,
"lastMemoSummary": null,
"contactCount": 0,
"currentPhase": "FIRST_REVIEW",
"subStep": "REVIEWING"
}
],
"page": { "number": 0, "size": 20, "totalElements": 132, "totalPages": 7 },
"summary": {
"CONTRACT_UNSIGNED": 12,
"FIRST_REVIEW_NOT_SUBMITTED": 45,
"FINAL_NOT_SUBMITTED": 8
}
}
}각 row 에는 반드시 campaignNo / campaignTitle 이 포함되므로 프론트에서 캠페인별로 그룹핑하거나 칼럼에 캠페인명을 노출할 수 있습니다.
예시
활성 캠페인 전체의 OVERDUE 만
GET /ai/admin/pending-participants?overdueStatuses=OVERDUE&sort=deadline,asc캠페인 2개만 골라서 계약 미체결 현황
GET /ai/admin/pending-participants?campaignNos=2350&campaignNos=2307&cases=CONTRACT_UNSIGNED연락 안 한 대상 + 오늘 마감
GET /ai/admin/pending-participants?contactFilter=NOT_CONTACTED&overdueStatuses=TODAY