Browse Source

草稿内容发布文章

dev_shibei_match
wangchao 5 years ago
parent
commit
82f49b25ba
  1. 15
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftContentDao.java
  2. 15
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftCoverDao.java
  3. 14
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftPublishRangeDao.java
  4. 9
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleService.java
  5. 63
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java
  6. 15
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/utils/ModuleConstant.java
  7. 21
      epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftContentDao.xml
  8. 18
      epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftCoverDao.xml
  9. 17
      epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftPublishRangeDao.xml

15
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;
/**
* 草稿内容表
@ -29,5 +33,14 @@ 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);
}

15
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;
/**
* 草稿封面表
@ -29,5 +33,14 @@ 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);
}

14
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;
/**
* 草稿发布范围表
@ -29,5 +33,13 @@ 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);
}

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;
@ -36,9 +37,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.*;
@ -92,6 +91,10 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
private DraftCoverDao draftCoverDao;
@Autowired
private DraftPublishRangeDao draftPublishRangeDao;
@Autowired
private ArticleContentDao articleContentDao;
@Autowired
private ArticleCoverDao articleCoverDao;
private static final String AGENCY = "agency";
private static final String GRID = "grid";
@ -683,4 +686,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));
}
}

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>

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