post第三次上传
Change-Id: I8ee9f57af704012dc22a69771fae4053258bad01
diff --git a/src/main/resources/mapper/PostMapper.xml b/src/main/resources/mapper/PostMapper.xml
new file mode 100644
index 0000000..e676fcc
--- /dev/null
+++ b/src/main/resources/mapper/PostMapper.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.pt5.pthouduan.mapper.PostMapper">
+
+ <!-- 插入帖子 -->
+ <insert id="save" parameterType="com.pt5.pthouduan.entity.Post"
+ useGeneratedKeys="true" keyProperty="postid" keyColumn="postid">
+ INSERT INTO post (
+ userid,
+ photo,
+ rannge,
+ is_pinned,
+ post_title,
+ post_content,
+ postCreatedTime,
+ updated_time,
+ tags,
+ likes
+ ) VALUES (
+ #{userid},
+ #{photo},
+ #{rannge},
+ #{is_pinned},
+ #{post_title},
+ #{post_content},
+ #{postCreatedTime},
+ #{updated_time},
+ #{tags},
+ COALESCE(#{likes}, 0)
+ )
+ </insert>
+
+ <!-- 删除帖子 -->
+ <delete id="deleteByPostid" parameterType="int">
+ DELETE FROM post WHERE postid = #{postid}
+ </delete>
+
+ <!-- 更新帖子 -->
+ <update id="updatePost" parameterType="com.pt5.pthouduan.entity.Post">
+ UPDATE post
+ SET
+ userid = #{userid},
+ photo = #{photo},
+ rannge = #{rannge},
+ updated_time = #{updated_time},
+ is_pinned = #{is_pinned},
+ post_title = #{post_title},
+ post_content = #{post_content},
+ postCreatedTime = #{postCreatedTime},
+ tags = #{tags},
+ likes = COALESCE(#{likes}, 0)
+ WHERE postid = #{postid}
+ </update>
+
+ <!-- 模糊搜索帖子 -->
+ <select id="searchByKeyword" resultType="com.pt5.pthouduan.entity.Post">
+ SELECT * FROM post
+ WHERE post_title LIKE CONCAT('%', #{keyword}, '%')
+ OR tags LIKE CONCAT('%', #{keyword}, '%')
+ </select>
+
+ <!-- 点赞 +1 -->
+ <update id="incrementLikes" parameterType="int">
+ UPDATE post
+ SET likes = likes + 1
+ WHERE postid = #{postid}
+ </update>
+
+ <!-- 取消点赞 -->
+ <update id="decrementLikes" parameterType="int">
+ UPDATE post
+ SET likes = CASE WHEN likes > 0 THEN likes - 1 ELSE 0 END
+ WHERE postid = #{postid}
+ </update>
+
+ <!-- 更新置顶状态 -->
+ <update id="updatePinnedStatus" parameterType="map">
+ UPDATE post
+ SET is_pinned = #{pinned}
+ WHERE postid = #{postid}
+ </update>
+
+ <!-- 根据用户 ID 查询其所有帖子 -->
+ <select id="findByUserid" resultType="com.pt5.pthouduan.entity.Post">
+ SELECT * FROM post
+ WHERE userid = #{userid}
+ </select>
+
+ <!-- 查询所有置顶帖子 -->
+ <select id="findPinnedPosts" resultType="com.pt5.pthouduan.entity.Post">
+ SELECT * FROM post
+ WHERE is_pinned = TRUE
+ </select>
+
+ <!-- 查询所有帖子,按置顶优先、创建时间倒序 -->
+ <select id="selectAllSorted" resultType="com.pt5.pthouduan.entity.Post">
+ SELECT * FROM post
+ ORDER BY is_pinned DESC, postCreatedTime DESC
+ </select>
+
+</mapper>