2017-08-15 09:47:18 +07:00
|
|
|
<?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="io.spring.application.article.ArticleFavoritesQueryService">
|
|
|
|
<select id="isUserFavorite" resultType="java.lang.Boolean">
|
|
|
|
select count(1) from article_favorites where user_id = #{userId} and article_id = #{articleId}
|
|
|
|
</select>
|
|
|
|
<select id="articleFavoriteCount" resultType="java.lang.Integer">
|
|
|
|
select count(1) from article_favorites where article_id = #{articleId}
|
|
|
|
</select>
|
2017-08-17 16:17:37 +07:00
|
|
|
<select id="articlesFavoriteCount" resultMap="favoriteCount">
|
|
|
|
select A.id, count(A.id) as favoriteCount from articles A
|
|
|
|
left join article_favorites AF on A.id = AF.article_id
|
|
|
|
where id in
|
|
|
|
<foreach collection="ids" item="item" separator="," open="(" close=")">
|
|
|
|
#{item}
|
|
|
|
</foreach>
|
|
|
|
group by A.id
|
|
|
|
</select>
|
|
|
|
<select id="userFavorites" resultType="java.lang.String">
|
|
|
|
select
|
|
|
|
A.id
|
|
|
|
from articles A
|
|
|
|
left join article_favorites AF on A.id = AF.article_id
|
|
|
|
where id in
|
|
|
|
<foreach collection="ids" item="item" separator="," open="(" close=")">
|
|
|
|
#{item}
|
|
|
|
</foreach>
|
|
|
|
and AF.user_id = #{currentUser.id}
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<resultMap id="favoriteCount" type="io.spring.application.article.ArticleFavoriteCount">
|
|
|
|
<id column="id" property="id"/>
|
|
|
|
<result column="favoriteCount" property="count"/>
|
|
|
|
</resultMap>
|
2017-08-15 09:47:18 +07:00
|
|
|
|
|
|
|
</mapper>
|