From 00293a7af4c44cdaf279e7ab9bc80b12975cfb08 Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 5 Jun 2020 18:32:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=82=E6=AD=A5=E6=89=A7=E8=A1=8C=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E7=BB=84=E7=BB=87=E5=BE=85=E6=A0=A1=E9=AA=8C=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=20=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/controller/ArticleController.java | 65 +++---------- .../java/com/epmet/dao/DraftContentDao.java | 7 ++ .../java/com/epmet/dao/DraftCoverDao.java | 11 ++- .../com/epmet/service/ArticleService.java | 71 ++------------ .../service/impl/ArticleServiceImpl.java | 94 ++++++++----------- .../java/com/epmet/utils/ModuleConstant.java | 5 + .../main/resources/mapper/DraftContentDao.xml | 12 ++- .../main/resources/mapper/DraftCoverDao.xml | 5 +- 8 files changed, 93 insertions(+), 177 deletions(-) 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 f0af3cffb1..c9f2bf5042 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 @@ -22,26 +22,19 @@ import com.epmet.commons.tools.annotation.RequirePermission; import com.epmet.commons.tools.enums.RequirePermissionEnum; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; -import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; -import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; -import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; -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.excel.ArticleExcel; import com.epmet.service.ArticleOperateRecordService; import com.epmet.service.ArticleService; import com.epmet.service.DraftService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletResponse; import java.util.List; -import java.util.Map; /** @@ -61,48 +54,6 @@ public class ArticleController { @Autowired private DraftService draftService; - @GetMapping("page") - public Result> page(@RequestParam Map params){ - PageData page = articleService.page(params); - return new Result>().ok(page); - } - - @GetMapping("{id}") - public Result get(@PathVariable("id") String id){ - ArticleDTO data = articleService.get(id); - return new Result().ok(data); - } - - @PostMapping - public Result save(@RequestBody ArticleDTO dto){ - //效验数据 - ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); - articleService.save(dto); - return new Result(); - } - - @PutMapping - public Result update(@RequestBody ArticleDTO dto){ - //效验数据 - ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); - articleService.update(dto); - return new Result(); - } - - @DeleteMapping - public Result delete(@RequestBody String[] ids){ - //效验数据 - AssertUtils.isArrayEmpty(ids, "id"); - articleService.delete(ids); - return new Result(); - } - - @GetMapping("export") - public void export(@RequestParam Map params, HttpServletResponse response) throws Exception { - List list = articleService.list(params); - ExcelUtils.exportExcelToTarget(response, null, list, ArticleExcel.class); - } - /** * @param tokenDTO * @return @@ -222,9 +173,6 @@ public class ArticleController { public Result saveDraftAttr(@LoginUser TokenDto tokenDto,@RequestBody DraftAttrFromDTO fromDTO) throws Exception { ValidatorUtils.validateEntity(fromDTO, DefaultGroup.class); Boolean isSuccess = articleService.saveDraftAttr(tokenDto, fromDTO); - if (isSuccess){ - //TODO 异步校验内容 - } return new Result().ok(isSuccess); } @@ -250,9 +198,19 @@ public class ArticleController { @RequirePermission(requirePermission = RequirePermissionEnum.WORK_PARTY_VOICE_PUBLISH) public Result publishArticle(@LoginUser TokenDto tokenDto, String draftId) throws Exception { Boolean isSuccess = articleService.publish(tokenDto, draftId); + if (isSuccess){ + //TODO 异步校验内容 + scanContent(draftId); + } return new Result().ok(isSuccess); } + @Async + public void scanContent(String draftId){ + articleService.scanContent(draftId); + + } + /** * 已发布文章列表 @@ -363,4 +321,5 @@ public class ArticleController { DraftDetailResultDTO draftDetailResultDTO = draftService.queryDraftDetail(formDTO); return new Result().ok(draftDetailResultDTO); } + } \ No newline at end of file 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 3c7af386a0..0738ce4bac 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 @@ -43,4 +43,11 @@ public interface DraftContentDao extends BaseDao { * @date 2020.06.05 10:28 **/ List selectByDraftId(@Param("draftId")String draftId,@Param("auditStatus")String auditStatus); + + /** + * desc:查询需要审核的内容 + * @param draftId + * @return + */ + List selectScanContentByDraftId(String draftId); } \ 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 bcf58361e1..a59d560ea1 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 @@ -23,8 +23,6 @@ import com.epmet.entity.DraftCoverEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; -import java.util.List; - /** * 草稿封面表 * @@ -43,4 +41,13 @@ public interface DraftCoverDao extends BaseDao { * @date 2020.06.05 10:28 **/ DraftCoverDTO selectByDraftId(@Param("draftId")String draftId,@Param("auditStatus")String auditStatus); + + /** + * @Description 通过草稿Id 获取未删除的草稿封面id及地址 + * @param draftId + * @return DraftCoverDTO + * @author wangc + * @date 2020.06.05 10:28 + **/ + DraftCoverDTO selectCoverIdAndUrlByDraftId(@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 4e8613f908..9b8a977d90 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 @@ -20,16 +20,11 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; 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.*; -import com.epmet.dto.form.ArticlePageFormDTO; -import com.epmet.dto.form.CommonArticleListFormDTO; import com.epmet.entity.ArticleEntity; - import java.util.List; -import java.util.Map; /** * 文章表 @@ -39,66 +34,6 @@ import java.util.Map; */ public interface ArticleService extends BaseService { - /** - * 默认分页 - * - * @param params - * @return PageData - * @author generator - * @date 2020-06-02 - */ - PageData page(Map params); - - /** - * 默认查询 - * - * @param params - * @return java.util.List - * @author generator - * @date 2020-06-02 - */ - List list(Map params); - - /** - * 单条查询 - * - * @param id - * @return ArticleDTO - * @author generator - * @date 2020-06-02 - */ - ArticleDTO get(String id); - - /** - * 默认保存 - * - * @param dto - * @return void - * @author generator - * @date 2020-06-02 - */ - void save(ArticleDTO dto); - - /** - * 默认更新 - * - * @param dto - * @return void - * @author generator - * @date 2020-06-02 - */ - void update(ArticleDTO dto); - - /** - * 批量删除 - * - * @param ids - * @return void - * @author generator - * @date 2020-06-02 - */ - void delete(String[] ids); - /** * @param tokenDTO * @return @@ -239,4 +174,10 @@ public interface ArticleService extends BaseService { * @date 2020.06.05 09:10 **/ String publishDraftToArticle(String draftId); + + /** + * desc:异步执行审核,如果审核通过则 发布文章,否则发送站内信 + * @param draftId + */ + void scanContent(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 ae19fda025..da87570a85 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,8 +18,6 @@ package com.epmet.service.impl; import com.alibaba.fastjson.JSON; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; @@ -46,8 +44,8 @@ import com.epmet.entity.*; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.redis.ArticleRedis; -import com.epmet.service.*; import com.epmet.redis.TagRedis; +import com.epmet.service.*; import com.epmet.utils.ModuleConstant; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -117,58 +115,6 @@ public class ArticleServiceImpl extends BaseServiceImpl page(Map params) { - IPage page = baseDao.selectPage( - getPage(params, FieldConstant.CREATED_TIME, false), - getWrapper(params) - ); - return getPageData(page, ArticleDTO.class); - } - - @Override - public List list(Map params) { - List entityList = baseDao.selectList(getWrapper(params)); - - return ConvertUtils.sourceToTarget(entityList, ArticleDTO.class); - } - - private QueryWrapper getWrapper(Map params) { - String id = (String) params.get(FieldConstant.ID_HUMP); - - QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); - - return wrapper; - } - - @Override - public ArticleDTO get(String id) { - ArticleEntity entity = baseDao.selectById(id); - return ConvertUtils.sourceToTarget(entity, ArticleDTO.class); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void save(ArticleDTO dto) { - ArticleEntity entity = ConvertUtils.sourceToTarget(dto, ArticleEntity.class); - insert(entity); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void update(ArticleDTO dto) { - ArticleEntity entity = ConvertUtils.sourceToTarget(dto, ArticleEntity.class); - updateById(entity); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void delete(String[] ids) { - // 逻辑删除(@TableLogic 注解) - baseDao.deleteBatchIds(Arrays.asList(ids)); - } - /** * @param tokenDTO * @return @@ -901,6 +847,44 @@ public class ArticleServiceImpl extends BaseServiceImpl imgMap = new HashMap<>(); + Map textMap = new HashMap<>(); + DraftCoverDTO draftCoverDTO = draftCoverDao.selectCoverIdAndUrlByDraftId(draftId); + if (draftCoverDTO != null){ + imgMap.put(ModuleConstant.SCAN_COVER_PREFIX.concat(draftCoverDTO.getId()), draftCoverDTO.getImgUrl()); + } + List contentDTOList = draftContentDao.selectScanContentByDraftId(draftId); + if(!CollectionUtils.isEmpty(contentDTOList)){ + contentDTOList.forEach(content->{ + String contentType = content.getContentType(); + if (DraftConstant.TEXT.equals(contentType)){ + //todo 内容叠加审核吧 id拼起来 + textMap.put(content.getId(),content.getContent()); + }else if (DraftConstant.IMG.equals(contentType)){ + imgMap.put(draftCoverDTO.getId(), draftCoverDTO.getImgUrl()); + } + }); + } + + //todo 执行审核 + } + /** * @Description 更新DB的标签使用次数 * @param draftId 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 e3df228591..b12b0fef32 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 @@ -64,4 +64,9 @@ public interface ModuleConstant { * */ String SPECIFIED_DRAFT_NOT_FOUNT_EXCEPTION_TEMPLATE = "未找到指定草稿,草稿Id:【%s】"; + /** + * 内容审核 封面图片前缀,用于标识这个Id是封面图片 + * */ + String SCAN_COVER_PREFIX = "cover_"; + } 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 271ba5b972..8bd2ed7ccd 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 @@ -16,7 +16,7 @@ DRAFT_CONTENT DRAFT_ID = #{draftId} - AND DEL_FLAG = '0' + AND DEL_FLAG = 0 AND AUDIT_STATUS = #{auditStatus} @@ -24,5 +24,15 @@ ORDER BY ORDER_NUM + \ 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 03f8a04596..893d708ee3 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 @@ -14,12 +14,15 @@ DRAFT_COVER cover cover.DRAFT_ID = #{draftId} - AND cover.DEL_FLAG = '0' + AND cover.DEL_FLAG = 0 AND cover.AUDIT_STATUS = #{auditStatus} AND NOT EXISTS ( SELECT 1 FROM DRAFT_COVER WHERE cover.CREATED_TIME CREATED_TIME ) + \ No newline at end of file