diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftContentDao.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftContentDao.java index 8d36568edf..3c7af386a0 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftContentDao.java +++ b/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 { - + + /** + * @Description 通过草稿Id获取草稿内容并按照orderNum排序,默认拿取所有状态 + * @param draftId + * @param auditStatus + * @return List + * @author wangc + * @date 2020.06.05 10:28 + **/ + List selectByDraftId(@Param("draftId")String draftId,@Param("auditStatus")String auditStatus); } \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftCoverDao.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftCoverDao.java index b625204667..bcf58361e1 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftCoverDao.java +++ b/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 { - + + /** + * @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); } \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftPublishRangeDao.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftPublishRangeDao.java index 98a6a65f8e..b3da6a7c4e 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftPublishRangeDao.java +++ b/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 { - + + /** + * @Description 通过草稿Id获取草稿发布范围 + * @param draftId + * @return List + * @author wangc + * @date 2020.06.05 10:28 + **/ + List selectByDraftId(@Param("draftId")String draftId); } \ 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 1fbeeadf2f..4e8613f908 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 @@ -230,4 +230,13 @@ public interface ArticleService extends BaseService { * @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); } \ 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 5219c1de67..78817ea0fa 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 @@ -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 draftContents = draftContentDao.selectByDraftId(draftId,ModuleConstant.AUDIT_STATUS_PASS); + DraftCoverDTO draftCover = draftCoverDao.selectByDraftId(draftId,ModuleConstant.AUDIT_STATUS_PASS); + List 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)); + } + } \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/utils/ModuleConstant.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/utils/ModuleConstant.java index 1aa334094d..e3df228591 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/utils/ModuleConstant.java +++ b/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】"; + } diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftContentDao.xml b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftContentDao.xml index ad230ebefc..271ba5b972 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftContentDao.xml +++ b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftContentDao.xml @@ -3,5 +3,26 @@ + + \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftCoverDao.xml b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftCoverDao.xml index f514eeceb3..03f8a04596 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftCoverDao.xml +++ b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftCoverDao.xml @@ -3,5 +3,23 @@ + + \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftPublishRangeDao.xml b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftPublishRangeDao.xml index 2d2c8df78a..afcb6f71a9 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftPublishRangeDao.xml +++ b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftPublishRangeDao.xml @@ -3,5 +3,22 @@ + + \ No newline at end of file