File tree Expand file tree Collapse file tree
src/main/java/everTale/everTale_be/domain/alarm Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -20,14 +20,27 @@ public class AlarmSummary {
2020 @ Schema (description = "스토리 ID" , example = "12" )
2121 private Long storyId ;
2222
23+ @ Schema (description = "알림 메시지" , example = "「용과 마음의 열쇠」 ― 숨은 메세지가 도착했어요. 지금 확인해보세요!" )
24+ private String message ;
25+
2326 @ Schema (description = "읽음 여부" , example = "0" )
2427 private boolean isRead ;
2528
2629 public static AlarmSummary from (Alarm alarm ){
30+ String message ;
31+ String storyTitle = alarm .getStory ().getTitle ();
32+
33+ if (alarm .getAlarmType () == AlarmType .EASTEREGG_VOICE ) {
34+ message = String .format ("「%s」 ― 숨은 메세지가 도착했어요. 지금 확인해보세요!" , storyTitle );
35+ } else {
36+ message = String .format ("「%s」 ― 사랑의 편지가 도착했어요. 지금 확인해보세요!" , storyTitle );
37+ }
38+
2739 return AlarmSummary .builder ()
2840 .alarmId (alarm .getId ())
2941 .alarmType (alarm .getAlarmType ())
3042 .storyId (alarm .getStory ().getId ())
43+ .message (message )
3144 .isRead (alarm .isRead ())
3245 .build ();
3346 }
Original file line number Diff line number Diff line change @@ -17,6 +17,9 @@ public class AlarmListResponseDto {
1717 @ Schema (description = "알림 요약 리스트" )
1818 private List <AlarmSummary > alarmSummaries ;
1919
20+ @ Schema (description = "읽지 않은 알림 개수" , example = "3" )
21+ private long unreadCount ;
22+
2023 @ Schema (description = "현재 페이지 번호 (0부터 시작)" , example = "0" )
2124 private int currentPage ;
2225
@@ -27,8 +30,13 @@ public class AlarmListResponseDto {
2730 private long totalCount ;
2831
2932 public static AlarmListResponseDto from (Page <Alarm > alarms ){
33+ long unreadCount = alarms .stream ()
34+ .filter (alarm -> !alarm .isRead ())
35+ .count ();
36+
3037 return AlarmListResponseDto .builder ()
3138 .alarmSummaries (alarms .stream ().map (AlarmSummary ::from ).toList ())
39+ .unreadCount (unreadCount )
3240 .currentPage (alarms .getNumber ())
3341 .totalPage (alarms .getTotalPages ())
3442 .totalCount (alarms .getTotalElements ())
Original file line number Diff line number Diff line change 77import everTale .everTale_be .domain .profile .entity .Profile ;
88import everTale .everTale_be .domain .profile .util .ProfileHelper ;
99import everTale .everTale_be .domain .story .entity .Story ;
10+ import everTale .everTale_be .domain .story .repository .StoryRepository ;
1011import everTale .everTale_be .global .apiPayload .code .status .ErrorStatus ;
1112import everTale .everTale_be .global .apiPayload .exception .handler .UnAuthorizedHandler ;
1213import lombok .AllArgsConstructor ;
2122public class AlarmService {
2223
2324 private final AlarmRepository alarmRepository ;
25+ private final StoryRepository storyRepository ;
2426 private final ProfileHelper profileHelper ;
2527
2628 @ Transactional
You can’t perform that action at this time.
0 commit comments