diff --git a/WableServer/src/main/java/com/wable/www/WableServer/api/notification/controller/InfoNotificationController.java b/WableServer/src/main/java/com/wable/www/WableServer/api/notification/controller/InfoNotificationController.java index 2b93b78..ade26a6 100644 --- a/WableServer/src/main/java/com/wable/www/WableServer/api/notification/controller/InfoNotificationController.java +++ b/WableServer/src/main/java/com/wable/www/WableServer/api/notification/controller/InfoNotificationController.java @@ -1,6 +1,7 @@ package com.wable.www.WableServer.api.notification.controller; import com.wable.www.WableServer.api.comment.dto.request.CommentPostRequestDto; +import com.wable.www.WableServer.api.notification.dto.response.NewsNoticeCountResponseDto; import com.wable.www.WableServer.api.notification.service.InfoNotificationCommandService; import com.wable.www.WableServer.api.notification.service.InfoNotificationQueryService; import com.wable.www.WableServer.common.response.ApiResponse; @@ -55,4 +56,11 @@ public ResponseEntity> postWeekDoneInfoNotification() { infoNotificationCommandService.postWeekDoneInfoNotification(); return ApiResponse.success(POST_WEEKDONE_INFONOTIFICATION_SUCCESS); } + + @GetMapping("information/number") + @Operation(summary = "뉴스와 공지사항 개수 반환 API", description = "NewsNoticeNumber") + public ResponseEntity> getNewsNoticeNumber() { + return ApiResponse.success(NEWS_NOTICE_NUMBER_SUCCESS, infoNotificationQueryService.getNewsNoticeNumber()); + } + } diff --git a/WableServer/src/main/java/com/wable/www/WableServer/api/notification/dto/response/NewsNoticeCountResponseDto.java b/WableServer/src/main/java/com/wable/www/WableServer/api/notification/dto/response/NewsNoticeCountResponseDto.java new file mode 100644 index 0000000..7dc7627 --- /dev/null +++ b/WableServer/src/main/java/com/wable/www/WableServer/api/notification/dto/response/NewsNoticeCountResponseDto.java @@ -0,0 +1,13 @@ +package com.wable.www.WableServer.api.notification.dto.response; + +public record NewsNoticeCountResponseDto( + int newsNumber, + int noticeNumber +) { + public static NewsNoticeCountResponseDto of(int newsNumber, int noticeNumber) { + return new NewsNoticeCountResponseDto( + newsNumber, + noticeNumber + ); + } +} diff --git a/WableServer/src/main/java/com/wable/www/WableServer/api/notification/service/InfoNotificationQueryService.java b/WableServer/src/main/java/com/wable/www/WableServer/api/notification/service/InfoNotificationQueryService.java index a7205b2..f215d3f 100644 --- a/WableServer/src/main/java/com/wable/www/WableServer/api/notification/service/InfoNotificationQueryService.java +++ b/WableServer/src/main/java/com/wable/www/WableServer/api/notification/service/InfoNotificationQueryService.java @@ -4,7 +4,10 @@ import com.wable.www.WableServer.api.member.repository.MemberRepository; import com.wable.www.WableServer.api.notification.domain.InfoNotification; import com.wable.www.WableServer.api.notification.dto.response.InfoNotificationAllResponseDto; +import com.wable.www.WableServer.api.notification.dto.response.NewsNoticeCountResponseDto; import com.wable.www.WableServer.api.notification.repository.InfoNotificationRepository; +import com.wable.www.WableServer.api.notification.repository.NewsRepository; +import com.wable.www.WableServer.api.notification.repository.NoticeRepository; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.PageRequest; @@ -24,6 +27,8 @@ public class InfoNotificationQueryService { private final InfoNotificationRepository infoNotificationRepository; private final MemberRepository memberRepository; + private final NewsRepository newsRepository; + private final NoticeRepository noticeRepository; public List getInfoNotifications(Long memberId, Long cursor) { Member member = memberRepository.findMemberByIdOrThrow(memberId); @@ -43,4 +48,10 @@ public List getInfoNotifications(Long memberId, )).collect(Collectors.toList()); } + public NewsNoticeCountResponseDto getNewsNoticeNumber() { + int newsNumber = (int) newsRepository.count(); + int noticeNumber = (int) noticeRepository.count(); + + return NewsNoticeCountResponseDto.of(newsNumber, noticeNumber); + } } diff --git a/WableServer/src/main/java/com/wable/www/WableServer/common/response/SuccessStatus.java b/WableServer/src/main/java/com/wable/www/WableServer/common/response/SuccessStatus.java index 325306a..68f39b8 100644 --- a/WableServer/src/main/java/com/wable/www/WableServer/common/response/SuccessStatus.java +++ b/WableServer/src/main/java/com/wable/www/WableServer/common/response/SuccessStatus.java @@ -59,7 +59,7 @@ public enum SuccessStatus { POST_WEEKDONE_INFONOTIFICATION_SUCCESS(HttpStatus.CREATED,"한 주 종료 정보 노티 생성 완료"), NEWS_ALL_SUCCESS(HttpStatus.OK, "뉴스 목록 조회 성공"), NOTICE_ALL_SUCCESS(HttpStatus.OK, "공지사항 목록 조회 성공"), - + NEWS_NOTICE_NUMBER_SUCCESS(HttpStatus.OK, "뉴스, 공지사항 개수 조회 성공"), /** * report */