FlightSearchAdminController
관리자용 항공편 검색 API 컨트롤러. 동기식으로 검색 결과를 즉시 반환하며, Split/Combined 검색을 지원한다.
필수 헤더
X-Triple-Sales-Channel: 판매 채널X-Triple-Sales-Funnel: 판매 퍼널
의존성
| 서비스 | 용도 |
|---|---|
| StandardFlightSearchUseCase | 표준 검색 |
| SplitFlightSearchUseCase | 분리 검색 (왕복을 편도+편도로) |
| CombineFlightSearchUseCase | 조합 검색 (멀티티켓) |
| LocationService | 위치 정보 조회 |
메서드
searchOneWayTrip
fun searchOneWayTrip(
originType: LocationType, origin: String,
destinationType: LocationType, destination: String,
outboundDate: LocalDate,
cabins: Set<CabinType>,
adult: Int, child: Int = 0, infant: Int = 0,
freeBaggageOnly: Boolean = false,
useRecommendation: Boolean = true,
useCache: Boolean = false,
flightGroupCriteria: FlightGroupCriteria = SCHEDULE
): ResponseEntity<List<FlightItemAdminView>>관리자용 편도 검색. 동기식으로 결과를 즉시 반환한다.
| Caller | Callee |
|---|---|
HTTP GET /internals/admin/flights/search/{...}/{outboundDate} | FlightSearchAdminController.searchFlights |
searchRoundTrip
fun searchRoundTrip(
...,
mixResponseType: MixFlightResponseType?,
searchTripDirectionType: SearchTripDirectionType?,
detailKey: String?,
promotionPrincipleId: Long?,
cachedListKey: String?,
debug: Boolean = false
): ResponseEntity<List<FlightItemAdminView>>관리자용 왕복 검색. mixResponseType에 따라 SPLIT/COMBINED/표준 검색을 수행한다.
| Caller | Callee |
|---|---|
HTTP GET /internals/admin/flights/search/{...}/{outboundDate}/{inboundDate} | FlightSearchAdminController.searchFlights |
searchMultiCityTrip (2~4구간)
관리자용 다구간 검색. 2~4구간까지 지원한다.
searchFlights (private)
private fun searchFlights(
adult: Int, child: Int, infant: Int,
freeBaggageOnly: Boolean,
cabins: Set<CabinType>,
useRecommendation: Boolean,
useCache: Boolean,
originDestinations: List<OriginDestinationLocationInfo>,
mixResponseType: MixFlightResponseType? = null,
searchTripDirectionType: SearchTripDirectionType? = null,
detailKey: String? = null,
promotionPrincipleId: Long? = null,
cachedListKey: UUID? = null,
flightGroupCriteria: FlightGroupCriteria,
debug: Boolean = false
): ResponseEntity<List<FlightItemAdminView>>실제 검색 로직. mixResponseType에 따라 다른 UseCase를 호출한다.
| mixResponseType | 호출 UseCase |
|---|---|
| SPLIT | SplitFlightSearchUseCase.searchFlights |
| COMBINED | CombineFlightSearchUseCase.searchFlights |
| null (기본) | StandardFlightSearchUseCase.searchFlights |
| Caller | Callee |
|---|---|
| 모든 검색 메서드 | SearchInfo 생성 |
| CacheKeyGenerator.getFlightSearchCacheKey | |
| MDCHolder.SalesFunnel.get | |
| UseCase 호출 (위 표 참조) | |
| FlightItemAdminView.of |
특징
- 동기식 응답: 폴링 없이 즉시 결과 반환
- 캐시 키 헤더: 응답에
X-Cached-Search-Key헤더 포함 - 디버그 모드: debug=true 시 추가 정보 제공