Skip to content

Commit a77ca6c

Browse files
feat: 공연 예매일 추가시 검증 추가
1 parent 97629cd commit a77ca6c

2 files changed

Lines changed: 12 additions & 5 deletions

File tree

src/main/java/com/back/web7_9_codecrete_be/domain/concerts/service/ConcertService.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.back.web7_9_codecrete_be.domain.concerts.repository.*;
88
import com.back.web7_9_codecrete_be.domain.users.entity.User;
99
import com.back.web7_9_codecrete_be.global.error.code.ConcertErrorCode;
10+
import com.back.web7_9_codecrete_be.global.error.code.ErrorCode;
1011
import com.back.web7_9_codecrete_be.global.error.exception.BusinessException;
1112
import lombok.RequiredArgsConstructor;
1213
import lombok.extern.slf4j.Slf4j;
@@ -121,14 +122,14 @@ public Long getTotalConcertsCount() {
121122
return result;
122123
}
123124

124-
// todo : 티켓팅 공연 개수 조회
125+
// 티켓팅 공연 개수 조회
125126
public Long getTotalTicketingConcertsCount() {
126127
Long result = concertRedisRepository.getTotalConcertsCount(ListSort.TICKETING);
127128
if(result == -1) result = concertRedisRepository.saveTotalConcertsCount(concertRepository.countTicketingConcertsFromLocalDateTime(LocalDateTime.of(LocalDate.now(), LocalTime.MIN)), ListSort.TICKETING);
128129
return result;
129130
}
130131

131-
// todo : 좋아요한 공연 개수 조회
132+
// 좋아요한 공연 개수 조회
132133
public Long getTotalLikedConcertsCount(User user) {
133134
Long result = concertRedisRepository.getUserLikedCount(user);
134135
if(result == -1) result = concertRedisRepository.saveUserLikedCount(user,concertLikeRepository.countByUser(user));
@@ -208,10 +209,15 @@ public ConcertItem updateConcert(long concertId, ConcertUpdateRequest concertUpd
208209
return new ConcertItem(updatedConcert);
209210
}
210211

211-
// 공연 시간 설정
212+
// 공연 예매 시간 설정
212213
public ConcertDetailResponse setConcertTicketingTime(ConcertTicketTimeSetRequest concertTicketTimeSetRequest) {
213214
Concert concert = findConcertByConcertId(concertTicketTimeSetRequest.getConcertId());
214-
concert.ticketTimeSet(concertTicketTimeSetRequest.getTicketTime(), concertTicketTimeSetRequest.getTicketEndTime());
215+
LocalDateTime ticketTime = concertTicketTimeSetRequest.getTicketTime();
216+
LocalDateTime ticketEndTime = concertTicketTimeSetRequest.getTicketEndTime();
217+
if(ticketTime.isAfter(ticketEndTime)) throw new BusinessException(ConcertErrorCode.NOT_VALID_TICKETING_TIME);
218+
if(ticketTime.isBefore(LocalDateTime.now())) throw new BusinessException(ConcertErrorCode.NOT_VALID_TICKETING_TIME);
219+
220+
concert.ticketTimeSet(ticketTime, ticketEndTime);
215221
Concert savedConcert = concertRepository.save(concert);
216222
return concertRepository.getConcertDetailById(savedConcert.getConcertId());
217223
}

src/main/java/com/back/web7_9_codecrete_be/global/error/code/ConcertErrorCode.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ public enum ConcertErrorCode implements ErrorCode {
1313
CONCERT_NOT_FOUND(HttpStatus.NOT_FOUND,"C-101","공연을 찾을 수 없습니다."),
1414
KEYWORD_IS_NULL(HttpStatus.BAD_REQUEST,"C-102","검색 키워드를 입력해주세요."),
1515
LIKE_CONFLICT(HttpStatus.CONFLICT,"C-131","이미 좋아요를 누른 공연입니다."),
16-
NOT_FOUND_CONCERTLIKE(HttpStatus.NOT_FOUND,"C-130","좋아요를 누르지 않은 공연입니다.")
16+
NOT_FOUND_CONCERTLIKE(HttpStatus.NOT_FOUND,"C-130","좋아요를 누르지 않은 공연입니다."),
17+
NOT_VALID_TICKETING_TIME(HttpStatus.BAD_REQUEST, "C-140","공연 예매 시간이 옳지 않습니다. 확인해 주십시오.")
1718
;
1819

1920
private final HttpStatus status;

0 commit comments

Comments
 (0)