|
@@ -0,0 +1,77 @@
|
|
|
|
+<?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="org.forgetive.forumsystem.dao.passage.PassageMapper">
|
|
|
|
+ <select id="selectPassageByUserId" resultType="org.forgetive.forumsystem.pojo.passage.Passage">
|
|
|
|
+ select passage.passage_id as passage_id,
|
|
|
|
+ passage.user_id as user_id,
|
|
|
|
+ passage.passage_content as passage_content,
|
|
|
|
+ passage.passage_time as passage_time,
|
|
|
|
+ passage_good_cnt.passage_good_cnt as passage_good_cnt,
|
|
|
|
+ passage_watch_cnt.passage_watch_cnt as passage_watch_cnt
|
|
|
|
+ from passage
|
|
|
|
+ left join passage_good_cnt on passage.passage_id = passage_good_cnt.passage_id
|
|
|
|
+ left join passage_watch_cnt on passage.passage_id = passage_watch_cnt.passage_id
|
|
|
|
+ where user_id = #{userId}
|
|
|
|
+ </select>
|
|
|
|
+ <select id="selectRecommendPassage" resultType="org.forgetive.forumsystem.pojo.passage.Passage">
|
|
|
|
+ select passage.passage_id as passage_id,
|
|
|
|
+ passage.user_id as user_id,
|
|
|
|
+ passage.passage_content as passage_content,
|
|
|
|
+ passage.passage_time as passage_time,
|
|
|
|
+ passage_good_cnt.passage_good_cnt as passage_good_cnt,
|
|
|
|
+ passage_watch_cnt.passage_watch_cnt as passage_watch_cnt,
|
|
|
|
+ (passage_good_cnt.passage_good_cnt * 2 + passage_watch_cnt.passage_watch_cnt - timestampdiff(hour, passage.passage_time, current_timestamp())) as passage_recommend
|
|
|
|
+ from passage
|
|
|
|
+ left join passage_good_cnt on passage.passage_id = passage_good_cnt.passage_id
|
|
|
|
+ left join passage_watch_cnt on passage.passage_id = passage_watch_cnt.passage_id
|
|
|
|
+ order by passage_recommend desc limit #{offset}, #{count}
|
|
|
|
+ </select>
|
|
|
|
+ <select id="selectNewestPassage" resultType="org.forgetive.forumsystem.pojo.passage.Passage">
|
|
|
|
+ select passage.passage_id as passage_id,
|
|
|
|
+ passage.user_id as user_id,
|
|
|
|
+ passage.passage_content as passage_content,
|
|
|
|
+ passage.passage_time as passage_time,
|
|
|
|
+ passage_good_cnt.passage_good_cnt as passage_good_cnt,
|
|
|
|
+ passage_watch_cnt.passage_watch_cnt as passage_watch_cnt,
|
|
|
|
+ (passage_good_cnt.passage_good_cnt * 2 + passage_watch_cnt.passage_watch_cnt - timestampdiff(minute, passage.passage_time, current_timestamp())) as passage_recommend
|
|
|
|
+ from passage
|
|
|
|
+ left join passage_good_cnt on passage.passage_id = passage_good_cnt.passage_id
|
|
|
|
+ left join passage_watch_cnt on passage.passage_id = passage_watch_cnt.passage_id
|
|
|
|
+ order by passage_recommend desc limit #{offset}, #{count}
|
|
|
|
+ </select>
|
|
|
|
+ <select id="selectHighQualityPassage" resultType="org.forgetive.forumsystem.pojo.passage.Passage">
|
|
|
|
+ select passage.passage_id as passage_id,
|
|
|
|
+ passage.user_id as user_id,
|
|
|
|
+ passage.passage_content as passage_content,
|
|
|
|
+ passage.passage_time as passage_time,
|
|
|
|
+ passage_good_cnt.passage_good_cnt as passage_good_cnt,
|
|
|
|
+ passage_watch_cnt.passage_watch_cnt as passage_watch_cnt,
|
|
|
|
+ (passage_good_cnt.passage_good_cnt * 2 + passage_watch_cnt.passage_watch_cnt - timestampdiff(day, passage.passage_time, current_timestamp())) as passage_recommend
|
|
|
|
+ from passage
|
|
|
|
+ left join passage_good_cnt on passage.passage_id = passage_good_cnt.passage_id
|
|
|
|
+ left join passage_watch_cnt on passage.passage_id = passage_watch_cnt.passage_id
|
|
|
|
+ order by passage_recommend desc limit #{offset}, #{count}
|
|
|
|
+ </select>
|
|
|
|
+ <insert id="insert">
|
|
|
|
+ insert into passage (user_id, passage_content) values (#{userId}, #{passageContent});
|
|
|
|
+ insert into passage_good_cnt (passage_id, passage_good_cnt) values (last_insert_id(), 0);
|
|
|
|
+ insert into passage_watch_cnt (passage_id, passage_watch_cnt) values (last_insert_id(), 0);
|
|
|
|
+ </insert>
|
|
|
|
+ <update id="changeWatchCnt">
|
|
|
|
+ update passage_watch_cnt set passage_watch_cnt = passage_watch_cnt + #{modifyCnt} where passage_id = #{passageId}
|
|
|
|
+ </update>
|
|
|
|
+ <update id="changeGoodCnt">
|
|
|
|
+ update passage_good_cnt set passage_good_cnt = passage_good_cnt + #{modifyCnt} where passage_id = #{passageId}
|
|
|
|
+ </update>
|
|
|
|
+ <select id="getUserGood">
|
|
|
|
+ select count(*) from passage_good where passage_id = #{passageId} and user_id = #{userId}
|
|
|
|
+ </select>
|
|
|
|
+ <insert id="insertUserGood">
|
|
|
|
+ insert into passage_good (passage_id, user_id) values (#{passageId}, #{userId})
|
|
|
|
+ </insert>
|
|
|
|
+ <delete id="deleteUserGood">
|
|
|
|
+ delete from passage_good where user_id = #{userId} and passage_id = #{passageId}
|
|
|
|
+ </delete>
|
|
|
|
+</mapper>
|