Browse Source

Merge remote-tracking branch 'origin/dev_voice' into dev_voice

dev_shibei_match
sunyuchao 5 years ago
parent
commit
d2928ac067
  1. 62
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/DraftDetailResultDTO.java
  2. 27
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/GovDraftContentDTO.java
  3. 14
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/ArticleController.java
  4. 13
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftContentDao.java
  5. 13
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftCoverDao.java
  6. 38
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftDao.java
  7. 12
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftPublishRangeDao.java
  8. 9
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleService.java
  9. 11
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/DraftService.java
  10. 63
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java
  11. 19
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/DraftServiceImpl.java
  12. 15
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/utils/ModuleConstant.java
  13. 21
      epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftContentDao.xml
  14. 18
      epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftCoverDao.xml
  15. 29
      epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftDao.xml
  16. 17
      epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftPublishRangeDao.xml

62
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/DraftDetailResultDTO.java

@ -0,0 +1,62 @@
package com.epmet.dto.result;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 政府端文章预览接口返参DTO
*
* @author yinzuomei@elink-cn.com
* @date 2020/6/5 10:56
*/
@Data
public class DraftDetailResultDTO implements Serializable {
private static final long serialVersionUID = 6156947260878857897L;
/**
* 草稿Id
*/
private String draftId;
/**
* 标题
*/
private String title;
/**
* 发布单位名称
*/
private String publisherName;
/**
* 发布日期
*/
@JsonFormat(pattern="yyyy-MM-dd")
private Date publishDate;
/**
* 访问量
*/
private Integer visitRecordCount;
/**
* 标签字符串 已废弃
*/
@JsonIgnore
private String tags;
/**
* 内容列表
*/
private List<GovDraftContentDTO> articleContentList;
/**
* 标签名称数组
*/
private String[] tagNameList;
}

27
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/GovDraftContentDTO.java

@ -0,0 +1,27 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* 政府端文章预览接口返参DTO-内容列表
*
* @author yinzuomei@elink-cn.com
* @date 2020/6/5 12:10
*/
@Data
public class GovDraftContentDTO implements Serializable {
private static final long serialVersionUID = 5653062658148122552L;
/**
* 内容类型图片img文字text
*/
private String contentType;
/**
* 内容
*/
private String content;
}

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

@ -348,4 +348,18 @@ public class ArticleController {
ValidatorUtils.validateEntity(articleDetailFormDTO,ResiArticleDetailFormDTO.ResiArticleDetailInternalGroup.class);
return new Result<ArticleDetailResultDTO>().ok(articleService.getArticleDetail(articleDetailFormDTO));
}
/**
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.DraftDetailResultDTO>
* @author yinzuomei@elink-cn.com
* @description 政府端文章预览
* @date 2020/6/5 10:56
**/
@PostMapping("draftdetail")
public Result<DraftDetailResultDTO> queryDraftDetail(@RequestBody DraftDetailFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, GovArticleDetailFormDTO.AddUserInternalGroup.class);
DraftDetailResultDTO draftDetailResultDTO = draftService.queryDraftDetail(formDTO);
return new Result<DraftDetailResultDTO>().ok(draftDetailResultDTO);
}
}

13
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftContentDao.java

@ -18,8 +18,12 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.DraftContentDTO;
import com.epmet.entity.DraftContentEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 草稿内容表
@ -30,4 +34,13 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DraftContentDao extends BaseDao<DraftContentEntity> {
/**
* @Description 通过草稿Id获取草稿内容并按照orderNum排序默认拿取所有状态
* @param draftId
* @param auditStatus
* @return List<DraftContentDTO>
* @author wangc
* @date 2020.06.05 10:28
**/
List<DraftContentDTO> selectByDraftId(@Param("draftId")String draftId,@Param("auditStatus")String auditStatus);
}

13
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftCoverDao.java

@ -18,8 +18,12 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.DraftCoverDTO;
import com.epmet.entity.DraftCoverEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 草稿封面表
@ -30,4 +34,13 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DraftCoverDao extends BaseDao<DraftCoverEntity> {
/**
* @Description 通过草稿Id获取草稿封面且创建时间是为最新的
* @param draftId
* @param auditStatus
* @return DraftCoverDTO
* @author wangc
* @date 2020.06.05 10:28
**/
DraftCoverDTO selectByDraftId(@Param("draftId")String draftId,@Param("auditStatus")String auditStatus);
}

38
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftDao.java

@ -36,40 +36,40 @@ public interface DraftDao extends BaseDao<DraftEntity> {
/**
* 政府端查询草稿内容详情
*
* @param draftId
* 草稿id
* @param draftId 草稿id
* @author yinzuomei
*/
DraftContentResultDTO selectDraftContent(String draftId);
/**
* 政府端查询草稿内容详情
*
* @param draftId
* 草稿id
* @param draftId 草稿id
* @author yinzuomei
*/
List<DraftContentDetailDTO> selectDraftContentDetail(String draftId);
/**
* 政府端选中草稿编辑获取草稿属性
*
* @param draftId
* 草稿id
* @param draftId 草稿id
* @author yinzuomei
*/
DraftAttrResultDTO selectDraftAttr(String draftId);
/**
* 政府端选中草稿编辑获取草稿属性-封面信息
*
* @param draftId
* 草稿id
* @param draftId 草稿id
* @author yinzuomei
*/
CoverImgDTO selectDraftCoverImg(String draftId);
/**
* 政府端选中草稿编辑获取草稿属性-已选择发布网格
*
* @param draftId
* 草稿id
* @param draftId 草稿id
* @author yinzuomei
*/
List<String> selectDraftGrids(String draftId);
@ -81,4 +81,22 @@ public interface DraftDao extends BaseDao<DraftEntity> {
* @return java.util.List<com.epmet.dto.result.DraftListResultDTO>
*/
List<DraftListResultDTO> selectDraftList(@Param("userId") String userId);
/**
* @param draftId
* @return com.epmet.dto.result.DraftDetailResultDTO
* @author yinzuomei@elink-cn.com
* @description 文章预览-获取文章基本属性
* @date 2020/6/5 12:23
**/
DraftDetailResultDTO selectDraftDetail(String draftId);
/**
* @param draftId
* @return java.util.List<com.epmet.dto.result.GovDraftContentDTO>
* @author yinzuomei@elink-cn.com
* @description 文章预览-获取文章内容列表
* @date 2020/6/5 12:23
**/
List<GovDraftContentDTO> selectDraftContentList(String draftId);
}

12
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftPublishRangeDao.java

@ -18,8 +18,12 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.DraftPublishRangeDTO;
import com.epmet.entity.DraftPublishRangeEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 草稿发布范围表
@ -30,4 +34,12 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DraftPublishRangeDao extends BaseDao<DraftPublishRangeEntity> {
/**
* @Description 通过草稿Id获取草稿发布范围
* @param draftId
* @return List<DraftPublishRangeDTO>
* @author wangc
* @date 2020.06.05 10:28
**/
List<DraftPublishRangeDTO> selectByDraftId(@Param("draftId")String draftId);
}

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

@ -230,4 +230,13 @@ public interface ArticleService extends BaseService<ArticleEntity> {
* @date 2020.06.03 18:28
**/
ArticleDetailResultDTO getArticleDetail(ResiArticleDetailFormDTO articleDetailFormDTO);
/**
* @Description 草稿发布文章
* @param draftId
* @return String 返回新发布文章的Id
* @author wangc
* @date 2020.06.05 09:10
**/
String publishDraftToArticle(String draftId);
}

11
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/DraftService.java

@ -26,6 +26,7 @@ import com.epmet.dto.form.DraftDetailFormDTO;
import com.epmet.dto.form.DraftListFormDTO;
import com.epmet.dto.result.DraftAttrResultDTO;
import com.epmet.dto.result.DraftContentResultDTO;
import com.epmet.dto.result.DraftDetailResultDTO;
import com.epmet.entity.DraftEntity;
import java.util.List;
@ -137,4 +138,14 @@ public interface DraftService extends BaseService<DraftEntity> {
* @return java.util.List<com.epmet.dto.result.DraftListResultDTO>
*/
PageData draftList(TokenDto tokenDto, DraftListFormDTO formDTO);
/**
* 政府端文章预览
*
* @param formDTO
* @return com.epmet.dto.result.DraftContentResultDTO
* @author yinzuomei@elink-cn.com
* @date 2020-06-03
*/
DraftDetailResultDTO queryDraftDetail(DraftDetailFormDTO formDTO);
}

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

@ -18,6 +18,7 @@
package com.epmet.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
@ -38,9 +39,7 @@ import com.epmet.constant.ArticleConstant;
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.CustomerStaffDTO;
import com.epmet.dto.*;
import com.epmet.dto.feign.GovOrgSelfFeignClient;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
@ -97,6 +96,10 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
private DraftPublishRangeDao draftPublishRangeDao;
@Autowired
private LoginUserUtil loginUserUtil;
@Autowired
private ArticleContentDao articleContentDao;
@Autowired
private ArticleCoverDao articleCoverDao;
private static final String AGENCY = "agency";
private static final String GRID = "grid";
@ -816,4 +819,58 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
return articleInfo;
}
/**
* @Description 草稿发布文章
* @param draftId
* @return String 返回新发布文章的Id
* @author wangc
* @date 2020.06.05 09:10
**/
@Override
@Transactional(rollbackFor = Exception.class)
public String publishDraftToArticle(String draftId) {
//1.查找草稿内容
DraftEntity draft = draftDao.selectById(draftId);
if(null != draft){
//2.查找草稿内容、封面、发布范围
List<DraftContentDTO> draftContents = draftContentDao.selectByDraftId(draftId,ModuleConstant.AUDIT_STATUS_PASS);
DraftCoverDTO draftCover = draftCoverDao.selectByDraftId(draftId,ModuleConstant.AUDIT_STATUS_PASS);
List<DraftPublishRangeDTO> draftPublishRange = draftPublishRangeDao.selectByDraftId(draftId);
//3.生成文章以及相关记录
ArticleEntity article = ConvertUtils.sourceToTarget(draft,ArticleEntity.class);
article.setId(null);
article.setDraftId(draftId);
baseDao.insert(article);
int order = NumConstant.ONE;
if(null != draftContents && draftContents.size() > NumConstant.ZERO){
draftContents.forEach(content -> {
content.setOrderNum(order+NumConstant.ONE);
ArticleContentEntity contentToInsert = ConvertUtils.sourceToTarget(content,ArticleContentEntity.class);
contentToInsert.setArticleId(article.getId());
contentToInsert.setId(null);
articleContentDao.insert(contentToInsert);
});
}
if(null != draftPublishRange && draftPublishRange.size() > NumConstant.ZERO){
draftPublishRange.forEach(range -> {
ArticlePublishRangeEntity rangeToInsert = ConvertUtils.sourceToTarget(range,ArticlePublishRangeEntity.class);
rangeToInsert.setArticleId(article.getId());
rangeToInsert.setId(null);
articlePublishRangeDao.insert(rangeToInsert);
});
if(null != draftCover){
ArticleCoverEntity coverToInsert = ConvertUtils.sourceToTarget(draftCover,ArticleCoverEntity.class);
coverToInsert.setArticleId(article.getId());
coverToInsert.setId(null);
articleCoverDao.insert(coverToInsert);
}
}
return article.getId();
}
throw new RenException(String.format(ModuleConstant.SPECIFIED_DRAFT_NOT_FOUNT_EXCEPTION_TEMPLATE,draftId));
}
}

19
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/DraftServiceImpl.java

@ -31,10 +31,7 @@ import com.epmet.dto.DraftDTO;
import com.epmet.dto.form.DeleteDraftFormDTO;
import com.epmet.dto.form.DraftDetailFormDTO;
import com.epmet.dto.form.DraftListFormDTO;
import com.epmet.dto.result.CoverImgDTO;
import com.epmet.dto.result.DraftAttrResultDTO;
import com.epmet.dto.result.DraftContentResultDTO;
import com.epmet.dto.result.DraftListResultDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.DraftEntity;
import com.epmet.redis.DraftRedis;
import com.epmet.service.DraftService;
@ -159,4 +156,18 @@ public class DraftServiceImpl extends BaseServiceImpl<DraftDao, DraftEntity> imp
return new PageData<>(resultList, pageInfo.getTotal());
}
@Override
public DraftDetailResultDTO queryDraftDetail(DraftDetailFormDTO formDTO) {
DraftDetailResultDTO draftDetailResultDTO=baseDao.selectDraftDetail(formDTO.getDraftId());
if(null!=draftDetailResultDTO){
List<GovDraftContentDTO> articleContentList=baseDao.selectDraftContentList(formDTO.getDraftId());
draftDetailResultDTO.setArticleContentList(articleContentList);
if (StringUtils.isNoneBlank(draftDetailResultDTO.getTags())) {
String[] tagNames = draftDetailResultDTO.getTags().split("\\|");
draftDetailResultDTO.setTagNameList(tagNames);
}
}
return draftDetailResultDTO;
}
}

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

@ -49,4 +49,19 @@ public interface ModuleConstant {
* */
String SPECIFIED_ARTICLE_NOT_FOUND_EXCEPTION_TEMPLATE = "未找到指定文章,文章Id:【%s】,发布网格Id:【%s】,可能原因:没有该文章或者请求网格不在该文章发布范围内。";
/**
* 审核类型 通过
* */
String AUDIT_STATUS_PASS = "pass";
/**
* 审核类型 失败
* */
String AUDIT_STATUS_FAIL = "fail";
/**
* 草稿未找到异常模板
* */
String SPECIFIED_DRAFT_NOT_FOUNT_EXCEPTION_TEMPLATE = "未找到指定草稿,草稿Id:【%s】";
}

21
epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftContentDao.xml

@ -3,5 +3,26 @@
<mapper namespace="com.epmet.dao.DraftContentDao">
<!-- 通过草稿Id获取草稿内容并按照orderNum排序,默认拿取所有状态 -->
<select id="selectByDraftId" resultType="com.epmet.dto.DraftContentDTO">
SELECT
CUSTOMER_ID,
CONTENT,
CONTENT_TYPE,
AUDIT_STATUS,
AUDIT_REASON,
ORDER_NUM
FROM
DRAFT_CONTENT
<where>
DRAFT_ID = #{draftId}
AND DEL_FLAG = '0'
<if test='null != auditStatus and "" != auditStatus'>
AND AUDIT_STATUS = #{auditStatus}
</if>
</where>
ORDER BY
ORDER_NUM
</select>
</mapper>

18
epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftCoverDao.xml

@ -3,5 +3,23 @@
<mapper namespace="com.epmet.dao.DraftCoverDao">
<!-- 通过草稿Id获取草稿封面且创建时间是为最新的 -->
<select id="selectByDraftId" resultType="com.epmet.dto.DraftCoverDTO">
SELECT
cover.CUSTOMER_ID,
cover.IMG_URL,
cover.AUDIT_STATUS,
cover.AUDIT_REASON
FROM
DRAFT_COVER cover
<where>
cover.DRAFT_ID = #{draftId}
AND cover.DEL_FLAG = '0'
<if test = 'null != auditStatus and "" != auditStatus'>
AND cover.AUDIT_STATUS = #{auditStatus}
</if>
AND NOT EXISTS ( SELECT 1 FROM DRAFT_COVER WHERE cover.CREATED_TIME <![CDATA[ < ]]> CREATED_TIME )
</where>
</select>
</mapper>

29
epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftDao.xml

@ -96,4 +96,33 @@
AND (STATUS_FLAG = 'unpublish' OR STATUS_FLAG = 'auditfail')
AND CREATED_BY = #{userId}
</select>
<!-- 文章预览-获取文章基本属性 -->
<select id="selectDraftDetail" parameterType="java.lang.String" resultType="com.epmet.dto.result.DraftDetailResultDTO">
SELECT
d.id AS draft_id,
d.TITLE,
d.PUBLISHER_NAME,
d.PUBLISH_DATE,
0 AS visit_record_count,
d.TAGS
FROM
draft d
WHERE
d.DEL_FLAG = '0'
AND d.id = #{draftId}
AND d.STATUS_FLAG != 'published'
</select>
<!-- 文章预览-获取文章内容列表 -->
<select id="selectDraftContentList" parameterType="java.lang.String" resultType="com.epmet.dto.result.GovDraftContentDTO">
SELECT
dc.CONTENT_TYPE,
dc.CONTENT
FROM
draft_content dc
WHERE
dc.DEL_FLAG = '0'
AND dc.DRAFT_ID = #{draftId}
ORDER BY
dc.ORDER_NUM ASC
</select>
</mapper>

17
epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftPublishRangeDao.xml

@ -3,5 +3,22 @@
<mapper namespace="com.epmet.dao.DraftPublishRangeDao">
<!-- 通过草稿Id获取草稿发布范围 -->
<select id="selectByDraftId" resultType="com.epmet.dto.DraftPublishRangeDTO">
SELECT
CUSTOMER_ID,
GRID_ID,
AGENCY_GRID_NAME,
AGENCY_ID,
PIDS,
ALL_PARENT_NAME,
OFF_LINE_TIME,
PUBLISH_STATUS
FROM
DRAFT_PUBLISH_RANGE
WHERE
DRAFT_ID = #{draftId}
AND DEL_FLAG = '0'
</select>
</mapper>
Loading…
Cancel
Save