diff --git a/src/main/java/com/moviePocket/controller/post/PostController.java b/src/main/java/com/moviePocket/controller/post/PostController.java index 9f6da77..63ab1c1 100644 --- a/src/main/java/com/moviePocket/controller/post/PostController.java +++ b/src/main/java/com/moviePocket/controller/post/PostController.java @@ -217,4 +217,14 @@ public ResponseEntity getAllLikePostsByIdMovie(@RequestParam("idPost") // public ResponseEntity> getLeastLikedPosts() { // return likePostService.getLeastLikedPosts(); // } + + @GetMapping("/get/last") + public ResponseEntity> getLast() { + return postService.getTop10LatestPosts(); + } + + @GetMapping("/get/top") + public ResponseEntity> getTop() { + return postService.getTop10LikedPosts(); + } } diff --git a/src/main/java/com/moviePocket/repository/post/PostRepository.java b/src/main/java/com/moviePocket/repository/post/PostRepository.java index 454c3b2..92f3af6 100644 --- a/src/main/java/com/moviePocket/repository/post/PostRepository.java +++ b/src/main/java/com/moviePocket/repository/post/PostRepository.java @@ -19,4 +19,15 @@ public interface PostRepository extends JpaRepository { @Query("Select m from Post m where m.title like :title%") List findAllByTitle(String title); + @Query("SELECT p FROM Post p ORDER BY p.created DESC") + List findTop10LatestPosts(); + + @Query("SELECT ll.post, COUNT(ll) as likeCount " + + "FROM LikePost ll " + + "WHERE ll.lickOrDis = true " + + "GROUP BY ll.post " + + "HAVING COUNT(ll) > 0 " + + "ORDER BY likeCount DESC") + List findTop10LikedPosts(); + } diff --git a/src/main/java/com/moviePocket/service/impl/post/PostServiceImpl.java b/src/main/java/com/moviePocket/service/impl/post/PostServiceImpl.java index b1d8025..63e427b 100644 --- a/src/main/java/com/moviePocket/service/impl/post/PostServiceImpl.java +++ b/src/main/java/com/moviePocket/service/impl/post/PostServiceImpl.java @@ -277,4 +277,21 @@ public ResponseEntity authorshipCheck(Long idPost, String username) { } return ResponseEntity.ok(false); } + + public ResponseEntity> getTop10LatestPosts() { + List posts = postRepository.findTop10LatestPosts(); + if (!posts.isEmpty()) + return ResponseEntity.ok(parsPost(posts)); + else + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } + + public ResponseEntity> getTop10LikedPosts() { + List posts = postRepository.findTop10LikedPosts(); + if (!posts.isEmpty()) + return ResponseEntity.ok(parsPost(posts)); + else + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } + } diff --git a/src/main/java/com/moviePocket/service/inter/post/PostService.java b/src/main/java/com/moviePocket/service/inter/post/PostService.java index aaecb6e..f855400 100644 --- a/src/main/java/com/moviePocket/service/inter/post/PostService.java +++ b/src/main/java/com/moviePocket/service/inter/post/PostService.java @@ -34,4 +34,9 @@ public interface PostService { ResponseEntity authorshipCheck(Long idPost, String username); + ResponseEntity> getTop10LatestPosts(); + + ResponseEntity> getTop10LikedPosts(); + + }