diff --git a/src/main/java/com/on/server/domain/companyPost/domain/repository/CompanyPostRepository.java b/src/main/java/com/on/server/domain/companyPost/domain/repository/CompanyPostRepository.java index b118cd47..5c3ce563 100644 --- a/src/main/java/com/on/server/domain/companyPost/domain/repository/CompanyPostRepository.java +++ b/src/main/java/com/on/server/domain/companyPost/domain/repository/CompanyPostRepository.java @@ -35,8 +35,18 @@ default List findTop4ByOrderByCreatedAtDesc() { return findAll(pageable).getContent(); } - @Query("SELECT c FROM CompanyPost c JOIN c.travelArea t WHERE t LIKE CONCAT('%', :country, '%') AND c.isRecruitCompleted = false ORDER BY c.createdAt DESC") - List findTop5ByTravelArea(@Param("country") String country, Pageable pageable); +// @Query("SELECT c FROM CompanyPost c JOIN c.travelArea t WHERE t LIKE CONCAT('%', :country, '%') AND c.isRecruitCompleted = false ORDER BY c.createdAt DESC") +// List findTop5ByTravelArea(@Param("country") String country, Pageable pageable); + + /** + * 사용자가 작성하지 않은 동행글 중에서, + * 특정 국가명을 포함하고 모집이 완료되지 않은 글 + * 최신순으로 정렬하여 최대 5개 가져오기 + * @param country: 검색할 국가명 + * @param user: 현재 로그인한 사용자 (사용자가 작성한 글은 제외) + */ + @Query("SELECT c FROM CompanyPost c JOIN c.travelArea t WHERE t LIKE CONCAT('%', :country, '%') AND c.isRecruitCompleted = false AND c.user <> :user ORDER BY c.createdAt DESC") + List findTop5ByTravelArea(@Param("country") String country, @Param("user") User user, Pageable pageable); @Query("SELECT c FROM CompanyPost c JOIN c.travelArea t WHERE t LIKE CONCAT('%', :country, '%') AND c.isRecruitCompleted = false AND c.id <> :companyPostId ORDER BY c.createdAt DESC") List findTop5ByTravelAreaLike(@Param("country") String country, @Param("companyPostId") Long companyPostId); diff --git a/src/main/java/com/on/server/domain/home/application/HomeService.java b/src/main/java/com/on/server/domain/home/application/HomeService.java index 5d4ed651..493c15d4 100644 --- a/src/main/java/com/on/server/domain/home/application/HomeService.java +++ b/src/main/java/com/on/server/domain/home/application/HomeService.java @@ -93,7 +93,7 @@ public List getCompanyBoardList(User user) { String country = user.getCountry(); - List companyPostList = companyPostRepository.findTop5ByTravelArea(country, PageRequest.of(0, 5)); + List companyPostList = companyPostRepository.findTop5ByTravelArea(country, user, PageRequest.of(0, 5)); if (companyPostList.isEmpty()) {