From 1aa5fd6beea5f4770fc41c42b6432d34e349762f Mon Sep 17 00:00:00 2001 From: wangchao Date: Wed, 3 Jun 2020 19:01:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B1=85=E6=B0=91=E7=AB=AF=E6=9F=A5=E7=9C=8B?= =?UTF-8?q?=E5=85=9A=E5=BB=BA=E5=A3=B0=E9=9F=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/tools/constant/NumConstant.java | 1 + .../epmet/dto/form/ArticlePageFormDTO.java | 43 +++++ .../dto/form/CommonArticleListFormDTO.java | 34 ++++ .../dto/result/ArticleBannerResultDTO.java | 31 ++++ .../dto/result/ArticleContentResultDTO.java | 26 +++ .../dto/result/ArticleDetailResultDTO.java | 52 ++++++ .../dto/result/ArticleLatestResultDTO.java | 41 +++++ .../dto/result/ArticleListResultDTO.java | 46 +++++ .../epmet/controller/ArticleController.java | 43 +++++ .../main/java/com/epmet/dao/ArticleDao.java | 47 +++++ .../com/epmet/service/ArticleService.java | 33 ++++ .../service/impl/ArticleServiceImpl.java | 52 ++++++ .../src/main/resources/mapper/ArticleDao.xml | 169 ++++++++++++++++++ 13 files changed, 618 insertions(+) create mode 100644 epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/ArticlePageFormDTO.java create mode 100644 epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/CommonArticleListFormDTO.java create mode 100644 epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleBannerResultDTO.java create mode 100644 epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleContentResultDTO.java create mode 100644 epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleDetailResultDTO.java create mode 100644 epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleLatestResultDTO.java create mode 100644 epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleListResultDTO.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java index 2e67bb3098..00c957c680 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java +++ b/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 THREE = 3; int FOUR = 4; + int FIVE = 5; int SIX = 6; int SEVEN = 7; int EIGHT = 8; diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/ArticlePageFormDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/ArticlePageFormDTO.java new file mode 100644 index 0000000000..938349fbcc --- /dev/null +++ b/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 tagIdList; + + /** + * 页码 + * */ + private Integer pageNo = 1; + + /** + * 每页显示量 + * */ + private Integer pageSize = 10; + +} diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/CommonArticleListFormDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/CommonArticleListFormDTO.java new file mode 100644 index 0000000000..5602cabf48 --- /dev/null +++ b/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; + +} diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleBannerResultDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleBannerResultDTO.java new file mode 100644 index 0000000000..c88dc10f22 --- /dev/null +++ b/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; +} diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleContentResultDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleContentResultDTO.java new file mode 100644 index 0000000000..9b12f89213 --- /dev/null +++ b/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; +} diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleDetailResultDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleDetailResultDTO.java new file mode 100644 index 0000000000..059772e738 --- /dev/null +++ b/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 articleContentList; +} diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleLatestResultDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleLatestResultDTO.java new file mode 100644 index 0000000000..ce5420f22e --- /dev/null +++ b/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; +} diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleListResultDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleListResultDTO.java new file mode 100644 index 0000000000..04d4f14a27 --- /dev/null +++ b/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; + +} diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/ArticleController.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/ArticleController.java index 081ecba72e..60cc6cb411 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/ArticleController.java +++ b/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.form.*; 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.service.ArticleOperateRecordService; import com.epmet.service.ArticleService; @@ -284,4 +289,42 @@ public class ArticleController { ValidatorUtils.validateEntity(formDTO); return new Result().ok(articleService.offlineList(tokenDto, formDTO)); } + /** + * @Description 根据网格Id查找置顶文章的相关信息列表 用处:居民端首页轮播 + * @param commonArticleListFormDTO :: getGridId :: getNum + * @return List + * @author wangc + * @date 2020.06.02 16:13 + **/ + @PostMapping("toparticlelist") + public Result> topArticleList(@RequestBody CommonArticleListFormDTO commonArticleListFormDTO){ + ValidatorUtils.validateEntity(commonArticleListFormDTO, CommonArticleListFormDTO.ArticleBannerInternalGroup.class); + return new Result>().ok(articleService.getTopArticleList(commonArticleListFormDTO)); + } + + /** + * @Description 根据网格Id查找最新文章的相关信息列表 用处:居民端首页最新文章列表 + * @param commonArticleListFormDTO :: getGridId :: getNum + * @return List + * @author wangc + * @date 2020.06.03 09:53 + **/ + @PostMapping("latestarticlemsg") + public Result> latestArticleMsg(@RequestBody CommonArticleListFormDTO commonArticleListFormDTO){ + ValidatorUtils.validateEntity(commonArticleListFormDTO, CommonArticleListFormDTO.ArticleBannerInternalGroup.class); + return new Result>().ok(articleService.getLatestArticleMsg(commonArticleListFormDTO)); + } + + /** + * @Description 根据网格Id和标签列表查找文章的相关信息列表 用处:居民端党建声音列表 + * @param articlePageFormDTO + * @return List + * @author wangc + * @date 2020.06.03 14:19 + **/ + @PostMapping("articlelist") + public Result> articleList(@RequestBody ArticlePageFormDTO articlePageFormDTO){ + ValidatorUtils.validateEntity(articlePageFormDTO,ArticlePageFormDTO.ArticlePageInternalGroup.class); + return new Result>().ok(articleService.getArticleList(articlePageFormDTO)); + } } \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticleDao.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticleDao.java index f65c49f289..fbb71c63ce 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticleDao.java +++ b/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.result.GovArticleContentDTO; 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 org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Set; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 文章表 @@ -90,4 +97,44 @@ public interface ArticleDao extends BaseDao { @DataFilter(tableAliases = "a", gridIdArgName = "gridList") List selectOfflineList(Set gridList); + + /** + * @Description 根据网格Id查找置顶文章的相关信息列表 用处:居民端首页轮播 + * @param gridId + * @param num + * @return List + * @author wangc + * @date 2020.06.02 16:04 + **/ + List selectTopArticleMsg (@Param("gridId")String gridId,@Param("num")Integer num); + + /** + * @Description 根据网格Id查找最新文章的相关信息列表 用处:居民端最新文章列表 + * @param gridId + * @param num + * @return List + * @author wangc + * @date 2020.06.02 16:04 + **/ + List selectLatestArticleMsg(@Param("gridId")String gridId,@Param("num")Integer num); + + /** + * @Description 根据网格Id和标签列表查找文章的相关信息列表 用处:居民端党建声音列表 + * @param gridId + * @param tagIdList + * @return List + * @author wangc + * @date 2020.06.03 14:19 + **/ + List selectArticleList(@Param("gridId") String gridId,@Param("tagIdList")List 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); } \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleService.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleService.java index c043203b9e..e925a7607c 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleService.java +++ b/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.GovArticleDetailResultDTO; 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 java.util.List; import java.util.Map; @@ -185,4 +191,31 @@ public interface ArticleService extends BaseService { * @author: jianjun liu */ Boolean publish(TokenDto tokenDto, String draftId); + + /** + * @Description 根据网格Id查找置顶文章的相关信息列表 用处:居民端首页轮播 + * @param commonArticleListFormDTO :: getGridId :: getNum + * @return List + * @author wangc + * @date 2020.06.02 16:13 + **/ + List getTopArticleList(CommonArticleListFormDTO commonArticleListFormDTO); + + /** + * @Description 根据网格Id查找最新文章的相关信息列表 用处:居民端首页最新文章列表 + * @param commonArticleListFormDTO :: getGridId :: getNum + * @return List + * @author wangc + * @date 2020.06.03 09:53 + **/ + List getLatestArticleMsg(CommonArticleListFormDTO commonArticleListFormDTO); + + /** + * @Description 根据网格Id和标签列表查找文章的相关信息列表 用处:居民端党建声音列表 + * @param articlePageFormDTO + * @return List + * @author wangc + * @date 2020.06.03 14:19 + **/ + List getArticleList(ArticlePageFormDTO articlePageFormDTO); } \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java index 4f36f362ee..dcdcf9daa5 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java +++ b/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.entity.*; 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.service.ArticleOperateRecordService; import com.epmet.service.ArticlePublishRangeService; @@ -51,6 +57,7 @@ import com.epmet.service.ArticleService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; +import com.epmet.service.ArticleVisitRecordService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -94,6 +101,10 @@ public class ArticleServiceImpl extends BaseServiceImpl page(Map params) { IPage page = baseDao.selectPage( @@ -589,4 +600,45 @@ public class ArticleServiceImpl extends BaseServiceImpl(resultList, pageInfo.getTotal()); } + /** + * @Description 根据网格Id查找置顶文章的相关信息列表 用处:居民端首页轮播 + * @param commonArticleListFormDTO :: getGridId :: getNum + * @return List + * @author wangc + * @date 2020.06.02 16:13 + **/ + @Override + public List 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 + * @author wangc + * @date 2020.06.03 09:53 + **/ + @Override + public List 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 + * @author wangc + * @date 2020.06.03 14:19 + **/ + @Override + public List getArticleList(ArticlePageFormDTO articlePageFormDTO) { + PageHelper.startPage(articlePageFormDTO.getPageNo(),articlePageFormDTO.getPageSize()); + return baseDao.selectArticleList(articlePageFormDTO.getGridId(),articlePageFormDTO.getTagIdList()); + } + } \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml index 6ec32143db..033ff015c9 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml +++ b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml @@ -98,4 +98,173 @@ AND a.STATUS_FLAG = 'offline' + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file