获取所有收藏帖子

Change-Id: I599df61bff71f48b80849bd4b75236a8c4529d91
diff --git a/src/main/java/com/example/myproject/controller/PostController.java b/src/main/java/com/example/myproject/controller/PostController.java
index 63fcbe8..4233028 100644
--- a/src/main/java/com/example/myproject/controller/PostController.java
+++ b/src/main/java/com/example/myproject/controller/PostController.java
@@ -90,5 +90,11 @@
         return "Post uncollected successfully!";
     }
 
+    // 获取用户收藏的所有帖子
+    @GetMapping("/{userId}/getAllcollections")
+    public List<Map<String, Object>> getAllCollections(@PathVariable("userId") Long userId) {
+        return postService.getAllCollections(userId);
+    }
+
 
 }
diff --git a/src/main/java/com/example/myproject/repository/CollectionsRepository.java b/src/main/java/com/example/myproject/repository/CollectionsRepository.java
index 4b192bd..300f233 100644
--- a/src/main/java/com/example/myproject/repository/CollectionsRepository.java
+++ b/src/main/java/com/example/myproject/repository/CollectionsRepository.java
@@ -7,10 +7,13 @@
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 @Repository
 public interface CollectionsRepository extends JpaRepository<Collections, Long> {
     @Modifying
     @Transactional
     @Query("DELETE FROM Collections l WHERE l.userId = :userId AND l.postNo = :postNo")
     void deleteLikeByUserIdAndPostNo(Long userId, Long postNo);
+    List<Collections> findByUserId(Long userId);
 }
diff --git a/src/main/java/com/example/myproject/service/PostService.java b/src/main/java/com/example/myproject/service/PostService.java
index feb7404..90fc706 100644
--- a/src/main/java/com/example/myproject/service/PostService.java
+++ b/src/main/java/com/example/myproject/service/PostService.java
@@ -228,5 +228,44 @@
     }
 
 
+    // 获取用户收藏的所有帖子
+    public List<Map<String, Object>> getAllCollections(Long userId) {
+        // 获取用户收藏的帖子ID
+        List<Collections> collections = collectionsRepository.findByUserId(userId);
+
+        // 如果没有收藏的帖子,返回空列表
+        if (collections.isEmpty()) {
+            return new ArrayList<>();
+        }
+
+        List<Map<String, Object>> response = new ArrayList<>();
+        for (Collections collection : collections) {
+            // 根据 postNo 查询帖子
+            Optional<Post> postOptional = postRepository.findById(collection.getPostNo());
+            if (postOptional.isPresent()) {
+                Post post = postOptional.get();
+
+                // 获取帖子作者的信息
+                Optional<Users> userOptional = userRepository.findById(post.getUser_id());
+                if (userOptional.isPresent()) {
+                    Users user = userOptional.get();
+
+                    // 将帖子数据和用户信息封装到 Map 中
+                    Map<String, Object> postInfo = new LinkedHashMap<>();
+                    postInfo.put("postNo", post.getPostNo());
+                    postInfo.put("title", post.getTitle());
+                    postInfo.put("postContent", post.getPostContent());
+                    postInfo.put("imageUrl", post.getImageUrl());
+                    postInfo.put("userId", post.getUser_id());
+                    postInfo.put("username", user.getUsername());  // 帖子作者用户名
+                    postInfo.put("avatarUrl", user.getAvatarUrl());  // 帖子作者头像
+
+                    response.add(postInfo);
+                }
+            }
+        }
+        return response;
+    }
+
 
 }