From ceffc801ad2c1bc7a4be5a42d53b455ed501096f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=9C=A4=ED=98=B8?= Date: Sun, 8 Feb 2026 21:54:56 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=93=B1=EB=A1=9D=EC=9E=90=20=ED=99=95?= =?UTF-8?q?=EC=9D=B8=EC=9A=A9=20=EC=A7=81=EC=A0=84=20=EB=93=B1=EB=A1=9D=20?= =?UTF-8?q?=EA=B3=B5=EC=97=B0=20=EC=A1=B0=ED=9A=8C=20api=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../amateurShow/controller/AmateurController.java | 11 ++++++++++- .../amateurShow/converter/AmateurConverter.java | 2 +- .../amateurShow/dto/AmateurEnrollRequestDTO.java | 2 +- .../amateurShow/dto/AmateurUpdateRequestDTO.java | 2 +- .../cc/backend/amateurShow/entity/AmateurShow.java | 2 +- .../repository/AmateurShowRepository.java | 2 +- .../service/amateurShowService/AmateurService.java | 1 + .../amateurShowService/AmateurServiceImpl.java | 13 +++++++++++++ .../backend/apiPayLoad/code/status/ErrorStatus.java | 2 ++ 9 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/main/java/cc/backend/amateurShow/controller/AmateurController.java b/src/main/java/cc/backend/amateurShow/controller/AmateurController.java index e0bb7c2c..3248730f 100644 --- a/src/main/java/cc/backend/amateurShow/controller/AmateurController.java +++ b/src/main/java/cc/backend/amateurShow/controller/AmateurController.java @@ -55,11 +55,20 @@ public ApiResponse deleteShow(@AuthenticationPrincipal(expression = "mem } @GetMapping("/{amateurShowId}") - @Operation(summary = "소극장 공연 조회 - 단건") + @Operation(summary = "승인된 소극장 공연 단건 조회 - 일반 사용자용") public ApiResponse getAmateurShow(@PathVariable Long amateurShowId){ return ApiResponse.onSuccess(amateurService.getAmateurShow(amateurShowId)); } + @PreAuthorize("hasRole('PERFORMER')") + @GetMapping("/created/{amateurShowId}") + @Operation(summary = "방금 등록한 공연 단건 조회(아직 미승인) - 등록자용") + public ApiResponse getCreatedShow( + @AuthenticationPrincipal(expression = "member") Member member, + @PathVariable Long amateurShowId){ + return ApiResponse.onSuccess(amateurService.getCreatedShow(member.getId(), amateurShowId)); + } + @GetMapping("/ranking") @Operation(summary = "소극장 공연 랭킹 조회 API") public ApiResponse> getShowRanking() { diff --git a/src/main/java/cc/backend/amateurShow/converter/AmateurConverter.java b/src/main/java/cc/backend/amateurShow/converter/AmateurConverter.java index 91e81e37..239a8387 100644 --- a/src/main/java/cc/backend/amateurShow/converter/AmateurConverter.java +++ b/src/main/java/cc/backend/amateurShow/converter/AmateurConverter.java @@ -271,7 +271,7 @@ public static AmateurShowResponseDTO.AmateurShowResult toResponseDTO(AmateurShow //.place(amateurShow.getPlace()) .posterImageUrl(amateurShow.getPosterImageUrl()) .schedule(schedule) - .runtime(amateurShow.getRuntime()) + .runtime(amateurShow.getRuntime() + "분") .account(amateurShow.getAccount()) .contact(amateurShow.getContact()) .hashtag(amateurShow.getHashtag()) diff --git a/src/main/java/cc/backend/amateurShow/dto/AmateurEnrollRequestDTO.java b/src/main/java/cc/backend/amateurShow/dto/AmateurEnrollRequestDTO.java index 6ab6f691..66d6a27a 100644 --- a/src/main/java/cc/backend/amateurShow/dto/AmateurEnrollRequestDTO.java +++ b/src/main/java/cc/backend/amateurShow/dto/AmateurEnrollRequestDTO.java @@ -27,7 +27,7 @@ public class AmateurEnrollRequestDTO { @NotNull(message = "종료 날짜는 필수입니다") private LocalDate end; // 공연 종료 날짜 - private String runtime; // 러닝타임 + private Integer runtime; // 러닝타임 private String bankName; // 은행명 private String account; // 계좌번호 private String depositor; // 입금자명 diff --git a/src/main/java/cc/backend/amateurShow/dto/AmateurUpdateRequestDTO.java b/src/main/java/cc/backend/amateurShow/dto/AmateurUpdateRequestDTO.java index 44441414..707c7b31 100644 --- a/src/main/java/cc/backend/amateurShow/dto/AmateurUpdateRequestDTO.java +++ b/src/main/java/cc/backend/amateurShow/dto/AmateurUpdateRequestDTO.java @@ -21,7 +21,7 @@ public class AmateurUpdateRequestDTO { //private String place; // 공연장 주소 private LocalDate start; // 공연 시작 날짜 private LocalDate end; // 공연 종료 날짜 - private String runtime; // 러닝타임 + private Integer runtime; // 러닝타임 private String bankName; // 은행명 private String account; // 계좌번호 private String depositor; // 입금자명 diff --git a/src/main/java/cc/backend/amateurShow/entity/AmateurShow.java b/src/main/java/cc/backend/amateurShow/entity/AmateurShow.java index c9cbe85a..8ef58431 100644 --- a/src/main/java/cc/backend/amateurShow/entity/AmateurShow.java +++ b/src/main/java/cc/backend/amateurShow/entity/AmateurShow.java @@ -44,7 +44,7 @@ public class AmateurShow extends BaseEntity { private String depositor; // 입금자명 // 추가 - private String runtime; + private Integer runtime; private String hashtag; diff --git a/src/main/java/cc/backend/amateurShow/repository/AmateurShowRepository.java b/src/main/java/cc/backend/amateurShow/repository/AmateurShowRepository.java index fc9570f3..baf8dd8b 100644 --- a/src/main/java/cc/backend/amateurShow/repository/AmateurShowRepository.java +++ b/src/main/java/cc/backend/amateurShow/repository/AmateurShowRepository.java @@ -45,7 +45,7 @@ Page findByNameOrPerformer( Pageable pageable ); - + Optional findByIdAndMemberId(Long id, Long memberId); Slice findByMember_IdOrderByIdDesc(Long memberId, Pageable pageable); diff --git a/src/main/java/cc/backend/amateurShow/service/amateurShowService/AmateurService.java b/src/main/java/cc/backend/amateurShow/service/amateurShowService/AmateurService.java index 606bc3b4..9a6773c6 100644 --- a/src/main/java/cc/backend/amateurShow/service/amateurShowService/AmateurService.java +++ b/src/main/java/cc/backend/amateurShow/service/amateurShowService/AmateurService.java @@ -23,6 +23,7 @@ AmateurEnrollResponseDTO.AmateurEnrollResult enrollShow(Long memberId, List getShowRanking(); List getRecentlyHotShow(); List getShowClosing(); + AmateurShowResponseDTO.AmateurShowResult getCreatedShow(Long memberId, Long amateurId); Slice getMyAmateurShow(Long memberId, AmateurShowStatus showStatus, Pageable pageable); diff --git a/src/main/java/cc/backend/amateurShow/service/amateurShowService/AmateurServiceImpl.java b/src/main/java/cc/backend/amateurShow/service/amateurShowService/AmateurServiceImpl.java index f41e111a..bdcd6ba8 100644 --- a/src/main/java/cc/backend/amateurShow/service/amateurShowService/AmateurServiceImpl.java +++ b/src/main/java/cc/backend/amateurShow/service/amateurShowService/AmateurServiceImpl.java @@ -447,6 +447,19 @@ public AmateurShowResponseDTO.AmateurShowResult getAmateurShow(Long amateurShowI AmateurShow amateurShow = amateurShowRepository.findById(amateurShowId) .orElseThrow(() -> new GeneralException(ErrorStatus.AMATEURSHOW_NOT_FOUND)); + if(!amateurShow.getApprovalStatus().equals(ApprovalStatus.APPROVED)) { + throw new GeneralException((ErrorStatus.NOT_APPROVED_SHOW)); + } + + return AmateurConverter.toResponseDTO(amateurShow); + } + + @Override + public AmateurShowResponseDTO.AmateurShowResult getCreatedShow(Long memberId, Long amateurShowId){ + AmateurShow amateurShow = + amateurShowRepository.findByIdAndMemberId(amateurShowId, memberId) + .orElseThrow(() -> new GeneralException(ErrorStatus.MEMBER_NOT_PERFORMER)); + return AmateurConverter.toResponseDTO(amateurShow); } diff --git a/src/main/java/cc/backend/apiPayLoad/code/status/ErrorStatus.java b/src/main/java/cc/backend/apiPayLoad/code/status/ErrorStatus.java index c4ca6357..1d724289 100644 --- a/src/main/java/cc/backend/apiPayLoad/code/status/ErrorStatus.java +++ b/src/main/java/cc/backend/apiPayLoad/code/status/ErrorStatus.java @@ -80,6 +80,8 @@ public enum ErrorStatus implements BaseErrorCode { // AMATEURSHOW ERROR AMATEURSHOW_NOT_FOUND(HttpStatus.NOT_FOUND, "AMATEURSHOW4000", "존재하지 않는 소극장 공연입니다."), INVALID_DATE_RANGE(HttpStatus.NOT_ACCEPTABLE, "AMATEURSHOW4001", "공연 시작 날짜는 종료 날짜 이전이어햐 합니다."), + NOT_APPROVED_SHOW(HttpStatus.FORBIDDEN, "AMATEURSHOW4002", "승인되지 않은 소극장 공연입니다."), + // AMATEUR TICKET ERROR AMATEUR_TICKET_NOT_FOUND(HttpStatus.NOT_FOUND, "AMATEURTICKET4000", "존재하지 않는 소극장 공연 티켓입니다."),