From 37d9f99f4fc3f55503c537b3c645d085536b7f24 Mon Sep 17 00:00:00 2001 From: bbbang105 <2018111366@dgu.ac.kr> Date: Sun, 24 Nov 2024 04:46:24 +0900 Subject: [PATCH] =?UTF-8?q?#88=20[style]=20:=20Javadoc=20=EA=B8=B0?= =?UTF-8?q?=EB=B0=98=EC=9C=BC=EB=A1=9C=20=EC=A3=BC=EC=84=9D=EC=9D=84=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stadium/application/StadiumService.java | 76 +++++++++++++++---- 1 file changed, 60 insertions(+), 16 deletions(-) diff --git a/src/main/java/kusitms/backend/stadium/application/StadiumService.java b/src/main/java/kusitms/backend/stadium/application/StadiumService.java index 151f6ba..388b2f0 100644 --- a/src/main/java/kusitms/backend/stadium/application/StadiumService.java +++ b/src/main/java/kusitms/backend/stadium/application/StadiumService.java @@ -21,6 +21,13 @@ @RequiredArgsConstructor public class StadiumService { + /** + * 주어진 경기장 이름에 대한 정보를 조회. + * + * @param stadiumName 경기장 이름 + * @return 경기장 정보와 구역 정보 리스트를 포함하는 DTO + * @throws CustomException 유효하지 않은 경기장 이름이 주어진 경우 + */ @Transactional(readOnly = true) public GetStadiumInfosResponseDto getStadiumInfos(String stadiumName) { StadiumInfo stadiumInfo = getStadiumInfoByName(stadiumName); @@ -29,22 +36,14 @@ public GetStadiumInfosResponseDto getStadiumInfos(String stadiumName) { return GetStadiumInfosResponseDto.of(stadiumInfo.getImgUrl(), stadiumInfo.getFirstBaseSide(), stadiumInfo.getThirdBaseSide(), zoneInfos); } - private StadiumInfo getStadiumInfoByName(String stadiumName) { - return switch (stadiumName) { - case "잠실종합운동장 (잠실)" -> StadiumInfo.LG_HOME; - case "수원KT위즈파크" -> StadiumInfo.KT_HOME; - default -> throw new CustomException(StadiumErrorStatus._NOT_FOUND_STADIUM); - }; - } - - private StadiumStatusType[] getStatusTypesByName(String stadiumName) { - return switch (stadiumName) { - case "잠실종합운동장 (잠실)" -> JamsilStadiumStatusType.values(); - case "수원KT위즈파크" -> KtWizStadiumStatusType.values(); - default -> throw new CustomException(StadiumErrorStatus._NOT_FOUND_STADIUM); - }; - } - + /** + * 주어진 경기장 이름에 해당하는 구역 정보를 조회. + * + * @param stadiumName 경기장 이름 + * @param zoneName 구역 이름 + * @return 구역 정보 DTO + * @throws CustomException 유효하지 않은 경기장 이름이나 구역 이름이 주어진 경우 + */ @Transactional(readOnly = true) public GetZoneGuideResponseDto getZoneGuide(String stadiumName, String zoneName) { StadiumStatusType zoneType = switch (stadiumName) { @@ -55,6 +54,13 @@ public GetZoneGuideResponseDto getZoneGuide(String stadiumName, String zoneName) return GetZoneGuideResponseDto.from(zoneType); } + /** + * 주어진 상태 타입 배열에서 특정 구역의 이름과 색상을 조회. + * CHEERING_DUMMY 구역은 제외됩니다. + * + * @param statusTypes 상태 타입 배열 + * @return 구역 이름과 색상 정보를 담은 리스트 + */ private List getZonesNameAndColorFromStadium(StadiumStatusType[] statusTypes) { return Arrays.stream(statusTypes) .filter(status -> status != CHEERING_DUMMY) @@ -62,10 +68,48 @@ private List getZonesNameAndColorFromStadiu .toList(); } + /** + * 주어진 상태 타입 배열에서 특정 구역 이름과 일치하는 구역 정보를 조회. + * + * @param statusTypes 상태 타입 배열 + * @param zoneName 구역 이름 + * @return 일치하는 구역 정보 + * @throws CustomException 일치하는 구역을 찾을 수 없는 경우 + */ private StadiumStatusType findZoneInStadium(StadiumStatusType[] statusTypes, String zoneName) { return Arrays.stream(statusTypes) .filter(status -> status.getZoneName().equals(zoneName)) .findFirst() .orElseThrow(() -> new CustomException(StadiumErrorStatus._NOT_FOUND_ZONE)); } + + /** + * 주어진 경기장 이름에 대한 기본 정보를 조회. + * + * @param stadiumName 경기장 이름 + * @return 경기장 기본 정보 + * @throws CustomException 유효하지 않은 경기장 이름이 주어진 경우 + */ + private StadiumInfo getStadiumInfoByName(String stadiumName) { + return switch (stadiumName) { + case "잠실종합운동장 (잠실)" -> StadiumInfo.LG_HOME; + case "수원KT위즈파크" -> StadiumInfo.KT_HOME; + default -> throw new CustomException(StadiumErrorStatus._NOT_FOUND_STADIUM); + }; + } + + /** + * 주어진 경기장 이름에 대한 상태 타입 배열을 조회. + * + * @param stadiumName 경기장 이름 + * @return 경기장 상태 타입 배열 + * @throws CustomException 유효하지 않은 경기장 이름이 주어진 경우 + */ + private StadiumStatusType[] getStatusTypesByName(String stadiumName) { + return switch (stadiumName) { + case "잠실종합운동장 (잠실)" -> JamsilStadiumStatusType.values(); + case "수원KT위즈파크" -> KtWizStadiumStatusType.values(); + default -> throw new CustomException(StadiumErrorStatus._NOT_FOUND_STADIUM); + }; + } }