|
|
@@ -93,6 +93,80 @@
|
|
|
]]>
|
|
|
</select>
|
|
|
|
|
|
+
|
|
|
+ <select id="selectMyArticles" parameterType="hashmap" resultType="ArticleDTO">
|
|
|
+ <![CDATA[
|
|
|
+ SELECT
|
|
|
+ AR.id AS id,
|
|
|
+ AR.title AS title,
|
|
|
+ AR.subtitle AS subtitle,
|
|
|
+ AR.content AS content,
|
|
|
+ AR.tags AS tags,
|
|
|
+ AR.create_datetime AS created,
|
|
|
+ AR.favorite_num AS favoriteNum,
|
|
|
+ AR.user_id AS writerId,
|
|
|
+ USR.name AS writerName,
|
|
|
+ USR.email AS writerEmail,
|
|
|
+ (
|
|
|
+ SELECT COUNT(*) FROM article_like AL
|
|
|
+ WHERE AL.user_id = #{viewer}
|
|
|
+ AND AL.article_id = AR.id
|
|
|
+ ) AS favorite
|
|
|
+ FROM article_mst AR
|
|
|
+ LEFT JOIN user_mst USR
|
|
|
+ ON AR.user_id = USR.id
|
|
|
+ WHERE 1=1
|
|
|
+ AND AR.user_id = #{userId}
|
|
|
+ ]]>
|
|
|
+ <if test='articleId != -1'>
|
|
|
+ <![CDATA[
|
|
|
+ AND AR.id < #{articleId}
|
|
|
+ ]]>
|
|
|
+ </if>
|
|
|
+ <![CDATA[
|
|
|
+ ORDER BY AR.create_datetime DESC
|
|
|
+ LIMIT 4
|
|
|
+ ]]>
|
|
|
+ </select>
|
|
|
+
|
|
|
+
|
|
|
+ <select id="selectFavoriteArticles" parameterType="hashmap" resultType="ArticleDTO">
|
|
|
+ <![CDATA[
|
|
|
+ SELECT
|
|
|
+ AR.id AS id
|
|
|
+ ,AR.title AS title
|
|
|
+ ,AR.subtitle AS subtitle
|
|
|
+ ,AR.content AS content
|
|
|
+ ,AR.tags AS tags
|
|
|
+ ,AR.create_datetime AS created
|
|
|
+ ,AR.favorite_num AS favoriteNum
|
|
|
+ ,AR.user_id AS writerId
|
|
|
+ ,USR.name AS writerName
|
|
|
+ ,USR.email AS writerEmail
|
|
|
+ ,(
|
|
|
+ SELECT COUNT(*) FROM article_like AL2
|
|
|
+ WHERE AL2.user_id = #{viewer}
|
|
|
+ AND AL2.article_id = AR.id
|
|
|
+ ) AS favorite
|
|
|
+ FROM article_mst AR
|
|
|
+ LEFT JOIN article_like AL
|
|
|
+ ON AR.id = AL.article_id
|
|
|
+ LEFT JOIN user_mst USR
|
|
|
+ ON AR.user_id = USR.id
|
|
|
+ WHERE 1=1
|
|
|
+ AND AL.user_id = #{userId}
|
|
|
+ ]]>
|
|
|
+ <if test='articleId != -1'>
|
|
|
+ <![CDATA[
|
|
|
+ AND AR.id < #{articleId}
|
|
|
+ ]]>
|
|
|
+ </if>
|
|
|
+ <![CDATA[
|
|
|
+ ORDER BY AR.create_datetime DESC
|
|
|
+ LIMIT 4
|
|
|
+ ]]>
|
|
|
+ </select>
|
|
|
+
|
|
|
|
|
|
<select id="selectPagingInfo" parameterType="hashmap" resultType="hashmap">
|
|
|
<![CDATA[
|
|
|
@@ -101,28 +175,33 @@
|
|
|
COUNT( IF(id < #{articleId}, 1, null) ) AS nextItemNum
|
|
|
FROM article_mst AR
|
|
|
]]>
|
|
|
+ <if test='feed=="favorite-feed"'>
|
|
|
+ <![CDATA[
|
|
|
+ LEFT JOIN article_like AL
|
|
|
+ ON AR.id = AL.article_id
|
|
|
+ WHERE AL.user_id = #{userId}
|
|
|
+ ]]>
|
|
|
+ </if>
|
|
|
<if test='feed == "your-feed"'>
|
|
|
<![CDATA[
|
|
|
WHERE AR.user_id = #{userId}
|
|
|
- GROUP BY AR.user_id
|
|
|
]]>
|
|
|
</if>
|
|
|
</select>
|
|
|
|
|
|
-
|
|
|
<select id="selectArticleDetail" parameterType="hashmap" resultType="ArticleDTO">
|
|
|
<![CDATA[
|
|
|
SELECT
|
|
|
- USR.name AS writerName,
|
|
|
- USR.email AS writerEmail,
|
|
|
- AR.user_id AS writerId,
|
|
|
- AR.id AS id,
|
|
|
- AR.title AS title,
|
|
|
- AR.subtitle AS subtitle,
|
|
|
- AR.content AS content,
|
|
|
- AR.tags AS tags,
|
|
|
- AR.create_datetime AS created,
|
|
|
- AR.favorite_num AS favoriteNum,
|
|
|
+ USR.name AS writerName
|
|
|
+ ,USR.email AS writerEmail
|
|
|
+ ,AR.user_id AS writerId
|
|
|
+ ,AR.id AS id
|
|
|
+ ,AR.title AS title
|
|
|
+ ,AR.subtitle AS subtitle
|
|
|
+ ,AR.content AS content
|
|
|
+ ,AR.tags AS tags
|
|
|
+ ,AR.create_datetime AS created
|
|
|
+ ,AR.favorite_num AS favoriteNum
|
|
|
]]>
|
|
|
<if test='userId != -1'>
|
|
|
<![CDATA[
|
|
|
@@ -130,7 +209,7 @@
|
|
|
SELECT COUNT(*) FROM article_like AL
|
|
|
WHERE AL.user_id = #{userId}
|
|
|
AND AL.article_id = AR.id
|
|
|
- ) AS favorite,
|
|
|
+ ) AS favorite
|
|
|
(
|
|
|
SELECT COUNT(*) FROM user_follow UF
|
|
|
WHERE UF.from_user = #{userId}
|