Skip to content

Commit

Permalink
어제18시부터 18시전까지 조회
Browse files Browse the repository at this point in the history
  • Loading branch information
bikooju committed Jan 11, 2025
1 parent cd725fe commit f8dac76
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,7 @@ public interface NewsRepository extends JpaRepository<News,Long> {

List<News> findByTeamGroupAndCreatedAtBetween(TeamGroup teamGroup, LocalDateTime start, LocalDateTime end);
void deleteByCreatedAtBefore(LocalDateTime dateTime);


}

24 changes: 24 additions & 0 deletions src/main/java/banban/springboot/service/NewsService.java
Original file line number Diff line number Diff line change
Expand Up @@ -202,4 +202,28 @@ public void deleteOldNews() {
.withHour(18).withMinute(0).withSecond(0);
newsRepository.deleteByCreatedAtBefore(yesterdayAt6PM);
}

/***
* 어제 18시부터 작성한 글에서 오늘 18시전까지 작성한 글 목록 조회
*/
public List<NewsResponseDTO.NewsReadResponseDTO> getNewsBetweenYesterday18ToToday18(String groupKey) {
// 그룹 확인
TeamGroup teamGroup = groupRepository.findByGroupKey(groupKey)
.orElseThrow(() -> new GeneralException(ErrorStatus.TEAMGROUP_NOT_FOUND));

// 현재 시간
LocalDateTime now = getCurrentTime();

// 어제 18시부터 오늘 18시전까지
LocalDateTime yesterdayAt6PM = now.minusDays(1).withHour(18).withMinute(0).withSecond(0);
LocalDateTime todayAt6PM = now.withHour(17).withMinute(59).withSecond(59);

// 뉴스 조회
List<News> newsList = newsRepository.findByTeamGroupAndCreatedAtBetween(teamGroup, yesterdayAt6PM, todayAt6PM);

// 뉴스 -> DTO 변환
return newsList.stream()
.map(NewsResponseDTO.NewsReadResponseDTO::from)
.toList();
}
}
11 changes: 11 additions & 0 deletions src/main/java/banban/springboot/web/controller/NewsController.java
Original file line number Diff line number Diff line change
Expand Up @@ -125,4 +125,15 @@ public ApiResponse<List<NewsResponseDTO.NewsYesterdayResponseDTO>> getYesterdayN
List<NewsResponseDTO.NewsYesterdayResponseDTO> yesterdayNews = newsService.getYesterdayNews(groupKey, memberId);
return ApiResponse.onSuccess(yesterdayNews);
}

@GetMapping("/{groupKey}/news/yesterday-today")
@Operation(summary = "어제 18시부터 오늘 18시 전까지 뉴스 조회")
@Parameters({
@Parameter(name = "groupKey", description = "그룹 키")
})
public ApiResponse<List<NewsResponseDTO.NewsReadResponseDTO>> getNewsBetweenYesterday18ToToday18(
@PathVariable String groupKey) {
List<NewsResponseDTO.NewsReadResponseDTO> newsList = newsService.getNewsBetweenYesterday18ToToday18(groupKey);
return ApiResponse.onSuccess(newsList);
}
}

0 comments on commit f8dac76

Please sign in to comment.