Browse Source

resihome、resivoice服务调用govvoice

dev_shibei_match
wangchao 5 years ago
parent
commit
095c4de6f2
  1. 48
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/feign/GovVoiceFeignClient.java
  2. 25
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/feign/fallback/GovVoiceFeignClientFallBack.java
  3. 2
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/ArticlePageFormDTO.java
  4. 37
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/ResiArticleDetailFormDTO.java
  5. 7
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleDetailResultDTO.java
  6. 27
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/ArticleController.java
  7. 2
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticleDao.java
  8. 18
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleService.java
  9. 38
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java
  10. 12
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleVisitRecordServiceImpl.java
  11. 52
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/utils/ModuleConstant.java
  12. 5
      epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml
  13. 34
      epmet-module/resi-home/resi-home-client/src/main/java/com/epmet/dto/form/CommonArticleListFormDTO.java
  14. 31
      epmet-module/resi-home/resi-home-client/src/main/java/com/epmet/dto/result/ArticleBannerResultDTO.java
  15. 41
      epmet-module/resi-home/resi-home-client/src/main/java/com/epmet/dto/result/ArticleLatestResultDTO.java
  16. 6
      epmet-module/resi-home/resi-home-server/pom.xml
  17. 43
      epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/controller/VoiceController.java
  18. 43
      epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/dto/form/ArticlePageFormDTO.java
  19. 34
      epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/dto/form/CommonArticleListFormDTO.java
  20. 37
      epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/dto/form/ResiArticleDetailFormDTO.java
  21. 26
      epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/dto/result/ArticleContentResultDTO.java
  22. 55
      epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/dto/result/ArticleDetailResultDTO.java
  23. 46
      epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/dto/result/ArticleListResultDTO.java
  24. 35
      epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/controller/ArticleController.java

48
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/feign/GovVoiceFeignClient.java

@ -1,11 +1,11 @@
package com.epmet.dto.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.feign.fallback.GovVoiceFeignClientFallBack;
import com.epmet.dto.form.ResiTagListFormDTO;
import com.epmet.dto.form.TagCascadeListFormDTO;
import com.epmet.dto.result.TagInfoResultDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -37,5 +37,47 @@ public interface GovVoiceFeignClient {
@PostMapping("/gov/voice/tag/tagcascadelist")
Result<List<TagInfoResultDTO>> tagCascadeList(@RequestBody TagCascadeListFormDTO formDto);
/**
* @Description 根据网格Id查找置顶文章的相关信息列表 用处:居民端首页轮播
* @param commonArticleListFormDTO :: getGridId :: getNum
* @return List<ArticleBannerResultDTO>
* @author wangc
* @date 2020.06.02 16:13
**/
@PostMapping("/gov/voice/article/resitoparticlelist")
Result<List<ArticleBannerResultDTO>> resiTopArticleList(@RequestBody CommonArticleListFormDTO commonArticleListFormDTO);
/**
* @Description 根据网格Id查找最新文章的相关信息列表 用处:居民端首页最新文章列表
* @param commonArticleListFormDTO :: getGridId :: getNum
* @return List<ArticleLatestResultDTO>
* @author wangc
* @date 2020.06.03 09:53
**/
@PostMapping("/gov/voice/article/resilatestarticlelist")
Result<List<ArticleLatestResultDTO>> resiLatestArticleList(@RequestBody CommonArticleListFormDTO commonArticleListFormDTO);
/**
* @Description 根据网格Id和标签列表查找文章的相关信息列表 用处:居民端党建声音列表
* @param articlePageFormDTO
* @return List<ArticleListResultDTO>
* @author wangc
* @date 2020.06.03 14:19
**/
@PostMapping("/gov/voice/article/resiarticlelist")
Result<List<ArticleListResultDTO>> resiArticleList(@RequestBody ArticlePageFormDTO articlePageFormDTO);
/**
* @Description 根绝文章Id查询出文章的内容封面等相关信息如果居民端传入的网格Id不在该文章的发布范围内则返回NULL
* @param articleDetailFormDTO
* @return ArticleDetailResultDTO
* @author wangc
* @date 2020.06.03 18:28
**/
@PostMapping("/gov/voice/article/resiarticledetail")
Result<ArticleDetailResultDTO> resiArticleDetail(@RequestBody ResiArticleDetailFormDTO articleDetailFormDTO);
}

25
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/feign/fallback/GovVoiceFeignClientFallBack.java

@ -4,9 +4,8 @@ import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.feign.GovVoiceFeignClient;
import com.epmet.dto.form.ResiTagListFormDTO;
import com.epmet.dto.form.TagCascadeListFormDTO;
import com.epmet.dto.result.TagInfoResultDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import org.springframework.stereotype.Component;
import java.util.List;
@ -26,4 +25,24 @@ public class GovVoiceFeignClientFallBack implements GovVoiceFeignClient {
public Result<List<TagInfoResultDTO>> tagCascadeList(TagCascadeListFormDTO formDto) {
return ModuleUtils.feignConError(ServiceConstant.GOV_VOICE_SERVER, "tagCascadeList", formDto);
}
@Override
public Result<List<ArticleBannerResultDTO>> resiTopArticleList(CommonArticleListFormDTO commonArticleListFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_VOICE_SERVER, "resiTopArticleList", commonArticleListFormDTO);
}
@Override
public Result<List<ArticleLatestResultDTO>> resiLatestArticleList(CommonArticleListFormDTO commonArticleListFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_VOICE_SERVER, "resiLatestArticleList", commonArticleListFormDTO);
}
@Override
public Result<List<ArticleListResultDTO>> resiArticleList(ArticlePageFormDTO articlePageFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_VOICE_SERVER, "resiArticleList", articlePageFormDTO);
}
@Override
public Result<ArticleDetailResultDTO> resiArticleDetail(ResiArticleDetailFormDTO articleDetailFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_VOICE_SERVER, "resiArticleDetail", articleDetailFormDTO);
}
}

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

@ -7,7 +7,7 @@ import java.io.Serializable;
import java.util.List;
/**
* @Description
* @Description 居民端查看文章列表参数DTO
* @ClassName ArticlePageFormDTO
* @Auth wangc
* @Date 2020-06-03 14:21

37
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/ResiArticleDetailFormDTO.java

@ -0,0 +1,37 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 居民端查看文章详情传参DTO
* @ClassName ResiArticleDetailFormDTO
* @Auth wangc
* @Date 2020-06-04 09:20
*/
@Data
public class ResiArticleDetailFormDTO implements Serializable {
private static final long serialVersionUID = -7197489284630455909L;
public interface ResiArticleDetailInternalGroup{}
/**
* 网格Id
* */
@NotBlank(message = "网格Id不能为空",groups = ResiArticleDetailInternalGroup.class)
private String gridId;
/**
* 文章Id
* */
@NotBlank(message = "文章Id不能为空",groups = ResiArticleDetailInternalGroup.class)
private String articleId;
/**
* 用户Id
* */
@NotBlank(message = "用户Id不能为空",groups = ResiArticleDetailInternalGroup.class)
private String userId;
}

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

@ -1,5 +1,6 @@
package com.epmet.dto.result;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import java.io.Serializable;
@ -11,6 +12,7 @@ import java.util.List;
* @Auth wangc
* @Date 2020-06-03 16:36
*/
@JsonIgnoreProperties(ignoreUnknown = true)
@Data
public class ArticleDetailResultDTO implements Serializable {
private static final long serialVersionUID = 4659147595194692686L;
@ -49,4 +51,9 @@ public class ArticleDetailResultDTO implements Serializable {
* 文章内容
* */
private List<ArticleContentResultDTO> articleContentList;
/**
* 客户Id
* */
private String customerId;
}

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

@ -296,8 +296,8 @@ public class ArticleController {
* @author wangc
* @date 2020.06.02 16:13
**/
@PostMapping("toparticlelist")
public Result<List<ArticleBannerResultDTO>> topArticleList(@RequestBody CommonArticleListFormDTO commonArticleListFormDTO){
@PostMapping("resitoparticlelist")
public Result<List<ArticleBannerResultDTO>> resiTopArticleList(@RequestBody CommonArticleListFormDTO commonArticleListFormDTO){
ValidatorUtils.validateEntity(commonArticleListFormDTO, CommonArticleListFormDTO.ArticleBannerInternalGroup.class);
return new Result<List<ArticleBannerResultDTO>>().ok(articleService.getTopArticleList(commonArticleListFormDTO));
}
@ -309,10 +309,10 @@ public class ArticleController {
* @author wangc
* @date 2020.06.03 09:53
**/
@PostMapping("latestarticlemsg")
public Result<List<ArticleLatestResultDTO>> latestArticleMsg(@RequestBody CommonArticleListFormDTO commonArticleListFormDTO){
@PostMapping("resilatestarticlelist")
public Result<List<ArticleLatestResultDTO>> resiLatestArticleList(@RequestBody CommonArticleListFormDTO commonArticleListFormDTO){
ValidatorUtils.validateEntity(commonArticleListFormDTO, CommonArticleListFormDTO.ArticleBannerInternalGroup.class);
return new Result<List<ArticleLatestResultDTO>>().ok(articleService.getLatestArticleMsg(commonArticleListFormDTO));
return new Result<List<ArticleLatestResultDTO>>().ok(articleService.getLatestArticleList(commonArticleListFormDTO));
}
/**
@ -322,9 +322,22 @@ public class ArticleController {
* @author wangc
* @date 2020.06.03 14:19
**/
@PostMapping("articlelist")
public Result<List<ArticleListResultDTO>> articleList(@RequestBody ArticlePageFormDTO articlePageFormDTO){
@PostMapping("resiarticlelist")
public Result<List<ArticleListResultDTO>> resiArticleList(@RequestBody ArticlePageFormDTO articlePageFormDTO){
ValidatorUtils.validateEntity(articlePageFormDTO,ArticlePageFormDTO.ArticlePageInternalGroup.class);
return new Result<List<ArticleListResultDTO>>().ok(articleService.getArticleList(articlePageFormDTO));
}
/**
* @Description 根绝文章Id查询出文章的内容封面等相关信息如果居民端传入的网格Id不在该文章的发布范围内则返回NULL
* @param articleDetailFormDTO
* @return ArticleDetailResultDTO
* @author wangc
* @date 2020.06.03 18:28
**/
@PostMapping("resiarticledetail")
public Result<ArticleDetailResultDTO> resiArticleDetail(@RequestBody ResiArticleDetailFormDTO articleDetailFormDTO){
ValidatorUtils.validateEntity(articleDetailFormDTO,ResiArticleDetailFormDTO.ResiArticleDetailInternalGroup.class);
return new Result<ArticleDetailResultDTO>().ok(articleService.getArticleDetail(articleDetailFormDTO));
}
}

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

@ -129,7 +129,7 @@ public interface ArticleDao extends BaseDao<ArticleEntity> {
List<ArticleListResultDTO> selectArticleList(@Param("gridId") String gridId,@Param("tagIdList")List<String> tagIdList);
/**
* @Description 查询文章详情
* @Description 根绝文章Id查询出文章的内容封面等相关信息如果居民端传入的网格Id不在该文章的发布范围内则返回NULL
* @param gridId
* @param articleId
* @return ArticleDetailResultDTO

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

@ -22,14 +22,9 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.ArticleDTO;
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.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.entity.ArticleEntity;
@ -208,7 +203,7 @@ public interface ArticleService extends BaseService<ArticleEntity> {
* @author wangc
* @date 2020.06.03 09:53
**/
List<ArticleLatestResultDTO> getLatestArticleMsg(CommonArticleListFormDTO commonArticleListFormDTO);
List<ArticleLatestResultDTO> getLatestArticleList(CommonArticleListFormDTO commonArticleListFormDTO);
/**
* @Description 根据网格Id和标签列表查找文章的相关信息列表 用处:居民端党建声音列表
@ -218,4 +213,13 @@ public interface ArticleService extends BaseService<ArticleEntity> {
* @date 2020.06.03 14:19
**/
List<ArticleListResultDTO> getArticleList(ArticlePageFormDTO articlePageFormDTO);
/**
* @Description 根绝文章Id查询出文章的内容封面等相关信息如果居民端传入的网格Id不在该文章的发布范围内则返回NULL
* @param articleDetailFormDTO
* @return ArticleDetailResultDTO
* @author wangc
* @date 2020.06.03 18:28
**/
ArticleDetailResultDTO getArticleDetail(ResiArticleDetailFormDTO articleDetailFormDTO);
}

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

@ -37,6 +37,7 @@ import com.epmet.constant.DraftConstant;
import com.epmet.constant.RoleKeyConstants;
import com.epmet.dao.*;
import com.epmet.dto.ArticleDTO;
import com.epmet.dto.ArticleVisitRecordDTO;
import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.CustomerStaffDTO;
import com.epmet.dto.feign.GovOrgSelfFeignClient;
@ -54,6 +55,7 @@ import com.epmet.redis.ArticleRedis;
import com.epmet.service.ArticleOperateRecordService;
import com.epmet.service.ArticlePublishRangeService;
import com.epmet.service.ArticleService;
import com.epmet.utils.ModuleConstant;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
@ -622,7 +624,7 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
* @date 2020.06.03 09:53
**/
@Override
public List<ArticleLatestResultDTO> getLatestArticleMsg(CommonArticleListFormDTO commonArticleListFormDTO) {
public List<ArticleLatestResultDTO> getLatestArticleList(CommonArticleListFormDTO commonArticleListFormDTO) {
return baseDao.selectLatestArticleMsg(commonArticleListFormDTO.getGridId(),
null == commonArticleListFormDTO.getNum() || commonArticleListFormDTO.getNum() <= NumConstant.ZERO ?
NumConstant.FIVE : commonArticleListFormDTO.getNum());
@ -641,4 +643,38 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
return baseDao.selectArticleList(articlePageFormDTO.getGridId(),articlePageFormDTO.getTagIdList());
}
/**
* @Description 根绝文章Id查询出文章的内容封面等相关信息如果居民端传入的网格Id不在该文章的发布范围内则返回NULL
* @param articleDetailFormDTO
* @return ArticleDetailResultDTO
* @author wangc
* @date 2020.06.03 18:28
**/
@Override
public ArticleDetailResultDTO getArticleDetail(ResiArticleDetailFormDTO articleDetailFormDTO) {
//1.查询文章详情信息
ArticleDetailResultDTO articleInfo = baseDao.selectArticleDetail(articleDetailFormDTO.getGridId(),articleDetailFormDTO.getArticleId());
if(null == articleInfo)
throw new RenException(String.format(ModuleConstant.SPECIFIED_ARTICLE_NOT_FOUND_EXCEPTION_TEMPLATE,articleDetailFormDTO.getArticleId(),articleDetailFormDTO.getGridId()));
//2.判断当前用户当前文章当前网格是否存在访问记录
Map<String,Object> params = new HashMap<>();
params.put(ModuleConstant.FIELD_GRID_ID_CAMEL,articleDetailFormDTO.getGridId());
params.put(ModuleConstant.FIELD_USER_ID_CAMEL,articleDetailFormDTO.getUserId());
params.put(ModuleConstant.FIELD_ARTICLE_ID_CAMEL,articleDetailFormDTO.getArticleId());
params.put(ModuleConstant.FIELD_CUSTOMER_ID_CAMEL,articleInfo.getCustomerId());
params.put(FieldConstant.DEL_FLAG_HUMP,NumConstant.ZERO_STR);
List<ArticleVisitRecordDTO> existedVisitRecord = articleVisitRecordService.list(params);
//3.没有则插入
if(null == existedVisitRecord || existedVisitRecord.size() < NumConstant.ONE){
ArticleVisitRecordEntity recordToInsert = new ArticleVisitRecordEntity();
recordToInsert.setArticleId(articleDetailFormDTO.getArticleId());
recordToInsert.setGridId(articleDetailFormDTO.getGridId());
recordToInsert.setUserId(articleDetailFormDTO.getUserId());
recordToInsert.setCustomerId(articleInfo.getCustomerId());
articleVisitRecordService.insert(recordToInsert);
}
return articleInfo;
}
}

12
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleVisitRecordServiceImpl.java

@ -28,11 +28,13 @@ import com.epmet.dto.ArticleVisitRecordDTO;
import com.epmet.entity.ArticleVisitRecordEntity;
import com.epmet.redis.ArticleVisitRecordRedis;
import com.epmet.service.ArticleVisitRecordService;
import com.epmet.utils.ModuleConstant;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@ -67,10 +69,16 @@ public class ArticleVisitRecordServiceImpl extends BaseServiceImpl<ArticleVisitR
private QueryWrapper<ArticleVisitRecordEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
String gridId = (String)params.get(ModuleConstant.FIELD_GRID_ID_CAMEL);
String userId = (String)params.get(ModuleConstant.FIELD_USER_ID_CAMEL);
String articleId = (String)params.get(ModuleConstant.FIELD_ARTICLE_ID_CAMEL);
String delFlag = (String)params.get(FieldConstant.DEL_FLAG_HUMP);
QueryWrapper<ArticleVisitRecordEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
wrapper.eq(StringUtils.isNotBlank(gridId),ModuleConstant.FIELD_GRID_ID,gridId);
wrapper.eq(StringUtils.isNotBlank(userId),ModuleConstant.FIELD_USER_ID,userId);
wrapper.eq(StringUtils.isNotBlank(articleId), ModuleConstant.FIELD_ARTICLE_ID,articleId);
wrapper.eq(StringUtils.isNotBlank(delFlag),FieldConstant.DEL_FLAG,delFlag);
return wrapper;
}

52
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/utils/ModuleConstant.java

@ -0,0 +1,52 @@
package com.epmet.utils;
/**
* 常量类
* */
public interface ModuleConstant {
/**
* 数据库列名 - 网格ID
* */
String FIELD_GRID_ID = "GRID_ID";
/**
* 实体属性名 - 网格ID
* */
String FIELD_GRID_ID_CAMEL = "gridId";
/**
* 数据库列名 - 客户ID
* */
String FIELD_CUSTOMER_ID = "CUSTOMER_ID";
/**
* 实体属性名 - 客户ID
* */
String FIELD_CUSTOMER_ID_CAMEL = "customerId";
/**
* 数据库列名 - 用户ID
* */
String FIELD_USER_ID = "USER_ID";
/**
* 实体属性名 - 用户ID
* */
String FIELD_USER_ID_CAMEL = "userId";
/**
* 数据库列名 - 文章ID
* */
String FIELD_ARTICLE_ID = "ARTICLE_ID";
/**
* 实体属性名 - 文章ID
* */
String FIELD_ARTICLE_ID_CAMEL = "articleId";
/**
* 文章未找到异常模板
* */
String SPECIFIED_ARTICLE_NOT_FOUND_EXCEPTION_TEMPLATE = "未找到指定文章,文章Id:【%s】,发布网格Id:【%s】,可能原因:没有该文章或者请求网格不在该文章发布范围内。";
}

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

@ -159,7 +159,7 @@
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)
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'
@ -238,7 +238,8 @@
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
(SELECT COUNT(1) FROM ARTICLE_VISIT_RECORD WHERE DEL_FLAG = '0' AND ARTICLE_ID = #{articleId} AND GRID_ID = #{gridId}) AS visitRecordCount,
art.CUSTOMER_ID
FROM
ARTICLE art
LEFT JOIN (

34
epmet-module/resi-home/resi-home-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/resi-home/resi-home-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;
}

41
epmet-module/resi-home/resi-home-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;
}

6
epmet-module/resi-home/resi-home-server/pom.xml

@ -62,6 +62,12 @@
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>gov-voice-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>

43
epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/controller/VoiceController.java

@ -1,11 +1,50 @@
package com.epmet.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.feign.GovVoiceFeignClient;
import com.epmet.dto.form.CommonArticleListFormDTO;
import com.epmet.dto.result.ArticleBannerResultDTO;
import com.epmet.dto.result.ArticleLatestResultDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("voice")
public class VoiceController {
//最新党建声音列表
//首页轮播图列表
@Autowired
private GovVoiceFeignClient govVoiceFeignClient;
/**
* @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 govVoiceFeignClient.resiTopArticleList(commonArticleListFormDTO);
}
/**
* @Description 根据网格Id查找最新文章的相关信息列表 用处:居民端首页最新文章列表
* @param commonArticleListFormDTO :: getGridId :: getNum
* @return List<ArticleLatestResultDTO>
* @author wangc
* @date 2020.06.03 09:53
**/
@PostMapping("latestarticlelist")
public Result<List<ArticleLatestResultDTO>> latestArticleList(@RequestBody CommonArticleListFormDTO commonArticleListFormDTO){
ValidatorUtils.validateEntity(commonArticleListFormDTO, CommonArticleListFormDTO.ArticleBannerInternalGroup.class);
return govVoiceFeignClient.resiLatestArticleList(commonArticleListFormDTO);
}
}

43
epmet-module/resi-voice/resi-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 居民端查看文章列表参数DTO
* @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/resi-voice/resi-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;
}

37
epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/dto/form/ResiArticleDetailFormDTO.java

@ -0,0 +1,37 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 居民端查看文章详情传参DTO
* @ClassName ResiArticleDetailFormDTO
* @Auth wangc
* @Date 2020-06-04 09:20
*/
@Data
public class ResiArticleDetailFormDTO implements Serializable {
private static final long serialVersionUID = -7197489284630455909L;
public interface ResiArticleDetailInternalGroup{}
/**
* 网格Id
* */
@NotBlank(message = "网格Id不能为空",groups = ResiArticleDetailInternalGroup.class)
private String gridId;
/**
* 文章Id
* */
@NotBlank(message = "文章Id不能为空",groups = ResiArticleDetailInternalGroup.class)
private String articleId;
/**
* 用户Id
* */
@NotBlank(message = "用户Id不能为空",groups = ResiArticleDetailInternalGroup.class)
private String userId;
}

26
epmet-module/resi-voice/resi-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;
}

55
epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/dto/result/ArticleDetailResultDTO.java

@ -0,0 +1,55 @@
package com.epmet.dto.result;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description
* @ClassName ArticleDetailResultDTO
* @Auth wangc
* @Date 2020-06-03 16:36
*/
@JsonIgnoreProperties(ignoreUnknown = true)
@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;
}

46
epmet-module/resi-voice/resi-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;
}

35
epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/controller/ArticleController.java

@ -6,9 +6,9 @@ import com.epmet.commons.tools.enums.RequirePermissionEnum;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.ResiTagListFormDTO;
import com.epmet.dto.form.TagCascadeListFormDTO;
import com.epmet.dto.result.TagInfoResultDTO;
import com.epmet.dto.feign.GovVoiceFeignClient;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.service.ArticleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
@ -24,6 +24,8 @@ public class ArticleController {
@Autowired
private ArticleService articleService;
@Autowired
private GovVoiceFeignClient govVoiceFeignClient;
/**
* @Description 首页标签及更多居民端
@ -49,4 +51,31 @@ public class ArticleController {
return new Result<List<TagInfoResultDTO>>().ok(articleService.tagCascadeList(tokenDto,formDto));
}
/**
* @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 govVoiceFeignClient.resiArticleList(articlePageFormDTO);
}
/**
* @Description 根绝文章Id查询出文章的内容封面等相关信息如果居民端传入的网格Id不在该文章的发布范围内则返回NULL
* @param articleDetailFormDTO
* @return ArticleDetailResultDTO
* @author wangc
* @date 2020.06.03 18:28
**/
@PostMapping("articledetail")
public Result<ArticleDetailResultDTO> articleDetail(@LoginUser TokenDto tokenDto,@RequestBody ResiArticleDetailFormDTO articleDetailFormDTO){
articleDetailFormDTO.setUserId(tokenDto.getUserId());
ValidatorUtils.validateEntity(articleDetailFormDTO,ResiArticleDetailFormDTO.ResiArticleDetailInternalGroup.class);
return govVoiceFeignClient.resiArticleDetail(articleDetailFormDTO);
}
}

Loading…
Cancel
Save