创作中心模块包含首页展示、个人中心、帖子审核。
“首页展示”支持广告轮播展示、推广帖子优先展示、分页显示所有帖子、导航栏便捷标签筛选帖子、全局标题模糊搜索帖子、点击帖子“查看更多”进入帖子详情页。帖子详情页展示帖子封面图片、作者时间、详细内容(可以插入种子链接对种子进行介绍与推广)等基本信息、对帖子点赞收藏举报评论回复、查看相关推荐帖子。相关推荐会推荐当前帖子作者的其他帖子(最多推荐5篇),还会推荐具有相似标签的其他帖子,两者总共最多推荐9篇帖子。
“个人中心”包含“我的中心”和“我的收藏”。
“我的中心”中可以管理已经成功发布的帖子(编辑、删除帖子),还可以发布新帖子。发布新帖子时除了填写帖子基本信息以外,帖子标签支持下拉多项选择,用户还可以选择帖子推广项目并进行支付。设置了多种推广项目,包含广告轮播推广、帖子置顶展示、限时优先展示、分类页首条展示。系统后台执行自动定时任务,每小时对帖子的推广时效性进行检查,如超出推广时限,则取消帖子的推广显示特权。用户点击发布帖子后帖子处于待审核状态,需要管理员审核通过才能正常发布在首页展示页面。编辑帖子时用户可以追加帖子推广,但如果帖子处于推广状态,则禁止修改推广项目。
“我的收藏”中可以便捷查看所有已收藏的帖子。
“帖子审核”包含“帖子发布管理”和“帖子举报管理”。“帖子审核”板块具有权限管理,只有管理员界面能够进入。
“帖子发布管理”对所有待审核帖子进行处理,支持预览待审核帖子详细内容,批准通过和拒绝通过选项。
“帖子举报管理”对所有用户的举报请求进行人工审核,如果举报内容属实,则将帖子下架处理,如果举报内容不属实,驳回举报请求。所有举报请求的处理结果均留存显示,方便后续再次审查。+ bugfix
Change-Id: Iafa37f603aed3337484a3fc96d1cc70b83e8df0c
diff --git a/ruoyi-admin/src/main/resources/mapper/post/PostReportMapper.xml b/ruoyi-admin/src/main/resources/mapper/post/PostReportMapper.xml
new file mode 100644
index 0000000..fbbe021
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/post/PostReportMapper.xml
@@ -0,0 +1,111 @@
+<?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.ruoyi.web.controller.post.mapper.PostReportMapper">
+
+ <resultMap type="com.ruoyi.web.controller.post.domain.PostReport" id="PostReportResult">
+ <id property="reportId" column="report_id" />
+ <result property="postId" column="post_id" />
+ <result property="postTitle" column="post_title" />
+ <result property="reportUserId" column="report_user_id" />
+ <result property="reportUserName" column="report_user_name" />
+ <result property="reportReason" column="report_reason" />
+ <result property="status" column="status" />
+ <result property="handleResult" column="handle_result" />
+ <result property="handleTime" column="handle_time" />
+ <result property="handleBy" column="handle_by" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="remark" column="remark" />
+ </resultMap>
+
+ <sql id="selectPostReportVo">
+ select report_id, post_id, post_title, report_user_id, report_user_name, report_reason,
+ status, handle_result, handle_time, handle_by, create_by, create_time,
+ update_by, update_time, remark
+ from post_report
+ </sql>
+
+ <select id="selectPostReportList" parameterType="com.ruoyi.web.controller.post.domain.PostReport" resultMap="PostReportResult">
+ <include refid="selectPostReportVo"/>
+ <where>
+ <if test="postId != null">
+ AND post_id = #{postId}
+ </if>
+ <if test="reportUserId != null">
+ AND report_user_id = #{reportUserId}
+ </if>
+ <if test="status != null and status != ''">
+ AND status = #{status}
+ </if>
+ <if test="postTitle != null and postTitle != ''">
+ AND post_title like concat('%', #{postTitle}, '%')
+ </if>
+ <if test="reportUserName != null and reportUserName != ''">
+ AND report_user_name like concat('%', #{reportUserName}, '%')
+ </if>
+ </where>
+ order by create_time desc
+ </select>
+
+ <select id="selectPostReportById" parameterType="Long" resultMap="PostReportResult">
+ <include refid="selectPostReportVo"/>
+ where report_id = #{reportId}
+ </select>
+
+ <insert id="insertPostReport" parameterType="com.ruoyi.web.controller.post.domain.PostReport" useGeneratedKeys="true" keyProperty="reportId">
+ insert into post_report (
+ post_id,
+ post_title,
+ report_user_id,
+ report_user_name,
+ report_reason,
+ status,
+ create_by,
+ create_time
+ ) values (
+ #{postId},
+ #{postTitle},
+ #{reportUserId},
+ #{reportUserName},
+ #{reportReason},
+ #{status},
+ #{createBy},
+ sysdate()
+ )
+ </insert>
+
+ <update id="updatePostReport" parameterType="com.ruoyi.web.controller.post.domain.PostReport">
+ update post_report
+ <set>
+ <if test="postId != null">post_id = #{postId},</if>
+ <if test="postTitle != null and postTitle != ''">post_title = #{postTitle},</if>
+ <if test="reportUserId != null">report_user_id = #{reportUserId},</if>
+ <if test="reportUserName != null and reportUserName != ''">report_user_name = #{reportUserName},</if>
+ <if test="reportReason != null and reportReason != ''">report_reason = #{reportReason},</if>
+ <if test="status != null and status != ''">status = #{status},</if>
+ <if test="handleResult != null">handle_result = #{handleResult},</if>
+ <if test="handleTime != null">handle_time = #{handleTime},</if>
+ <if test="handleBy != null and handleBy != ''">handle_by = #{handleBy},</if>
+ <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+ <if test="remark != null">remark = #{remark},</if>
+ update_time = sysdate()
+ </set>
+ where report_id = #{reportId}
+ </update>
+
+ <delete id="deletePostReportById" parameterType="Long">
+ delete from post_report where report_id = #{reportId}
+ </delete>
+
+ <delete id="deletePostReportByIds" parameterType="Long">
+ delete from post_report where report_id in
+ <foreach collection="array" item="reportId" open="(" separator="," close=")">
+ #{reportId}
+ </foreach>
+ </delete>
+
+</mapper>
\ No newline at end of file