Skip to content

Commit 2d337f0

Browse files
committed
[Feat]: 복약 일정 조회 시 스티커 파라미터 추가 (#151)
StickerInfo 추가 복약 일정 조회 시 스티커 파라미터 추가 Related to: #150
1 parent 79a7b3a commit 2d337f0

File tree

3 files changed

+31
-18
lines changed

3 files changed

+31
-18
lines changed

src/main/java/io/sobok/SobokSobok/pill/infrastructure/PillScheduleQueryRepository.java

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,21 @@
11
package io.sobok.SobokSobok.pill.infrastructure;
22

33
import com.querydsl.core.Tuple;
4-
import com.querydsl.core.types.Projections;
54
import com.querydsl.core.types.dsl.CaseBuilder;
65
import com.querydsl.jpa.impl.JPAQueryFactory;
7-
import io.sobok.SobokSobok.pill.domain.PillSchedule;
86
import io.sobok.SobokSobok.pill.domain.QPill;
97
import io.sobok.SobokSobok.pill.domain.QPillSchedule;
108
import io.sobok.SobokSobok.pill.ui.dto.DateScheduleResponse;
119
import io.sobok.SobokSobok.pill.ui.dto.MonthScheduleResponse;
1210
import io.sobok.SobokSobok.pill.ui.dto.PillScheduleInfo;
11+
import io.sobok.SobokSobok.pill.ui.dto.StickerInfo;
1312
import io.sobok.SobokSobok.sticker.domain.QLikeSchedule;
1413
import io.sobok.SobokSobok.sticker.domain.QSticker;
15-
import lombok.RequiredArgsConstructor;
16-
import org.springframework.stereotype.Repository;
17-
1814
import java.time.LocalDate;
1915
import java.util.*;
2016
import java.util.stream.Collectors;
17+
import lombok.RequiredArgsConstructor;
18+
import org.springframework.stereotype.Repository;
2119

2220
@Repository
2321
@RequiredArgsConstructor
@@ -106,17 +104,22 @@ public List<DateScheduleResponse> getDateSchedule(Long userId, LocalDate date) {
106104
.where(pillSchedule.scheduleDate.eq(date), pillSchedule.scheduleTime.eq(time))
107105
.fetch();
108106

109-
Map<Long, List<Long>> stickerIdMap = pillScheduleIds.stream()
107+
Map<Long, List<StickerInfo>> stickerIdMap = pillScheduleIds.stream()
110108
.collect(Collectors.toMap(id -> id, id -> queryFactory
111-
.select(likeSchedule.stickerId)
109+
.select(likeSchedule.stickerId, likeSchedule.id)
112110
.from(likeSchedule)
113111
.where(likeSchedule.scheduleId.eq(id))
114-
.fetch()));
112+
.fetch().stream()
113+
.map(tuple -> StickerInfo.builder()
114+
.stickerId(tuple.get(0, Long.class))
115+
.likeScheduleId(tuple.get(1, Long.class))
116+
.build()
117+
).collect(Collectors.toList())));
115118

116119
// 결과 매핑
117120
List<PillScheduleInfo> pillScheduleInfoList = pillScheduleIds.stream()
118121
.flatMap(scheduleId -> {
119-
List<Long> stickerIds = stickerIdMap.getOrDefault(scheduleId, Collections.emptyList());
122+
List<StickerInfo> stickerIds = stickerIdMap.getOrDefault(scheduleId, Collections.emptyList());
120123
return queryFactory
121124
.select(
122125
pillSchedule.id,
Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
11
package io.sobok.SobokSobok.pill.ui.dto;
22

3-
import lombok.Builder;
4-
53
import java.util.List;
4+
import lombok.Builder;
65

76
@Builder
87
public record PillScheduleInfo(
98

10-
Long scheduleId,
11-
Long pillId,
12-
String pillName,
13-
Boolean isCheck,
14-
Integer color,
15-
List<Long> stickerId,
16-
Long stickerTotalCount
9+
Long scheduleId,
10+
Long pillId,
11+
String pillName,
12+
Boolean isCheck,
13+
Integer color,
14+
List<StickerInfo> stickerId,
15+
Long stickerTotalCount
1716
) {
1817

1918
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package io.sobok.SobokSobok.pill.ui.dto;
2+
3+
import lombok.Builder;
4+
5+
@Builder
6+
public record StickerInfo(
7+
Long stickerId,
8+
Long likeScheduleId
9+
) {
10+
11+
}

0 commit comments

Comments
 (0)