57 lines
1.5 KiB
XML
57 lines
1.5 KiB
XML
<?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.imyeyu.api.modules.blog.mapper.ArticleMapper">
|
|
<sql id="table">article</sql>
|
|
<!-- 查询列表的文章字段 -->
|
|
<sql id="listColumn">
|
|
`id`,
|
|
`type`,
|
|
`title`,
|
|
`digest`,
|
|
`likes`,
|
|
`reads`,
|
|
`created_at`,
|
|
`updated_at`
|
|
</sql>
|
|
<!-- 列表 -->
|
|
<sql id="normalCondition">
|
|
FROM
|
|
article
|
|
WHERE
|
|
can_list IS TRUE
|
|
AND deleted_at IS NULL
|
|
</sql>
|
|
<select id="countByPage" resultType="long">
|
|
SELECT COUNT(1) <include refid="normalCondition" />
|
|
</select>
|
|
<select id="listByPage" resultType="com.imyeyu.api.modules.blog.entity.Article">
|
|
SELECT
|
|
<include refid="listColumn" />
|
|
<include refid="normalCondition" />
|
|
ORDER BY
|
|
COALESCE(updated_at, created_at) DESC
|
|
LIMIT
|
|
#{offset}, #{limit}
|
|
</select>
|
|
<!-- 根据关键字获取列表 -->
|
|
<sql id="byKeywordCondition">
|
|
<include refid="normalCondition" />
|
|
AND (
|
|
`title` LIKE CONCAT('%', #{keyword}, '%')
|
|
OR `digest` LIKE CONCAT('%', #{keyword}, '%')
|
|
)
|
|
</sql>
|
|
<select id="countByKeyword" resultType="long">
|
|
SELECT COUNT(1) <include refid="byKeywordCondition" />
|
|
</select>
|
|
<select id="selectByKeyword" resultType="com.imyeyu.api.modules.blog.entity.Article">
|
|
SELECT
|
|
<include refid="listColumn" />
|
|
<include refid="byKeywordCondition" />
|
|
ORDER BY
|
|
COALESCE(updated_at, created_at) DESC
|
|
LIMIT
|
|
#{offset}, #{limit}
|
|
</select>
|
|
</mapper>
|