From c979c62a58aa9f6da804f938398771bf01189b1d Mon Sep 17 00:00:00 2001 From: haozq <1611483981@qq.com> Date: Tue, 25 Nov 2025 10:41:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/bonus/business/domain/TreeBuild.java | 20 +++++++++++++++++++ .../business/mapper/DocumentScreenMapper.java | 7 +++++++ .../service/impl/DocumentScreenImpl.java | 7 +++++++ .../mapper/business/DocumentScreenMapper.xml | 19 ++++++++++++++---- .../resources/mapper/system/SysUserMapper.xml | 2 +- 5 files changed, 50 insertions(+), 5 deletions(-) diff --git a/bonus-business/src/main/java/com/bonus/business/domain/TreeBuild.java b/bonus-business/src/main/java/com/bonus/business/domain/TreeBuild.java index aa7e176..4c9ea1c 100644 --- a/bonus-business/src/main/java/com/bonus/business/domain/TreeBuild.java +++ b/bonus-business/src/main/java/com/bonus/business/domain/TreeBuild.java @@ -93,7 +93,21 @@ public class TreeBuild { return treeNodes; } + public List buildTree2(String parentId,String isAdmin){ + // treeNodes:保存一个顶级节点所构建出来的完整树形 + List treeNodes = new ArrayList(); + // getRootNode():获取所有的根节点 + for (DocumentTreeVo treeRootNode : getRootNode1(parentId,isAdmin)) { + // 将顶级节点进行构建子树 + treeRootNode = buildChildTree1(treeRootNode); + // 完成一个顶级节点所构建的树形,增加进来 + if("myShare".equals(treeRootNode.getParentId()) || "otherShare".equals(treeRootNode.getParentId())){ + treeNodes.add(treeRootNode); + } + } + return treeNodes; + } /** * 递归-----构建子树形结构 * @param pNode 根节点(顶级节点) @@ -107,6 +121,9 @@ public class TreeBuild { // 判断当前节点的父节点ID是否等于根节点的ID,即当前节点为其下的子节点 if (treeNode.getParentId().equals(pNode.getId())) { // 再递归进行判断当前节点的情况,调用自身方法 + if(StringUtils.isNotEmpty(pNode.getAuth())){ + treeNode.setAuth(pNode.getAuth()); + } childTree.add(buildChildTree(treeNode)); } } @@ -129,6 +146,9 @@ public class TreeBuild { for (DocumentTreeVo treeNode : nodeList) { // 判断当前节点的父节点ID是否等于根节点的ID,即当前节点为其下的子节点 if (treeNode.getParent().equals(pNode.getExeId())) { + if(StringUtils.isNotEmpty(pNode.getAuth())){ + treeNode.setAuth(pNode.getAuth()); + } // 再递归进行判断当前节点的情况,调用自身方法 childTree.add(buildChildTree1(treeNode)); } diff --git a/bonus-business/src/main/java/com/bonus/business/mapper/DocumentScreenMapper.java b/bonus-business/src/main/java/com/bonus/business/mapper/DocumentScreenMapper.java index 29f62fd..0baf38d 100644 --- a/bonus-business/src/main/java/com/bonus/business/mapper/DocumentScreenMapper.java +++ b/bonus-business/src/main/java/com/bonus/business/mapper/DocumentScreenMapper.java @@ -232,4 +232,11 @@ public interface DocumentScreenMapper { * @return */ TbDocumentFolder getDocumnetData(TbFolderFileVo vo); + + /** + * 查询分享数据集合 + * @param vo + * @return + */ + List getSharelist(DocumentTreeVo vo); } diff --git a/bonus-business/src/main/java/com/bonus/business/service/impl/DocumentScreenImpl.java b/bonus-business/src/main/java/com/bonus/business/service/impl/DocumentScreenImpl.java index 6d0a819..32c23e2 100644 --- a/bonus-business/src/main/java/com/bonus/business/service/impl/DocumentScreenImpl.java +++ b/bonus-business/src/main/java/com/bonus/business/service/impl/DocumentScreenImpl.java @@ -70,6 +70,13 @@ public class DocumentScreenImpl implements DocumentScreenService { List allList=mapper.getPublicFolderList(vo); List childeList=mapper.getUserFolderList(vo); + + List shareList=mapper.getSharelist(vo); + //查询 子节点集合 + TreeBuild shareTree = new TreeBuild(shareList); + List shareTreeList=shareTree.buildTree2("0",vo.getIsAdmin()); + + allList.addAll(shareTreeList); //查询 子节点集合 TreeBuild treeBuild1 = new TreeBuild(childeList); List childeList2=treeBuild1.buildTree1("0",vo.getIsAdmin()); diff --git a/bonus-business/src/main/resources/mapper/business/DocumentScreenMapper.xml b/bonus-business/src/main/resources/mapper/business/DocumentScreenMapper.xml index ae24df8..411d841 100644 --- a/bonus-business/src/main/resources/mapper/business/DocumentScreenMapper.xml +++ b/bonus-business/src/main/resources/mapper/business/DocumentScreenMapper.xml @@ -128,17 +128,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" folder.file_suffix,pru.user_id,pru.public_folder_id parentId,pru.auth ,pru.share_user_id, IFNULL( concat(pru.public_folder_id,"_",pru.user_id,"_",folder.id), folder.id) id from tb_user_document_folder folder - left join tb_public_real_user pru on folder.id=pru.user_folder_id - where folder.file_type=0 and (folder.type is null OR(folder.type=3 and folder.create_user=#{userId})) and - (pru.public_folder_id NOT in('myShare','otherShare') OR pru.public_folder_id IS NULL) + left join tb_public_real_user pru on folder.id=pru.user_folder_id AND pru.public_folder_id NOT in('myShare','otherShare') + where folder.file_type=0 and (folder.type is null OR(folder.type=3 and folder.create_user=#{userId})) + -- (pru.public_folder_id NOT in('myShare','otherShare') OR pru.public_folder_id IS NULL) + + + +