代码拉取完成,页面将自动刷新
<?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="me.qyh.blog.core.dao.ArticleDao">
<resultMap type="Article" id="ArticleDetail">
<id column="art_id" property="id" />
<result column="content" property="content" />
<result column="pubDate" property="pubDate" />
<result column="lastModifyDate" property="lastModifyDate" />
<result column="title" property="title" />
<result column="isPrivate" property="isPrivate" />
<result column="hits" property="hits" />
<result column="allowComment" property="allowComment" />
<result column="summary" property="summary" />
<result property="level" column="art_level" />
<result column="art_lock" property="lockId" />
<result property="tags" column="tags" typeHandler="TagsTypeHandler" />
<result property="status" column="art_status" typeHandler="EnumOrdinalTypeHandler" />
<result property="from" column="art_from" typeHandler="EnumOrdinalTypeHandler" />
<result property="editor" column="editor" typeHandler="EnumOrdinalTypeHandler" />
<result property="alias" column="art_alias" />
<result property="featureImage" column="feature_image" />
<association property="space" javaType="Space">
<result column="space_id" property="id" />
<result column="space_alias" property="alias" />
<result column="space_name" property="name" />
<result column="space_is_private" property="isPrivate" />
<result column="space_lock" property="lockId" />
</association>
</resultMap>
<resultMap type="ArticleStatistics" id="ArticleStatisticsDetail">
<id column="space_id" />
<result column="lastPubDate" property="lastPubDate" />
<result column="lastModifyDate" property="lastModifyDate" />
<result column="totalHits" property="totalHits" />
<result column="totalArticles" property="totalArticles" />
</resultMap>
<resultMap type="ArticleSpaceStatistics" id="ArticleSpaceStatisticsDetail">
<id column="space_id" />
<result column="art_count" property="count" />
<association property="space" javaType="Space">
<result column="space_id" property="id" />
<result column="space_alias" property="alias" />
<result column="space_name" property="name" />
</association>
</resultMap>
<insert id="insert" useGeneratedKeys="true" keyProperty="id"
keyColumn="id">
INSERT INTO
blog_article(content,pubDate,title,isPrivate,summary,art_level,art_lock,art_status,art_from,editor,space_id,art_alias,allowComment,feature_image)
VALUES(#{content},#{pubDate},#{title},#{isPrivate},#{summary},#{level},#{lockId},
#{status,javaType=ArticleStatus,typeHandler=EnumOrdinalTypeHandler},#{from,javaType=ArticleFrom,typeHandler=EnumOrdinalTypeHandler},
#{editor,javaType=Editor,typeHandler=EnumOrdinalTypeHandler},#{space.id},#{alias},#{allowComment},#{featureImage})
</insert>
<update id="update">
UPDATE
blog_article
<set>
<if test="content != null">
content = #{content},
</if>
<if test="title != null">
title = #{title},
</if>
<if test="isPrivate != null">
isPrivate = #{isPrivate},
</if>
pubDate = #{pubDate},
<if test="summary != null">
summary = #{summary},
</if>
art_level = #{level},
art_lock = #{lockId},
<if test="status != null">
art_status =
#{status,javaType=ArticleStatus,typeHandler=EnumOrdinalTypeHandler},
</if>
<if test="from != null">
art_from =
#{from,javaType=ArticleFrom,typeHandler=EnumOrdinalTypeHandler},
</if>
<if test="space != null">
space_id = #{space.id},
</if>
<if test="allowComment != null">
allowComment = #{allowComment},
</if>
<if test="lastModifyDate != null">
lastModifyDate = #{lastModifyDate},
</if>
feature_image = #{featureImage},
art_alias = #{alias}
</set>
WHERE id = #{id}
</update>
<select id="selectById" resultMap="ArticleDetail">
<include refid="articleDetailSql"></include>
WHERE
art.id = #{id}
GROUP BY art.id
</select>
<select id="selectByIds" resultMap="ArticleDetail">
<include refid="articleDetailSql"></include>
WHERE art.id IN
<foreach collection="collection" item="id" open="(" close=")"
separator=",">#{id}</foreach>
GROUP BY art.id
</select>
<select id="selectByAlias" resultMap="ArticleDetail">
<include refid="articleDetailSql"></include>
WHERE
art_alias = #{alias}
GROUP BY art.id
</select>
<select id="selectCount" resultType="int">
SELECT
COUNT(art.id)
FROM
blog_article art
LEFT OUTER JOIN blog_space sp
ON art.space_id = sp.id
<where>
<if test="space != null and space.hasId()">
art.space_id = #{space.id}
</if>
<if test="!queryPrivate">
AND art.isPrivate = false
AND sp.is_private = false
</if>
<if test="spaceIds != null and !spaceIds.isEmpty()">
AND art.space_id IN
<foreach collection="spaceIds" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</if>
<if test="begin != null and end != null">
AND art.pubDate BETWEEN #{begin} AND #{end}
</if>
<if test="status != null">
AND art.art_status =
#{status,javaType=ArticleStatus,typeHandler=EnumOrdinalTypeHandler}
</if>
<if test="from != null">
AND art.art_from =
#{from,javaType=ArticleFrom,typeHandler=EnumOrdinalTypeHandler}
</if>
<if test="!queryLock">
AND art.art_lock IS NULL
AND sp.space_lock IS NULL
</if>
<if test="tagId != null">
AND art.id IN (SELECT article_id FROM blog_article_tag
bat WHERE bat.tag_id = #{tagId})
</if>
</where>
</select>
<select id="selectPage" resultMap="ArticleDetail">
SELECT
art.id AS art_id,
art.pubDate,
art.lastModifyDate,
art.title,
art.isPrivate,
art.hits,
art.summary,
art.art_level,
art.art_status,
art.editor,
art.art_from,
art.space_id,
art.art_lock,
art.art_alias,
art.feature_image,
sp.space_alias,
space_lock,
sp.is_private AS space_is_private,
sp.space_name,
GROUP_CONCAT(bt.tag_name) AS tags
FROM
blog_article art
LEFT OUTER JOIN blog_space sp
ON art.space_id = sp.id
LEFT OUTER JOIN
blog_article_tag bat ON
bat.article_id = art.id
LEFT OUTER JOIN blog_tag
bt ON bat.tag_id =
bt.id
<where>
<if test="space != null and space.hasId()">
art.space_id = #{space.id}
</if>
<if test="!queryPrivate">
AND art.isPrivate = false
AND sp.is_private = false
</if>
<if test="spaceIds != null and !spaceIds.isEmpty()">
AND art.space_id IN
<foreach collection="spaceIds" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</if>
<if test="begin != null and end != null">
AND art.pubDate BETWEEN #{begin} AND #{end}
</if>
<if test="status != null">
AND art.art_status =
#{status,javaType=ArticleStatus,typeHandler=EnumOrdinalTypeHandler}
</if>
<if test="from != null">
AND art.art_from =
#{from,javaType=ArticleFrom,typeHandler=EnumOrdinalTypeHandler}
</if>
<if test="!queryLock">
AND art.art_lock IS NULL
AND sp.space_lock IS NULL
</if>
<if test="tagId != null">
AND art.id IN (SELECT article_id FROM blog_article_tag bat WHERE bat.tag_id = #{tagId})
</if>
</where>
GROUP BY art.id
ORDER BY
<if test="!ignoreLevel">
art_level DESC,
</if>
<choose>
<when test="sort != null">
<choose>
<when test='sort.name() == "HITS"'>
art.hits DESC,
</when>
<when test='sort.name() == "LASTMODIFYDATE"'>
art.lastModifyDate DESC,art.pubDate DESC,
</when>
<otherwise>
art.pubDate DESC,
</otherwise>
</choose>
</when>
<otherwise>
art.pubDate DESC,
</otherwise>
</choose>
art.id DESC
<if test="pageSize > 0">
LIMIT #{offset},#{pageSize}
</if>
</select>
<select id="selectPageByIds" resultMap="ArticleDetail">
SELECT
art.id AS art_id,
art.pubDate,
art.lastModifyDate,
art.title,
art.isPrivate,
art.hits,
art.summary,
art.art_level,
art.art_status,
art.art_from,
art.space_id,
art.art_lock,
art.art_alias,
art.feature_image,
sp.space_alias,
space_lock,
sp.space_name,
sp.is_private AS space_is_private,
GROUP_CONCAT(bt.tag_name) AS tags
FROM
blog_article art
LEFT OUTER JOIN
blog_space sp
ON art.space_id = sp.id
LEFT OUTER JOIN blog_article_tag
bat ON
bat.article_id = art.id
LEFT OUTER JOIN blog_tag bt ON bat.tag_id
=
bt.id
WHERE art.id IN
<foreach collection="collection" item="id" open="(" close=")"
separator=",">#{id}</foreach>
GROUP BY art.id
</select>
<select id="selectSimplePublished" resultMap="ArticleDetail">
SELECT
art.id AS art_id,
art.art_alias,
art.title,
art.hits,
art.pubDate,
art.lastModifyDate,
sp.space_alias,
art.isPrivate,
art.art_lock,
space_lock,
sp.is_private AS space_is_private
FROM blog_article art
LEFT OUTER JOIN blog_space sp ON art.space_id = sp.id
WHERE art.art_status = 0
<if test="space != null">
AND space_id = #{space.id}
</if>
<if test="!queryPrivate">
AND art.isPrivate = false
AND sp.is_private = false
</if>
</select>
<select id="selectScheduled" resultMap="ArticleDetail">
<include refid="articleDetailSql"></include>
WHERE
art.art_status = 1<!-- SCHEDULED -->
AND
art.pubDate <![CDATA[ <= ]]>
#{date}
GROUP BY art.id
</select>
<!-- <select id="selectPublished" resultMap="ArticleDetail"> -->
<!-- <include refid="articleDetailSql"></include> -->
<!-- WHERE art.art_status = 0 -->
<!-- <if test="space != null"> -->
<!-- AND art.space_id = #{space.id} -->
<!-- </if> -->
<!-- GROUP BY art.id -->
<!-- </select> -->
<delete id="deleteById">
DELETE FROM blog_article WHERE id = #{id}
</delete>
<update id="addHits">
UPDATE blog_article SET hits = hits + #{hits} WHERE
id = #{id}
</update>
<update id="updateHits">
UPDATE blog_article SET hits = #{hits} WHERE
id =
#{id}
</update>
<select id="selectHits" resultType="int">
SELECT hits FROM blog_article
WHERE id = #{id}
</select>
<select id="selectAll" resultMap="ArticleDetail">
<include refid="articleDetailSql"></include>
GROUP BY art.id
</select>
<select id="getPreviousArticle" resultMap="ArticleDetail">
SELECT
art.id AS art_id,
art.art_alias,
art.title,
art.feature_image,
art.space_id,
sp.space_alias,
sp.space_name
FROM
blog_article art
LEFT OUTER JOIN
blog_space sp
ON art.space_id = sp.id
WHERE art.art_status = 0
AND
art.pubDate <![CDATA[ < ]]>
#{article.pubDate}
<choose>
<when test="article.space != null">
AND art.space_id = #{article.space.id}
</when>
</choose>
<if test="!queryPrivate">
AND art.isPrivate = false
AND sp.is_private = false
</if>
<if test="!queryLock">
AND art.art_lock IS NULL
AND sp.space_lock IS NULL
</if>
ORDER BY art.pubDate DESC,art.id DESC
LIMIT 0,1
</select>
<select id="getNextArticle" resultMap="ArticleDetail">
SELECT
art.id AS art_id,
art.art_alias,
art.title,
art.space_id,
art.feature_image,
sp.space_alias,
sp.space_name
FROM
blog_article art
LEFT OUTER JOIN
blog_space sp
ON art.space_id = sp.id
WHERE art.art_status = 0
AND
art.pubDate >
#{article.pubDate}
<choose>
<when test="article.space != null">
AND art.space_id = #{article.space.id}
</when>
</choose>
<if test="!queryPrivate">
AND art.isPrivate = false
AND sp.is_private = false
</if>
<if test="!queryLock">
AND art.art_lock IS NULL
AND sp.space_lock IS NULL
</if>
ORDER BY art.pubDate ASC,art.id ASC
LIMIT 0,1
</select>
<select id="selectSimpleByIds" resultMap="ArticleDetail">
SELECT
art.id AS art_id,
art.title,
art.feature_image,
art.pubDate,
art.space_id,
art.art_alias,
sp.space_alias,
sp.space_name
FROM
blog_article art
LEFT
OUTER JOIN blog_space sp
ON art.space_id = sp.id
WHERE art.id IN
<foreach collection="collection" item="id" open="(" close=")"
separator=",">#{id}</foreach>
</select>
<select id="selectStatistics" resultMap="ArticleStatisticsDetail">
SELECT
COALESCE(SUM(hits),0) AS totalHits,
COUNT(art.id) AS
totalArticles,
MAX(lastModifyDate) AS lastModifyDate,
MAX(pubDate) AS
lastPubDate
FROM
blog_article art
LEFT OUTER JOIN blog_space sp
ON
art.space_id = sp.id
WHERE art.art_status = 0
<if test="space != null">
AND art.space_id = #{space.id}
</if>
<if test="!queryPrivate">
AND art.isPrivate = false
AND sp.is_private = false
</if>
</select>
<select id="selectAllStatistics" resultMap="ArticleStatisticsDetail">
SELECT
COALESCE(SUM(hits),0) AS totalHits,
COUNT(art.id) AS
totalArticles,
MAX(lastModifyDate) AS lastModifyDate,
MAX(pubDate) AS
lastPubDate
FROM
blog_article art
LEFT OUTER JOIN blog_space sp
ON
art.space_id = sp.id
<where>
<if test="space != null">
art.space_id = #{space.id}
</if>
</where>
</select>
<update id="deleteLock">
UPDATE blog_article SET art_lock = NULL WHERE
art_lock = #{lockId}
</update>
<select id="selectMinimumScheduleDate" resultType="java.sql.Timestamp">
SELECT MIN(pubDate) FROM blog_article WHERE art_status = 1<!-- SCHEDULED -->
</select>
<select id="selectIdByAlias" resultType="java.lang.Integer">
SELECT id FROM
blog_article WHERE art_alias = #{alias}
</select>
<select id="selectRandom" resultMap="ArticleDetail">
SELECT
art.id AS art_id,
art.art_alias,
art.title,
art.space_id,
art.feature_image,
sp.space_alias,
sp.space_name
FROM
blog_article art
LEFT OUTER JOIN
blog_space sp
ON art.space_id = sp.id
WHERE art.art_status = 0 <!-- PUBLISHED -->
<if test="!queryPrivate">
AND art.isPrivate = false
AND sp.is_private = false
</if>
<if test="!queryLock">
AND art.art_lock IS NULL
AND sp.space_lock IS NULL
</if>
ORDER BY RAND()
LIMIT 0,1
</select>
<select id="selectCountBySpace" resultType="int">
SELECT COUNT(id) FROM
blog_article WHERE space_id = #{id}
</select>
<update id="moveSpace">
UPDATE blog_article SET space_id = #{newSpace.id}
WHERE space_id = #{oldSpace.id}
</update>
<select id="selectArticleSpaceStatistics" resultMap="ArticleSpaceStatisticsDetail">
SELECT space_id,space_alias,space_name,COUNT(*) AS art_count
FROM
blog_article art
LEFT OUTER JOIN blog_space sp
ON art.space_id = sp.id
WHERE art_status = 0<!-- PUBLISHED -->
<if test="!queryPrivate">
AND art.isPrivate = false
AND sp.is_private = false
</if>
GROUP BY space_id
</select>
<select id="selectPublishedPage" resultMap="ArticleDetail">
<include refid="articleDetailSql"></include>
WHERE art.art_status = 0
GROUP BY art.id
ORDER BY art.id
LIMIT #{offset},#{limit}
</select>
<sql id="articleDetailSql">
SELECT
art.id AS art_id,
art.content,
art.pubDate,
art.lastModifyDate,
art.title,
art.isPrivate,
art.hits,
art.summary,
art.art_level,
art.art_status,
art.art_from,
art.editor,
art.space_id,
art.art_lock,
art.art_alias,
art.allowComment,
art.feature_image,
sp.space_alias,
sp.space_name,
space_lock,
sp.is_private AS space_is_private,
GROUP_CONCAT(bt.tag_name) AS tags
FROM
blog_article art
LEFT OUTER JOIN
blog_space sp
ON art.space_id = sp.id
LEFT OUTER JOIN blog_article_tag
bat ON
bat.article_id = art.id
LEFT OUTER JOIN blog_tag bt ON bat.tag_id = bt.id
</sql>
</mapper>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。