Browse Source

居民端查看党建声音接口

dev
wangchao 5 years ago
parent
commit
1aa5fd6bee
  1. 1
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java
  2. 43
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/ArticlePageFormDTO.java
  3. 34
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/CommonArticleListFormDTO.java
  4. 31
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleBannerResultDTO.java
  5. 26
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleContentResultDTO.java
  6. 52
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleDetailResultDTO.java
  7. 41
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleLatestResultDTO.java
  8. 46
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleListResultDTO.java
  9. 43
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/ArticleController.java
  10. 47
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticleDao.java
  11. 33
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleService.java
  12. 52
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java
  13. 169
      epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml

1
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java

@ -16,6 +16,7 @@ public interface NumConstant {
int TWO = 2; int TWO = 2;
int THREE = 3; int THREE = 3;
int FOUR = 4; int FOUR = 4;
int FIVE = 5;
int SIX = 6; int SIX = 6;
int SEVEN = 7; int SEVEN = 7;
int EIGHT = 8; int EIGHT = 8;

43
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/ArticlePageFormDTO.java

@ -0,0 +1,43 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
/**
* @Description
* @ClassName ArticlePageFormDTO
* @Auth wangc
* @Date 2020-06-03 14:21
*/
@Data
public class ArticlePageFormDTO implements Serializable {
private static final long serialVersionUID = -6201259689082896334L;
public interface ArticlePageInternalGroup{}
/**
* 网格Id
* */
@NotBlank(message = "网格Id不能为空" , groups = {ArticlePageInternalGroup.class})
private String gridId;
/**
* 标签Id集合
* */
private List<String> tagIdList;
/**
* 页码
* */
private Integer pageNo = 1;
/**
* 每页显示量
* */
private Integer pageSize = 10;
}

34
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/CommonArticleListFormDTO.java

@ -0,0 +1,34 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 居民端首页轮播查询接口DTO
* @ClassName ArticleBannerFormDTO
* @Auth wangc
* @Date 2020-06-02 11:20
*/
@Data
public class CommonArticleListFormDTO implements Serializable {
private static final long serialVersionUID = 5996259506950697451L;
/**
* 内部错误分组
* */
public interface ArticleBannerInternalGroup{}
/**
* 网格Id
* */
@NotBlank(message = "网格Id不能为空" , groups = {ArticleBannerInternalGroup.class})
private String gridId;
/**
* 客户定制化条数(高级配置里的参数)
* */
private Integer num;
}

31
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleBannerResultDTO.java

@ -0,0 +1,31 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @ClassName ArticleBannerResultDTO
* @Auth wangc
* @Date 2020-06-02 13:55
*/
@Data
public class ArticleBannerResultDTO implements Serializable {
private static final long serialVersionUID = 7764443348626371305L;
/**
* 文章Id
* */
private String articleId;
/**
* 封面图url
* */
private String coverImg;
/**
* 标题
* */
private String title;
}

26
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleContentResultDTO.java

@ -0,0 +1,26 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @ClassName ArticleContentResultDTO
* @Auth wangc
* @Date 2020-06-03 16:41
*/
@Data
public class ArticleContentResultDTO implements Serializable {
private static final long serialVersionUID = 2853197212163051558L;
/**
* 内容类型图片img文字text
* */
private String contentType;
/**
* 内容
* */
private String content;
}

52
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleDetailResultDTO.java

@ -0,0 +1,52 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description
* @ClassName ArticleDetailResultDTO
* @Auth wangc
* @Date 2020-06-03 16:36
*/
@Data
public class ArticleDetailResultDTO implements Serializable {
private static final long serialVersionUID = 4659147595194692686L;
/**
* 文章Id
* */
private String articleId;
/**
* 文章标题
* */
private String articleTitle;
/**
* 文章发布单位名称
* */
private String publishUnitDesc;
/**
* 发布时间
* */
private String publishDate;
/**
* 文章当前网格阅读量article_visit_record统计数
* */
private Integer visitRecordCount;
/**
* 标签名称集合(竖线分隔)
* */
private String tags;
/**
* 文章内容
* */
private List<ArticleContentResultDTO> articleContentList;
}

41
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleLatestResultDTO.java

@ -0,0 +1,41 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @ClassName ArticleLatestResultDTO
* @Auth wangc
* @Date 2020-06-02 17:11
*/
@Data
public class ArticleLatestResultDTO implements Serializable {
private static final long serialVersionUID = 6953266228209247094L;
/**
* 文章Id
* */
private String articleId;
/**
* 文章封面图片url
* */
private String articleCoverImg;
/**
* 文章标题
* */
private String articleTitle;
/**
* 发布单位名称
* */
private String publishName;
/**
* 发布时间天级别 时间戳
* */
private String publishDate;
}

46
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleListResultDTO.java

@ -0,0 +1,46 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @ClassName ArticleListResultDTO
* @Auth wangc
* @Date 2020-06-03 10:59
*/
@Data
public class ArticleListResultDTO implements Serializable {
private static final long serialVersionUID = 293527138997974861L;
/**
* 文章Id
* */
private String articleId;
/**
* 文章标题
* */
private String articleTitle;
/**
* 发布单位名称
* */
private String publishName;
/**
* 发布时间(天级别)
* */
private String publishDate;
/**
* 文章发布内容(只截取前50字)
* */
private String articleContent;
/**
* 标签名称集合(竖线分隔)
* */
private String tagName;
}

43
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/ArticleController.java

@ -32,6 +32,11 @@ import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.ArticleDTO; import com.epmet.dto.ArticleDTO;
import com.epmet.dto.form.*; import com.epmet.dto.form.*;
import com.epmet.dto.result.*; import com.epmet.dto.result.*;
import com.epmet.dto.form.ArticlePageFormDTO;
import com.epmet.dto.form.CommonArticleListFormDTO;
import com.epmet.dto.result.ArticleBannerResultDTO;
import com.epmet.dto.result.ArticleLatestResultDTO;
import com.epmet.dto.result.ArticleListResultDTO;
import com.epmet.excel.ArticleExcel; import com.epmet.excel.ArticleExcel;
import com.epmet.service.ArticleOperateRecordService; import com.epmet.service.ArticleOperateRecordService;
import com.epmet.service.ArticleService; import com.epmet.service.ArticleService;
@ -284,4 +289,42 @@ public class ArticleController {
ValidatorUtils.validateEntity(formDTO); ValidatorUtils.validateEntity(formDTO);
return new Result<PageData>().ok(articleService.offlineList(tokenDto, formDTO)); return new Result<PageData>().ok(articleService.offlineList(tokenDto, formDTO));
} }
/**
* @Description 根据网格Id查找置顶文章的相关信息列表 用处:居民端首页轮播
* @param commonArticleListFormDTO :: getGridId :: getNum
* @return List<ArticleBannerResultDTO>
* @author wangc
* @date 2020.06.02 16:13
**/
@PostMapping("toparticlelist")
public Result<List<ArticleBannerResultDTO>> topArticleList(@RequestBody CommonArticleListFormDTO commonArticleListFormDTO){
ValidatorUtils.validateEntity(commonArticleListFormDTO, CommonArticleListFormDTO.ArticleBannerInternalGroup.class);
return new Result<List<ArticleBannerResultDTO>>().ok(articleService.getTopArticleList(commonArticleListFormDTO));
}
/**
* @Description 根据网格Id查找最新文章的相关信息列表 用处:居民端首页最新文章列表
* @param commonArticleListFormDTO :: getGridId :: getNum
* @return List<ArticleLatestResultDTO>
* @author wangc
* @date 2020.06.03 09:53
**/
@PostMapping("latestarticlemsg")
public Result<List<ArticleLatestResultDTO>> latestArticleMsg(@RequestBody CommonArticleListFormDTO commonArticleListFormDTO){
ValidatorUtils.validateEntity(commonArticleListFormDTO, CommonArticleListFormDTO.ArticleBannerInternalGroup.class);
return new Result<List<ArticleLatestResultDTO>>().ok(articleService.getLatestArticleMsg(commonArticleListFormDTO));
}
/**
* @Description 根据网格Id和标签列表查找文章的相关信息列表 用处:居民端党建声音列表
* @param articlePageFormDTO
* @return List<ArticleListResultDTO>
* @author wangc
* @date 2020.06.03 14:19
**/
@PostMapping("articlelist")
public Result<List<ArticleListResultDTO>> articleList(@RequestBody ArticlePageFormDTO articlePageFormDTO){
ValidatorUtils.validateEntity(articlePageFormDTO,ArticlePageFormDTO.ArticlePageInternalGroup.class);
return new Result<List<ArticleListResultDTO>>().ok(articleService.getArticleList(articlePageFormDTO));
}
} }

47
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticleDao.java

@ -20,12 +20,19 @@ import com.epmet.dto.result.*;
import com.epmet.dto.form.ResiTagListFormDTO; import com.epmet.dto.form.ResiTagListFormDTO;
import com.epmet.dto.result.GovArticleContentDTO; import com.epmet.dto.result.GovArticleContentDTO;
import com.epmet.dto.result.GovArticleDetailResultDTO; import com.epmet.dto.result.GovArticleDetailResultDTO;
import com.epmet.dto.result.ArticleBannerResultDTO;
import com.epmet.dto.result.ArticleDetailResultDTO;
import com.epmet.dto.result.ArticleLatestResultDTO;
import com.epmet.dto.result.ArticleListResultDTO;
import com.epmet.entity.ArticleEntity; import com.epmet.entity.ArticleEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 文章表 * 文章表
@ -90,4 +97,44 @@ public interface ArticleDao extends BaseDao<ArticleEntity> {
@DataFilter(tableAliases = "a", gridIdArgName = "gridList") @DataFilter(tableAliases = "a", gridIdArgName = "gridList")
List<OfflineListResultDTO> selectOfflineList(Set<String> gridList); List<OfflineListResultDTO> selectOfflineList(Set<String> gridList);
/**
* @Description 根据网格Id查找置顶文章的相关信息列表 用处:居民端首页轮播
* @param gridId
* @param num
* @return List<ArticleBannerResultDTO>
* @author wangc
* @date 2020.06.02 16:04
**/
List<ArticleBannerResultDTO> selectTopArticleMsg (@Param("gridId")String gridId,@Param("num")Integer num);
/**
* @Description 根据网格Id查找最新文章的相关信息列表 用处:居民端最新文章列表
* @param gridId
* @param num
* @return List<ArticleBannerResultDTO>
* @author wangc
* @date 2020.06.02 16:04
**/
List<ArticleLatestResultDTO> selectLatestArticleMsg(@Param("gridId")String gridId,@Param("num")Integer num);
/**
* @Description 根据网格Id和标签列表查找文章的相关信息列表 用处:居民端党建声音列表
* @param gridId
* @param tagIdList
* @return List<ArticleListResultDTO>
* @author wangc
* @date 2020.06.03 14:19
**/
List<ArticleListResultDTO> selectArticleList(@Param("gridId") String gridId,@Param("tagIdList")List<String> tagIdList);
/**
* @Description 查询文章详情
* @param gridId
* @param articleId
* @return ArticleDetailResultDTO
* @author wangc
* @date 2020.06.03 18:28
**/
ArticleDetailResultDTO selectArticleDetail(@Param("gridId")String gridId,@Param("articleId")String articleId);
} }

33
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleService.java

@ -25,8 +25,14 @@ import com.epmet.dto.form.*;
import com.epmet.dto.result.ArticleGridResultDTO; import com.epmet.dto.result.ArticleGridResultDTO;
import com.epmet.dto.result.GovArticleDetailResultDTO; import com.epmet.dto.result.GovArticleDetailResultDTO;
import com.epmet.dto.result.PublishAgencyListResultDTO; import com.epmet.dto.result.PublishAgencyListResultDTO;
import com.epmet.dto.form.ArticlePageFormDTO;
import com.epmet.dto.form.CommonArticleListFormDTO;
import com.epmet.dto.result.ArticleBannerResultDTO;
import com.epmet.dto.result.ArticleLatestResultDTO;
import com.epmet.dto.result.ArticleListResultDTO;
import com.epmet.entity.ArticleEntity; import com.epmet.entity.ArticleEntity;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -185,4 +191,31 @@ public interface ArticleService extends BaseService<ArticleEntity> {
* @author: jianjun liu * @author: jianjun liu
*/ */
Boolean publish(TokenDto tokenDto, String draftId); Boolean publish(TokenDto tokenDto, String draftId);
/**
* @Description 根据网格Id查找置顶文章的相关信息列表 用处:居民端首页轮播
* @param commonArticleListFormDTO :: getGridId :: getNum
* @return List<ArticleBannerResultDTO>
* @author wangc
* @date 2020.06.02 16:13
**/
List<ArticleBannerResultDTO> getTopArticleList(CommonArticleListFormDTO commonArticleListFormDTO);
/**
* @Description 根据网格Id查找最新文章的相关信息列表 用处:居民端首页最新文章列表
* @param commonArticleListFormDTO :: getGridId :: getNum
* @return List<ArticleLatestResultDTO>
* @author wangc
* @date 2020.06.03 09:53
**/
List<ArticleLatestResultDTO> getLatestArticleMsg(CommonArticleListFormDTO commonArticleListFormDTO);
/**
* @Description 根据网格Id和标签列表查找文章的相关信息列表 用处:居民端党建声音列表
* @param articlePageFormDTO
* @return List<ArticleListResultDTO>
* @author wangc
* @date 2020.06.03 14:19
**/
List<ArticleListResultDTO> getArticleList(ArticlePageFormDTO articlePageFormDTO);
} }

52
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java

@ -44,6 +44,12 @@ import com.epmet.dto.form.*;
import com.epmet.dto.result.*; import com.epmet.dto.result.*;
import com.epmet.entity.*; import com.epmet.entity.*;
import com.epmet.feign.EpmetUserSelfFeignClient; import com.epmet.feign.EpmetUserSelfFeignClient;
import com.epmet.dto.form.ArticlePageFormDTO;
import com.epmet.dto.form.CommonArticleListFormDTO;
import com.epmet.dto.result.ArticleBannerResultDTO;
import com.epmet.dto.result.ArticleLatestResultDTO;
import com.epmet.dto.result.ArticleListResultDTO;
import com.epmet.entity.ArticleEntity;
import com.epmet.redis.ArticleRedis; import com.epmet.redis.ArticleRedis;
import com.epmet.service.ArticleOperateRecordService; import com.epmet.service.ArticleOperateRecordService;
import com.epmet.service.ArticlePublishRangeService; import com.epmet.service.ArticlePublishRangeService;
@ -51,6 +57,7 @@ import com.epmet.service.ArticleService;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import com.epmet.service.ArticleVisitRecordService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -94,6 +101,10 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
private static final String AGENCY = "agency"; private static final String AGENCY = "agency";
private static final String GRID = "grid"; private static final String GRID = "grid";
@Autowired
private ArticleVisitRecordService articleVisitRecordService;
@Override @Override
public PageData<ArticleDTO> page(Map<String, Object> params) { public PageData<ArticleDTO> page(Map<String, Object> params) {
IPage<ArticleEntity> page = baseDao.selectPage( IPage<ArticleEntity> page = baseDao.selectPage(
@ -589,4 +600,45 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
return new PageData<>(resultList, pageInfo.getTotal()); return new PageData<>(resultList, pageInfo.getTotal());
} }
/**
* @Description 根据网格Id查找置顶文章的相关信息列表 用处:居民端首页轮播
* @param commonArticleListFormDTO :: getGridId :: getNum
* @return List<ArticleBannerResultDTO>
* @author wangc
* @date 2020.06.02 16:13
**/
@Override
public List<ArticleBannerResultDTO> getTopArticleList(CommonArticleListFormDTO commonArticleListFormDTO) {
return baseDao.selectTopArticleMsg(commonArticleListFormDTO.getGridId(),
null == commonArticleListFormDTO.getNum() || commonArticleListFormDTO.getNum() <= NumConstant.ZERO ?
NumConstant.THREE : commonArticleListFormDTO.getNum());
}
/**
* @Description 根据网格Id查找最新文章的相关信息列表 用处:居民端首页最新文章列表
* @param commonArticleListFormDTO :: getGridId :: getNum
* @return List<ArticleLatestResultDTO>
* @author wangc
* @date 2020.06.03 09:53
**/
@Override
public List<ArticleLatestResultDTO> getLatestArticleMsg(CommonArticleListFormDTO commonArticleListFormDTO) {
return baseDao.selectLatestArticleMsg(commonArticleListFormDTO.getGridId(),
null == commonArticleListFormDTO.getNum() || commonArticleListFormDTO.getNum() <= NumConstant.ZERO ?
NumConstant.FIVE : commonArticleListFormDTO.getNum());
}
/**
* @Description 根据网格Id和标签列表查找文章的相关信息列表 用处:居民端党建声音列表
* @param articlePageFormDTO
* @return List<ArticleListResultDTO>
* @author wangc
* @date 2020.06.03 14:19
**/
@Override
public List<ArticleListResultDTO> getArticleList(ArticlePageFormDTO articlePageFormDTO) {
PageHelper.startPage(articlePageFormDTO.getPageNo(),articlePageFormDTO.getPageSize());
return baseDao.selectArticleList(articlePageFormDTO.getGridId(),articlePageFormDTO.getTagIdList());
}
} }

169
epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml

@ -98,4 +98,173 @@
AND a.STATUS_FLAG = 'offline' AND a.STATUS_FLAG = 'offline'
</select> </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> </mapper>
Loading…
Cancel
Save