Admin APIAdmin Dashboard API
PUT /ai/admin/dashboard/{campaignNo}/quote-price
글로우비 특별가/기존가 비율 벌크 업데이트
글로우비 특별가/기존가 비율 벌크 업데이트
캠페인에 비율을 저장하고, 해당 캠페인의 모든 신청자에 대해 글로우비 특별가(currentPrice)와 기존가(quotePrice)를 계산하여 저장합니다.
- 비율은 캠페인(
TB_COLLAB)에 저장되고, 계산된 가격은 각 신청자의ApplicationMatching에 저장됩니다. - 기존에 수동으로 수정된 가격도 덮어씁니다.
- 수락된(ACCEPT) 가격 협상이 없는 신청자는 건너뜁니다 (실패로 집계되지 않음).
- 비율은 소수점 입력이 가능합니다 (예:
14.5).
가격 계산 공식
| 항목 | 공식 | 설명 |
|---|---|---|
글로우비 특별가 (currentPrice) | 수락가 × (1 + currentPriceRate / 100) | 수락가(가장 최근 ACCEPT 협상의 proposedPrice)에 비율 적용 |
기존가 (quotePrice) | 글로우비 특별가 × (1 + quotePriceRate / 100) | 글로우비 특별가에 비율 적용 |
소수점은 버림(floor) 처리됩니다.
HTTP 요청
PUT /ai/admin/dashboard/{campaignNo}/quote-price
Authorization: Bearer {access_token}
Content-Type: application/jsonPath Parameters
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
campaignNo | long | 예 | 캠페인 번호 |
Request Body
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
currentPriceRate | Double | 예 | 글로우비 특별가 비율 (%, 수락가에 적용, 소수점 허용) |
quotePriceRate | Double | 예 | 기존가 비율 (%, 글로우비 특별가에 적용, 소수점 허용) |
요청 예시
{
"currentPriceRate": 10,
"quotePriceRate": 20
}응답
성공 응답 (200 OK)
{
"status": 200,
"code": null,
"message": "5건의 가격이 업데이트되었습니다.",
"data": {
"updatedCount": 5,
"updatedIds": [35, 36, 37, 38, 39],
"failedUpdates": [],
"message": "5건의 가격이 업데이트되었습니다."
}
}일부 실패 응답 (200 OK)
업데이트 중 예외가 발생한 신청자가 있는 경우 failedUpdates에 포함됩니다. 수락 협상이 없어 건너뛴 신청자는 실패에 포함되지 않고 집계에서 제외됩니다.
{
"status": 200,
"code": null,
"message": "3건 성공, 1건 실패",
"data": {
"updatedCount": 3,
"updatedIds": [35, 36, 37],
"failedUpdates": [
{
"applicationId": 38,
"error": "업데이트 중 오류 메시지"
}
],
"message": "3건 성공, 1건 실패"
}
}신청자 없음 (200 OK)
{
"status": 200,
"code": null,
"message": "해당 캠페인에 신청자가 없습니다.",
"data": {
"updatedCount": 0,
"updatedIds": [],
"failedUpdates": [],
"message": "해당 캠페인에 신청자가 없습니다."
}
}에러 응답
| 상태 코드 | 설명 |
|---|---|
400 | 필수 파라미터 누락 (currentPriceRate, quotePriceRate) |
404 | 존재하지 않는 캠페인 |