From 104ef63a591c96e102ec1bacb5dcd6b9a67fa756 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Fri, 1 Jul 2022 09:51:23 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8D=89=E7=A8=BF=E5=88=97=E8=A1=A8=E3=80=81?= =?UTF-8?q?=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/controller/ArticleController.java | 1 + .../com/epmet/controller/DraftController.java | 1 + .../src/main/java/com/epmet/dao/DraftDao.java | 3 + .../epmet/service/impl/DraftServiceImpl.java | 82 +++++++++++++++++-- .../src/main/resources/mapper/ArticleDao.xml | 8 +- .../src/main/resources/mapper/DraftDao.xml | 44 ++++++++++ 6 files changed, 127 insertions(+), 12 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 6dcd4f2af5..2b757b7320 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 @@ -428,6 +428,7 @@ public class ArticleController { @PostMapping("detailV2") public Result detailV2(@LoginUser TokenDto tokenDTO, @RequestBody ArticleListFormDTO formDTO) { formDTO.setCustomerId(tokenDTO.getCustomerId()); + formDTO.setStaffId(tokenDTO.getUserId()); return new Result().ok(articleService.detailV2(formDTO)); } diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/DraftController.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/DraftController.java index b0cd066b27..6cf5a28000 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/DraftController.java +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/DraftController.java @@ -109,6 +109,7 @@ public class DraftController { @PostMapping("detailV2") public Result detailV2(@LoginUser TokenDto tokenDTO, @RequestBody DraftListFormDTO formDTO) { formDTO.setCustomerId(tokenDTO.getCustomerId()); + formDTO.setStaffId(tokenDTO.getUserId()); return new Result().ok(draftService.detailV2(formDTO)); } diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftDao.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftDao.java index 470ec938b6..0b5a30084a 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftDao.java +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftDao.java @@ -18,6 +18,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.form.DraftListFormDTO; import com.epmet.dto.result.*; import com.epmet.entity.DraftEntity; import org.apache.ibatis.annotations.Mapper; @@ -112,4 +113,6 @@ public interface DraftDao extends BaseDao { * @return */ int updateAuditStatusById(@Param("draftId") String draftId, @Param("statusFlag") String statusFlag, @Param("titleAuditStatus") String titleAuditStatus); + + List selectAllDraft(DraftListFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/DraftServiceImpl.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/DraftServiceImpl.java index 53ab778879..45d0e96cb2 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/DraftServiceImpl.java +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/DraftServiceImpl.java @@ -17,24 +17,30 @@ package com.epmet.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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; +import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.constant.DraftConstant; +import com.epmet.dao.DraftContentDao; import com.epmet.dao.DraftCoverDao; import com.epmet.dao.DraftDao; +import com.epmet.dao.DraftPublishRangeDao; 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.*; -import com.epmet.entity.DraftCoverEntity; -import com.epmet.entity.DraftEntity; +import com.epmet.entity.*; import com.epmet.service.DraftService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -44,11 +50,10 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * 草稿表 @@ -62,6 +67,13 @@ public class DraftServiceImpl extends BaseServiceImpl imp @Autowired private DraftCoverDao draftCoverDao; + @Autowired + private LoginUserUtil loginUserUtil; + @Autowired + private DraftPublishRangeDao draftPublishRangeDao; + @Autowired + private DraftContentDao draftContentDao; + @Override public PageData page(Map params) { IPage page = baseDao.selectPage( @@ -203,12 +215,66 @@ public class DraftServiceImpl extends BaseServiceImpl imp @Override public PageData draftListV2(DraftListFormDTO formDTO) { - return null; + //1.获取工作人员缓存信息 + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId()); + if (null == staffInfo) { + throw new EpmetException("获取工作人员信息失败"); + } + //查询当前组织及下级数据 + formDTO.setAgencyId(staffInfo.getAgencyId()); + //列表查询 + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()); + List list = baseDao.selectAllDraft(formDTO); + PageInfo pageInfo = new PageInfo<>(list); + + //封装数据 + if (!CollectionUtils.isEmpty(list)) { + list.forEach(l->{ + l.setTagNameList(StringUtils.isNotBlank(l.getTags())?Arrays.asList(l.getTags().split("[|]")):new ArrayList<>()); + l.setIsMePublished(l.getCreatedBy().equals(loginUserUtil.getLoginUserId())?true:false); + }); + } + + return new PageData<>(list, pageInfo.getTotal()); } @Override public DraftPcListResultDTO detailV2(DraftListFormDTO formDTO) { - return null; + DraftPcListResultDTO resultDTO = new DraftPcListResultDTO(); + //1.查询文章主表信息 + List list = baseDao.selectAllDraft(formDTO); + + if (!CollectionUtils.isEmpty(list)) { + resultDTO = list.get(NumConstant.ZERO); + //查询文章涉及的发布范围网络Id列表 + LambdaQueryWrapper tWrapper = new LambdaQueryWrapper<>(); + tWrapper.eq(DraftPublishRangeEntity::getDraftId, formDTO.getDraftId()); + tWrapper.eq(DraftPublishRangeEntity::getDelFlag, NumConstant.ZERO_STR); + //【文章下线的查所有发布范围,文章没下线的只查还没下线的发布范围】 + if("unpublish".equals(resultDTO.getStatusFlag())){ + tWrapper.eq(DraftPublishRangeEntity::getPublishStatus, "unpublish"); + }else { + tWrapper.eq(DraftPublishRangeEntity::getPublishStatus, "published"); + } + List entityList = draftPublishRangeDao.selectList(tWrapper); + if (!CollectionUtils.isEmpty(entityList)) { + List contentList = entityList.stream().map(DraftPublishRangeEntity::getGridId).collect(Collectors.toList()); + resultDTO.setGridIdList(contentList); + } + + //查询文章内容 + LambdaQueryWrapper tWrapper1 = new LambdaQueryWrapper<>(); + tWrapper1.eq(DraftContentEntity::getDraftId, formDTO.getDraftId()); + tWrapper1.eq(DraftContentEntity::getDelFlag, NumConstant.ZERO_STR); + tWrapper1.orderByDesc(DraftContentEntity::getOrderNum); + List contentEntityList = draftContentDao.selectList(tWrapper1); + if (!CollectionUtils.isEmpty(entityList)) { + LinkedList contentList = (LinkedList)contentEntityList.stream().map(DraftContentEntity::getContent).collect(Collectors.toList()); + resultDTO.setContentList(contentList); + } + } + + return resultDTO; } } \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml index 922c54c044..3ee0cf2193 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml +++ b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml @@ -449,7 +449,7 @@ WHERE a.del_flag = '0' - AND id = #{articleId} + AND a.id = #{articleId} AND a.customer_id = #{customerId} @@ -464,10 +464,10 @@ AND a.status_flag = #{statusFlag} - and publish_date >= #{startDate} + AND a.publish_date >= #{startDate} - + @@ -487,7 +487,7 @@ ) - ORDER BY publish_date DESC, updated_time DESC + ORDER BY a.publish_date DESC, a.updated_time DESC diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftDao.xml b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftDao.xml index a6675ddb4e..1c2e4d36b2 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftDao.xml +++ b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftDao.xml @@ -177,6 +177,50 @@ ORDER BY dc.ORDER_NUM ASC + + + update draft set DEL_FLAG='1' where id=#{draftId}