Skip to content

Commit 6b966e8

Browse files
committed
feat: 면접 예약 API InterviewSlotRepository 쿼리 추가
1 parent 94eb07c commit 6b966e8

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

src/main/java/dmu/dasom/api/domain/interview/repositoty/InterviewSlotRepository.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,24 @@
33
import dmu.dasom.api.domain.interview.entity.InterviewSlot;
44
import dmu.dasom.api.domain.interview.enums.Status;
55
import org.springframework.data.jpa.repository.JpaRepository;
6+
import org.springframework.data.jpa.repository.Query;
67
import org.springframework.stereotype.Repository;
78

89
import java.util.Collection;
910
import java.util.List;
1011

1112
@Repository
1213
public interface InterviewSlotRepository extends JpaRepository<InterviewSlot, Long> {
14+
// 현재 인원이 최대 인원보다 작은 슬롯 조회
15+
// 현재 예약된 인원이 최대 지원자 수보다 적은 슬롯 조회
16+
@Query("SELECT s FROM InterviewSlot s WHERE s.currentCandidates < s.maxCandidates")
1317
Collection<InterviewSlot> findAllByCurrentCandidatesLessThanMaxCandidates();
14-
List<InterviewSlot> findAllByStatusAndCurrentCandidatesLessThanMaxCandidates(
15-
Status status);
1618

17-
boolean exists();
19+
// 상태에 따른 슬롯 조회
20+
@Query("SELECT s FROM InterviewSlot s WHERE s.status = :status AND s.currentCandidates < s.maxCandidates")
21+
List<InterviewSlot> findAllByStatusAndCurrentCandidatesLessThanMaxCandidates(Status status);
22+
23+
// 슬롯이 하나라도 존재하는지 확인
24+
@Query("SELECT COUNT(s) > 0 FROM InterviewSlot s")
25+
boolean existsAny();
1826
}

src/main/java/dmu/dasom/api/domain/interview/service/InterviewServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public class InterviewServiceImpl implements InterviewService{
3535
@Override
3636
@Transactional
3737
public List<InterviewSlotResponseDto> createInterviewSlots(LocalDate newStartDate, LocalDate newEndDate, LocalTime newStartTime, LocalTime newEndTime) {
38-
boolean slotsExist = interviewSlotRepository.exists();
38+
boolean slotsExist = interviewSlotRepository.existsAny();
3939

4040
if(slotsExist){
4141
interviewSlotRepository.deleteAll();

0 commit comments

Comments
 (0)