post第三次上传
Change-Id: I8ee9f57af704012dc22a69771fae4053258bad01
diff --git a/src/main/java/com/pt5/pthouduan/service/PostService.java b/src/main/java/com/pt5/pthouduan/service/PostService.java
new file mode 100644
index 0000000..fabf254
--- /dev/null
+++ b/src/main/java/com/pt5/pthouduan/service/PostService.java
@@ -0,0 +1,46 @@
+package com.pt5.pthouduan.service;
+
+import com.pt5.pthouduan.entity.Post;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 帖子服务接口
+ * </p>
+ *
+ * 功能:
+ * - 增、删、改、查(按标签或标题)
+ * - 点赞、取消点赞
+ * - 设置置顶状态
+ * - 可设置可见范围
+ * - 上传图片(通常可选放在 Controller)
+ * - 查找用户所有帖子
+ * - 查找置顶帖子
+ * - 获取所有帖子(置顶优先,时间倒序)
+ *
+ * @author 杨蔓
+ * @since 2025-04-14
+ */
+public interface PostService {
+
+ Post createPost(Post post); // 创建帖子
+
+ boolean deletePost(Integer postid); // 删除帖子
+
+ boolean updatePost(Post post); // 更新帖子
+
+ List<Post> searchPostsByKeyword(String keyword); // 查找帖子(标题或标签)
+
+ boolean incrementLikes(Integer postid); // 点赞(likes + 1)
+
+ boolean decrementLikes(Integer postid); // 取消点赞(likes - 1,最小为0)
+
+ boolean setPinnedStatus(Integer postid, boolean pinned); // 设置是否置顶
+
+ List<Post> findByUserid(Long userid); // 根据用户 ID 获取帖子
+
+ List<Post> findPinnedPosts(); // 查找所有置顶帖子
+
+ List<Post> getAllPostsSorted(); // ✅ 获取所有帖子(置顶优先,按时间排序)
+}
diff --git a/src/main/java/com/pt5/pthouduan/service/impl/PostServiceImpl.java b/src/main/java/com/pt5/pthouduan/service/impl/PostServiceImpl.java
new file mode 100644
index 0000000..d1bda7f
--- /dev/null
+++ b/src/main/java/com/pt5/pthouduan/service/impl/PostServiceImpl.java
@@ -0,0 +1,76 @@
+package com.pt5.pthouduan.service.impl;
+
+import com.pt5.pthouduan.entity.Post;
+import com.pt5.pthouduan.mapper.PostMapper;
+import com.pt5.pthouduan.service.PostService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 帖子服务实现类
+ * </p>
+ *
+ * @author 杨蔓
+ * @since 2025-04-14
+ */
+@Service
+public class PostServiceImpl implements PostService {
+
+ @Autowired
+ private PostMapper postMapper;
+
+ @Override
+ public Post createPost(Post post) {
+ postMapper.save(post);
+ return post;
+ }
+
+ @Override
+ public boolean deletePost(Integer postid) {
+ return postMapper.deleteByPostid(postid) > 0;
+ }
+
+ @Override
+ public boolean updatePost(Post post) {
+ return postMapper.updatePost(post) > 0;
+ }
+
+ @Override
+ public List<Post> searchPostsByKeyword(String keyword) {
+ return postMapper.searchByKeyword(keyword);
+ }
+
+ @Override
+ public boolean incrementLikes(Integer postid) {
+ return postMapper.incrementLikes(postid) >= 0;
+ }
+
+ @Override
+ public boolean decrementLikes(Integer postid) {
+ return postMapper.decrementLikes(postid) >= 0;
+ }
+
+ @Override
+ public boolean setPinnedStatus(Integer postid, boolean pinned) {
+ return postMapper.updatePinnedStatus(postid, pinned) > 0;
+ }
+
+ @Override
+ public List<Post> findByUserid(Long userid) {
+ return postMapper.findByUserid(userid);
+ }
+
+ @Override
+ public List<Post> findPinnedPosts() {
+ return postMapper.findPinnedPosts();
+ }
+
+ /** ✅ 新增:获取所有帖子(置顶优先,时间倒序) */
+ @Override
+ public List<Post> getAllPostsSorted() {
+ return postMapper.selectAllSorted();
+ }
+}