Skip to content

Commit d344eff

Browse files
authored
메인 머지 (10/14) Merge pull request #369
메인 머지 (10/14)
2 parents e038c52 + da25a8f commit d344eff

File tree

5 files changed

+19
-15
lines changed

5 files changed

+19
-15
lines changed

back/src/main/java/com/back/domain/mentoring/reservation/controller/ReservationController.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.back.domain.member.member.service.MemberStorage;
55
import com.back.domain.member.mentee.entity.Mentee;
66
import com.back.domain.member.mentor.entity.Mentor;
7+
import com.back.domain.mentoring.reservation.constant.ReservationStatus;
78
import com.back.domain.mentoring.reservation.dto.ReservationDto;
89
import com.back.domain.mentoring.reservation.dto.request.ReservationRequest;
910
import com.back.domain.mentoring.reservation.dto.response.ReservationPagingResponse;
@@ -33,10 +34,11 @@ public class ReservationController {
3334
@Operation(summary = "나의 예약 목록 조회", description = "본인의 예약 목록을 조회합니다. 로그인 후 조회할 수 있습니다.")
3435
public RsData<ReservationPagingResponse> getReservations(
3536
@RequestParam(defaultValue = "0") int page,
36-
@RequestParam(defaultValue = "10") int size
37+
@RequestParam(defaultValue = "10") int size,
38+
@RequestParam(required = false) ReservationStatus status
3739
) {
3840
Member member = rq.getActor();
39-
Page<ReservationDto> reservationPage = reservationService.getReservations(member, page, size);
41+
Page<ReservationDto> reservationPage = reservationService.getReservations(member, page, size, status);
4042
ReservationPagingResponse resDto = ReservationPagingResponse.from(reservationPage);
4143

4244
return new RsData<>(

back/src/main/java/com/back/domain/mentoring/reservation/entity/Reservation.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import com.back.domain.mentoring.reservation.constant.ReservationStatus;
88
import com.back.domain.mentoring.reservation.error.ReservationErrorCode;
99
import com.back.domain.mentoring.slot.entity.MentorSlot;
10-
import com.back.global.app.AppConfig;
1110
import com.back.global.exception.ServiceException;
1211
import com.back.global.jpa.BaseEntity;
1312
import jakarta.persistence.*;
@@ -133,14 +132,6 @@ private void ensureCanComplete() {
133132
if(!this.status.canComplete()) {
134133
throw new ServiceException(ReservationErrorCode.CANNOT_COMPLETE);
135134
}
136-
// 개발·테스트 환경에서는 검증 스킵 (Swagger 테스트 허용)
137-
if (AppConfig.isDev() || AppConfig.isTest()) {
138-
return;
139-
}
140-
// 시작 이후 완료 가능 (조기 종료 허용)
141-
if (!mentorSlot.isPast()) {
142-
throw new ServiceException(ReservationErrorCode.MENTORING_NOT_STARTED);
143-
}
144135
}
145136

146137
private void ensureNotPast() {

back/src/main/java/com/back/domain/mentoring/reservation/repository/ReservationRepository.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,28 @@ Optional<Reservation> findByIdAndMember(
3232
@Query("""
3333
SELECT r
3434
FROM Reservation r
35+
JOIN FETCH r.mentorSlot ms
36+
JOIN FETCH r.mentoring
3537
WHERE r.mentor.member.id = :memberId
38+
AND (:status IS NULL OR r.status = :status)
3639
""")
3740
Page<Reservation> findAllByMentorMember(
3841
@Param("memberId") Long memberId,
42+
@Param("status") ReservationStatus status,
3943
Pageable pageable
4044
);
4145

4246
@Query("""
4347
SELECT r
4448
FROM Reservation r
49+
JOIN FETCH r.mentorSlot ms
50+
JOIN FETCH r.mentoring
4551
WHERE r.mentee.member = :member
52+
AND (:status IS NULL OR r.status = :status)
4653
""")
4754
Page<Reservation> findAllByMenteeMember(
4855
@Param("member") Member member,
56+
@Param("status") ReservationStatus status,
4957
Pageable pageable
5058
);
5159

back/src/main/java/com/back/domain/mentoring/reservation/service/ReservationService.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public class ReservationService {
3939
private final MentoringSessionService mentoringSessionService;
4040

4141
@Transactional(readOnly = true)
42-
public Page<ReservationDto> getReservations(Member member, int page, int size) {
42+
public Page<ReservationDto> getReservations(Member member, int page, int size, ReservationStatus status) {
4343
Pageable pageable = PageRequest.of(
4444
page,
4545
size,
@@ -49,9 +49,9 @@ public Page<ReservationDto> getReservations(Member member, int page, int size) {
4949
Page<Reservation> reservations;
5050

5151
if (member.getRole() == Member.Role.MENTOR) {
52-
reservations = reservationRepository.findAllByMentorMember(member.getId(), pageable);
52+
reservations = reservationRepository.findAllByMentorMember(member.getId(), status, pageable);
5353
} else {
54-
reservations = reservationRepository.findAllByMenteeMember(member, pageable);
54+
reservations = reservationRepository.findAllByMenteeMember(member, status, pageable);
5555
}
5656
return reservations.map(ReservationDto::from);
5757
}

back/src/test/java/com/back/domain/mentoring/reservation/service/ReservationServiceTest.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,14 +101,16 @@ void getReservations() {
101101

102102
when(reservationRepository.findAllByMentorMember(
103103
eq(mentor.getMember().getId()),
104+
isNull(),
104105
any(Pageable.class)
105106
)).thenReturn(reservationPage);
106107

107108
// when
108109
Page<ReservationDto> result = reservationService.getReservations(
109110
mentor.getMember(),
110111
page,
111-
size
112+
size,
113+
null
112114
);
113115

114116
// then
@@ -118,6 +120,7 @@ void getReservations() {
118120
assertThat(result.getTotalPages()).isEqualTo(2);
119121
verify(reservationRepository).findAllByMentorMember(
120122
eq(mentor.getMember().getId()),
123+
isNull(),
121124
any(Pageable.class)
122125
);
123126
}

0 commit comments

Comments
 (0)