diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/NewsDao.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/NewsDao.java index 500237f8..e436d26c 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/NewsDao.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/NewsDao.java @@ -116,4 +116,13 @@ public interface NewsDao extends BaseDao { * @since 2020/3/7 1:20 */ void updateDeptNameByDeptId(String newDeptName, Long deptId); -} \ No newline at end of file + + /** + * 根据新闻id,查询该新闻 发布到哪些部门 + * @param newsId + * @return java.util.List + * @Author zhangyong + * @Date 18:08 2020-05-29 + **/ + List selectListNewsDepartment(String newsId); +} diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java index 57dab940..8ebd86cf 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java @@ -135,14 +135,33 @@ public class NewsServiceImpl extends BaseServiceImpl implem public NewsDTO get(String id) { NewsEntity entity = baseDao.selectById(id); NewsDTO dto = ConvertUtils.sourceToTarget(entity, NewsDTO.class); - /*if(StringUtils.isNotBlank(dto.getAllDeptIds())){ - String[] idsShow = dto.getAllDeptIds().split(","); - List ids = Arrays.asList(idsShow); - dto.setAllDeptIdsShow(ids.subList(1,ids.size())); - }*/ + // 通过新闻id,查询新闻关联的部门id + List listDeptId = baseDao.selectListNewsDepartment(dto.getId()); + // 查完整的部门ID + dto.setAllDeptIdsShow(this.getParentAllDeptInfo(listDeptId)); return dto; } + private List getParentAllDeptInfo(List listDeptId){ + // [0,1,2,3] + List allDeptIdsShowList = new ArrayList<>(); + for (Long list : listDeptId){ + // 查询父级部门 + Result parentAndAllDept = adminFeignClient.getParentAndAllDept(list.toString()); + ParentAndAllDeptDTO parentAndAllDeptDTO = parentAndAllDept.getData(); + String allDeptIds = parentAndAllDeptDTO.getAllDeptIds(); + String[] deptIdsShow = allDeptIds.split(","); + Long[] allDeptIdsShowLong = new Long[deptIdsShow.length]; + // 从第一级开始保存 + for (int i = 0; i <= deptIdsShow.length -1; i++){ + allDeptIdsShowLong[i] = Long.valueOf(deptIdsShow[i]); + } + allDeptIdsShowList.add(allDeptIdsShowLong); + } + return allDeptIdsShowList; + } + + @Override @Transactional(rollbackFor = Exception.class) public void save(NewsDTO dto) { diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/NewsDao.xml b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/NewsDao.xml index 36912547..1947990a 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/NewsDao.xml +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/NewsDao.xml @@ -156,4 +156,12 @@ UPDATE epdc_news SET DEPT_NAME = #{newDeptName}, UPDATED_TIME = NOW() WHERE DEPT_ID = #{deptId} + +