获取所有收藏帖子
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;
+ }
+
}