Skip to content

Commit b711ab3

Browse files
authored
Merge pull request #49 from hackathon-soa/refactor/#48
Refactor : 전체 동행 신청 가능 여부 DTO필드 추가
2 parents 9dfa86a + 77b801f commit b711ab3

3 files changed

Lines changed: 15 additions & 4 deletions

File tree

src/main/java/hackathon/soa/domain/segment/SegmentConverter.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,14 @@ public class SegmentConverter {
1616
public static SegmentResponseDTO.CourseDetailResponseDTO toCourseDetailResponseDTO(
1717
Long courseId, Boolean isOwner,
1818
SearchResponseDTO.SearchCourseResponseDTO courseInfo,
19-
List<SegmentResponseDTO.SegmentDetailDTO> segments) {
19+
List<SegmentResponseDTO.SegmentDetailDTO> segments,
20+
Boolean canApplyAll) {
2021
return SegmentResponseDTO.CourseDetailResponseDTO.builder()
2122
.courseId(courseId)
2223
.isMine(isOwner)
2324
.courseInfo(courseInfo)
2425
.segments(segments)
26+
.canApplyAll(canApplyAll)
2527
.build();
2628
}
2729

src/main/java/hackathon/soa/domain/segment/SegmentService.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,17 @@ public SegmentResponseDTO.CourseDetailResponseDTO getCourseDetail(Long courseId,
5858
.map(segment -> buildSegmentDetail(segment, memberId))
5959
.collect(Collectors.toList());
6060

61-
// 5. SegmentConverter를 사용하여 최종 응답 DTO 생성
62-
return SegmentConverter.toCourseDetailResponseDTO(courseId, isOwner, courseInfo, segmentDetails);
61+
// 5. 전체 신청 가능 여부 확인 (모든 장소 세그먼트에 참여하지 않았는지 확인)
62+
boolean canApplyAll = false;
63+
if (!isOwner) {
64+
canApplyAll = segmentDetails.stream()
65+
.filter(segment -> "장소".equals(segment.getSegmentType()))
66+
.allMatch(segment -> segment.getStaySegment() != null &&
67+
!segment.getStaySegment().getIsParticipated());
68+
}
69+
70+
// 6. SegmentConverter를 사용하여 최종 응답 DTO 생성
71+
return SegmentConverter.toCourseDetailResponseDTO(courseId, isOwner, courseInfo, segmentDetails, canApplyAll);
6372
}
6473

6574
private SegmentResponseDTO.SegmentDetailDTO buildSegmentDetail(CourseSegment courseSegment, Long memberId) {

src/main/java/hackathon/soa/domain/segment/dto/SegmentResponseDTO.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public class SegmentResponseDTO {
2626
public static class CourseDetailResponseDTO {
2727
private Long courseId;
2828
private Boolean isMine; // 해당 멤버가 코스 작성자인지 여부
29+
private Boolean canApplyAll; // 전체 신청 가능 여부 (모든 장소 세그먼트에 참여하지 않았는지)
2930
private SearchResponseDTO.SearchCourseResponseDTO courseInfo; // 코스 기본 정보 및 좋아요 정보
3031
private List<SegmentDetailDTO> segments;
3132
}
@@ -82,7 +83,6 @@ public static MoveSegmentDTO from(MoveSegment moveSegment) {
8283
}
8384
}
8485

85-
8686
@Builder
8787
@Getter
8888
@NoArgsConstructor

0 commit comments

Comments
 (0)