@ -98,4 +98,173 @@
AND a.STATUS_FLAG = 'offline'
</select>
<!-- 根据网格Id查找置顶文章的相关信息列表 用处:居民端首页轮播 参数:网格Id、客户定制化显示条数 -->
<select id= "selectTopArticleMsg" resultType= "com.epmet.dto.result.ArticleBannerResultDTO" >
SELECT
art.ID AS articleId,
art.TITLE,
artcover.IMG_URL AS coverImg
FROM
ARTICLE art
LEFT JOIN (
SELECT
cover.ARTICLE_ID,
cover.IMG_URL
FROM
ARTICLE_COVER cover
WHERE
NOT EXISTS(
SELECT 1 FROM ARTICLE_COVER WHERE DEL_FLAG = '0' AND ARTICLE_ID = cover.ARTICLE_ID AND AUDIT_STATUS = 'pass' AND cover.CREATED_TIME <![CDATA[<]]> CREATED_TIME)
AND cover.DEL_FLAG = '0'
AND cover.AUDIT_STATUS = 'pass'
) artcover ON art.ID = artcover.ARTICLE_ID
INNER JOIN ARTICLE_PUBLISH_RANGE prange
ON art.ID = prange.ARTICLE_ID
AND
prange.DEL_FLAG = '0'
AND
prange.PUBLISH_STATUS = 'published'
AND
prange.GRID_ID = #{gridId}
WHERE
art.DEL_FLAG = '0'
AND
art.STATUS_FLAG = 'published'
AND
art.IS_TOP = 1
ORDER BY art.PUBLISH_DATE , art.CREATED_TIME DESC
LIMIT #{num}
</select>
<!-- 根据网格Id查找最新文章的相关信息列表 用处:居民端首页最新文章列表 参数:网格Id、客户定制化显示条数 -->
<select id= "selectLatestArticleMsg" resultType= "com.epmet.dto.result.ArticleLatestResultDTO" >
SELECT
art.ID AS articleId,
art.TITLE AS articleTitle ,
artcover.IMG_URL AS articleCoverImg,
art.PUBLISHER_NAME AS publishName,
art.PUBLISH_DATE AS publishDate
FROM
ARTICLE art
LEFT JOIN (
SELECT
cover.ARTICLE_ID,
cover.IMG_URL
FROM
ARTICLE_COVER cover
WHERE
NOT EXISTS(
SELECT 1 FROM ARTICLE_COVER WHERE DEL_FLAG = '0' AND ARTICLE_ID = cover.ARTICLE_ID AND AUDIT_STATUS = 'pass' AND cover.CREATED_TIME < CREATED_TIME )
AND cover.DEL_FLAG = '0'
AND cover.AUDIT_STATUS = 'pass'
) artcover ON art.ID = artcover.ARTICLE_ID
INNER JOIN ARTICLE_PUBLISH_RANGE prange
ON art.ID = prange.ARTICLE_ID
AND
prange.DEL_FLAG = '0'
AND
prange.PUBLISH_STATUS = 'published'
AND
prange.GRID_ID = #{gridId}
WHERE
art.DEL_FLAG = '0'
AND
art.STATUS_FLAG = 'published'
ORDER BY art.PUBLISH_DATE , art.CREATED_TIME DESC
LIMIT #{num}
</select>
<!-- 根据网格Id和标签列表查找文章的相关信息列表 用处:居民端党建声音列表 参数:网格Id、标签Id列表、客户定制化显示条数 -->
<select id= "selectArticleList" resultType= "com.epmet.dto.result.ArticleListResultDTO" >
SELECT
art.ID AS articleId,
art.TITLE AS articleTitle,
art.PUBLISHER_NAME AS publishName,
art.PUBLISH_DATE AS publishDate,
art.PREVIEW_CONTENT AS articleContent,
art.TAGS AS tagName
FROM
ARTICLE art
INNER JOIN ARTICLE_PUBLISH_RANGE prange
ON art.ID = prange.ARTICLE_ID
AND
prange.DEL_FLAG = '0'
AND
prange.PUBLISH_STATUS = 'published'
AND
prange.GRID_ID = #{gridId}
<where >
art.DEL_FLAG = '0'
AND art.STATUS_FLAG = 'published'
<if test= "null != tagIdList and tagIdList.size > 0" >
<foreach collection= "tagIdList" item= "tagId" open= "AND EXISTS(" separator= " OR " close= ")" >
SELECT 1
FROM ARTICLE_TAGS
WHERE DEL_FLAG = '0'
AND ARTICLE_ID = art.ID
AND TAG_ID=#{tagId}
</foreach>
</if>
</where>
</select>
<!-- 文章详情ResultMap -->
<resultMap id= "articleDetailMap" type= "com.epmet.dto.result.ArticleDetailResultDTO" >
<id property= "articleId" column= "articleId" />
<result property= "articleTitle" column= "articleTitle" />
<result property= "publishUnitDesc" column= "publishUnitDesc" />
<result property= "publishDate" column= "publishDate" />
<result property= "tags" column= "tags" />
<collection property= "articleContentList" ofType= "com.epmet.dto.result.ArticleContentResultDTO" >
<result property= "content" column= "CONTENT" />
<result property= "contentType" column= "CONTENT_TYPE" />
</collection>
</resultMap>
<!-- 查询文章详情 用处:居民端查看文章详情 -->
<select id= "selectArticleDetail" resultMap= "articleDetailMap" >
SELECT
art.ID AS articleId,
art.TITLE AS articleTitle,
art.PUBLISHER_NAME AS publishUnitDesc,
art.PUBLISH_DATE AS publishDate,
art.TAGS AS tags,
content2.CONTENT,
content2.CONTENT_TYPE,
(SELECT COUNT(1) FROM ARTICLE_VISIT_RECORD WHERE DEL_FLAG = '0' AND ARTICLE_ID = #{articleId} AND GRID_ID = #{gridId}) AS visitRecordCount
FROM
ARTICLE art
LEFT JOIN (
SELECT
content.ARTICLE_ID,
content.CONTENT,
content.CONTENT_TYPE,
content.ORDER_NUM
FROM
ARTICLE_CONTENT content
WHERE
DEL_FLAG = '0'
AND ARTICLE_ID = #{aritcleId}
AND NOT EXISTS ( SELECT 1 FROM ARTICLE_CONTENT WHERE DEL_FLAG = '0' AND ORDER_NUM = content.ORDER_NUM AND ARTICLE_ID = #{aritcleId} AND content.CREATED_TIME <![CDATA[<]]> CREATED_TIME )
GROUP BY
ORDER_NUM
ORDER BY
ORDER_NUM ASC
) content2 ON art.ID = content2.ARTICLE_ID
INNER JOIN ARTICLE_PUBLISH_RANGE prange
ON art.ID = prange.ARTICLE_ID AND prange.DEL_FLAG = '0' AND prange.GRID_ID = #{gridId} AND prange.PUBLISH_STATUS = 'published'
WHERE
art.DEL_FLAG = '0'
AND art.ID = #{aritcleId}
ORDER BY content2.ORDER_NUM ASC
</select>
</mapper>