From 8de1f747f853f7aea1a310c32bcbbf5bba4b3b43 Mon Sep 17 00:00:00 2001 From: haozq <1611483981@qq.com> Date: Mon, 3 Nov 2025 09:18:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DocumentScreenController.java | 26 +++- .../bonus/business/domain/DocumentTreeVo.java | 4 + .../business/domain/TbDocumentFolder.java | 6 + .../bonus/business/domain/TbFolderFileVo.java | 60 ++++++++ .../business/mapper/DocumentScreenMapper.java | 38 +++++ .../service/DocumentScreenService.java | 11 ++ .../service/impl/DocumentScreenImpl.java | 65 +++++--- .../service/impl/DocumentServiceImpl.java | 6 +- .../mapper/business/DocumentMappper.xml | 64 ++++---- .../mapper/business/DocumentScreenMapper.xml | 141 ++---------------- 10 files changed, 236 insertions(+), 185 deletions(-) create mode 100644 bonus-business/src/main/java/com/bonus/business/domain/TbFolderFileVo.java diff --git a/bonus-business/src/main/java/com/bonus/business/controller/DocumentScreenController.java b/bonus-business/src/main/java/com/bonus/business/controller/DocumentScreenController.java index 9084d71..7978d9c 100644 --- a/bonus-business/src/main/java/com/bonus/business/controller/DocumentScreenController.java +++ b/bonus-business/src/main/java/com/bonus/business/controller/DocumentScreenController.java @@ -2,17 +2,19 @@ package com.bonus.business.controller; import com.bonus.business.domain.DocumentTreeVo; import com.bonus.business.domain.TbDocumentFolder; +import com.bonus.business.domain.TbFolderFileVo; import com.bonus.business.domain.TbUserFiles; import com.bonus.business.service.DocumentScreenService; import com.bonus.common.core.controller.BaseController; import com.bonus.common.core.domain.AjaxResult; +import com.bonus.common.core.page.TableDataInfo; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.util.List; + /** * 文档中心管理 */ @@ -23,6 +25,19 @@ public class DocumentScreenController extends BaseController { @Autowired private DocumentScreenService service; + /** + * 依据文件夹查询数据集合 + * @param vo + * @return + */ + @PreAuthorize("@ss.hasPermi('tb:document:list')") + @GetMapping("/list") + public TableDataInfo list(TbFolderFileVo vo) { + startPage(); + List list = service.getFileFolderList(vo); + return getDataTable(list); + } + /** * 查询文档树 @@ -54,4 +69,7 @@ public class DocumentScreenController extends BaseController { public AjaxResult importFile(@RequestParam(value = "files",required = false) MultipartFile[] file, TbUserFiles vo) { return service.importFile(file,vo); } + + + } diff --git a/bonus-business/src/main/java/com/bonus/business/domain/DocumentTreeVo.java b/bonus-business/src/main/java/com/bonus/business/domain/DocumentTreeVo.java index 496ec36..a0a9fd6 100644 --- a/bonus-business/src/main/java/com/bonus/business/domain/DocumentTreeVo.java +++ b/bonus-business/src/main/java/com/bonus/business/domain/DocumentTreeVo.java @@ -34,6 +34,10 @@ public class DocumentTreeVo { * 是否是管理员 */ private String isAdmin; + /** + * 等级 + */ + private String level; /** * 权限 */ diff --git a/bonus-business/src/main/java/com/bonus/business/domain/TbDocumentFolder.java b/bonus-business/src/main/java/com/bonus/business/domain/TbDocumentFolder.java index 2974d3a..f4cb75c 100644 --- a/bonus-business/src/main/java/com/bonus/business/domain/TbDocumentFolder.java +++ b/bonus-business/src/main/java/com/bonus/business/domain/TbDocumentFolder.java @@ -68,6 +68,12 @@ public class TbDocumentFolder extends BaseEntity private String type; private String userId; + + private String sourceId; + /** + * 分享人id + */ + private String shareUserId; /** * 权限集合 */ diff --git a/bonus-business/src/main/java/com/bonus/business/domain/TbFolderFileVo.java b/bonus-business/src/main/java/com/bonus/business/domain/TbFolderFileVo.java new file mode 100644 index 0000000..890dd8d --- /dev/null +++ b/bonus-business/src/main/java/com/bonus/business/domain/TbFolderFileVo.java @@ -0,0 +1,60 @@ +package com.bonus.business.domain; + +import lombok.Data; + +/** + * + */ +@Data +public class TbFolderFileVo { + + private String parentId; + /** + * 主键 + */ + private String id; + /** + * 名称 + */ + private String name; + /** + * 文件类型 + */ + private String typeName; + /** + * 分类 + */ + private String type; + /** + * 标签名称 + */ + private String labName; + /** + * 创建人 + */ + private String createUser; + /** + * 创建时间 + */ + private String createTime; + /** + * 更新时间 + */ + private String updateTime; + /** + * 下载次数 + */ + private String downNum; + /** + * 阅读次数 + */ + private String readNum; + /** + * 文件路径 + */ + private String filePath; + /** + * 数据类型 1文件夹 2 文件 + */ + private String dataType; +} 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 203891a..006c80f 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 @@ -103,7 +103,45 @@ public interface DocumentScreenMapper { */ List getUserFileList(TbUserFiles vo); + /** + * 删除公司下文件 + * @param delete + */ void deleteCompanyFile(@Param("list") List delete); + /** + * 删除用户文件 + * @param delete + */ void deleteUserFile(@Param("list")List delete); + + /** + * 获取 公司文件夹下文件及 + * @param vo + * @return + */ + List getCompanyUserFileList(TbFolderFileVo vo); + + /** + * 个人 文件夹下 的文件夹及我呢见 + * @param vo + * @return + */ + List getMyUserFileList(TbFolderFileVo vo); + + + + /** + * 查询公共 + * @param vo + * @return + */ + List getPublicFolderList(DocumentTreeVo vo); + + /** + * 查询用户文件夹数据集合 + * @param vo + * @return + */ + List getUserFolderList(DocumentTreeVo vo); } diff --git a/bonus-business/src/main/java/com/bonus/business/service/DocumentScreenService.java b/bonus-business/src/main/java/com/bonus/business/service/DocumentScreenService.java index ca2aa59..9887c15 100644 --- a/bonus-business/src/main/java/com/bonus/business/service/DocumentScreenService.java +++ b/bonus-business/src/main/java/com/bonus/business/service/DocumentScreenService.java @@ -2,10 +2,13 @@ package com.bonus.business.service; import com.bonus.business.domain.DocumentTreeVo; import com.bonus.business.domain.TbDocumentFolder; +import com.bonus.business.domain.TbFolderFileVo; import com.bonus.business.domain.TbUserFiles; import com.bonus.common.core.domain.AjaxResult; import org.springframework.web.multipart.MultipartFile; +import java.util.List; + public interface DocumentScreenService { /** * 查询 文档中心 树 @@ -28,4 +31,12 @@ public interface DocumentScreenService { * @return */ AjaxResult importFile(MultipartFile[] file, TbUserFiles vo); + + /** + * 查询 文件及文件夹集合 + * @param vo + * @return + */ + + List getFileFolderList(TbFolderFileVo 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 9032e25..ddeff4b 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 @@ -15,6 +15,7 @@ import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; +import java.util.Collections; import java.util.List; @Slf4j @@ -32,6 +33,8 @@ public class DocumentScreenImpl implements DocumentScreenService { public String month=DateUtils.getCurrentMonth(); public String year=DateUtils.getCurrentYear(); + + public static String file_path="/"; /** * 查询文档中心树 * @param vo @@ -39,7 +42,7 @@ public class DocumentScreenImpl implements DocumentScreenService { */ @Override public AjaxResult getDocumentTree(DocumentTreeVo vo) { - List list=new ArrayList<>(); + try{ String userId= SecurityUtils.getUserId().toString(); vo.setUserId(userId); @@ -49,23 +52,17 @@ public class DocumentScreenImpl implements DocumentScreenService { //管理员 if(administrator || admin){ vo.setIsAdmin("1"); - }else{ - //查询共享文档 - //个人需要查询 - DocumentTreeVo shareDocument=getShareDocument(vo); - list.add(shareDocument); } - - //查询我的文档 - DocumentTreeVo myDocument=getMyChildList(vo); - list.add(myDocument); - //查询公共文档数据集合 - DocumentTreeVo companyList=getCompanyChildList(vo); - list.add(companyList); + List allList=mapper.getPublicFolderList(vo); + List childeList=mapper.getUserFolderList(vo); + //查询 子节点集合 + TreeBuild treeBuild = new TreeBuild(allList); + List list=treeBuild.buildTree("0"); + return AjaxResult.success(list); }catch (Exception e){ - log.error(e.getMessage()); + log.error(e.toString(),e); } - return AjaxResult.success(list); + return AjaxResult.success(new ArrayList<>()); } /** @@ -194,6 +191,31 @@ public class DocumentScreenImpl implements DocumentScreenService { } return AjaxResult.error("文件上传失败"); } + + /** + * + * @param vo + * @return + */ + @Override + public List getFileFolderList(TbFolderFileVo vo) { + try{ + // 文件夹类型 + String type=vo.getType(); + if("1".equals(type)){ + //公司文档 + return mapper.getCompanyUserFileList(vo); + }else if("2".equals(type)){ + //自己的文档 + return mapper.getMyUserFileList(vo); + } + + }catch (Exception e){ + log.error(e.getMessage()); + } + return Collections.emptyList(); + } + /** * 上传附件 * @param @@ -201,13 +223,13 @@ public class DocumentScreenImpl implements DocumentScreenService { */ public AjaxResult uploadFile(List multipartFileList,TbUserFiles files){ String type=files.getType(); - String filePath ; + String filePath="" ; if("1".equals(type)){ - filePath = "document/company/"+files.getUploadUser() + "/" + - year + "/" + month + "/" + day + "/" ; + filePath = "document/company/"+files.getUploadUser() +file_path + + year + file_path + month + file_path + day +file_path ; }else{ - filePath = "document/user/" + files.getUploadUser()+"/" + - year + "/" + month + "/" + day + "/" ; + filePath = "document/user/" + files.getUploadUser()+file_path + + year + file_path + month + file_path + day +file_path ; } String[] ids=files.getLabelIds().split(","); String[] name= files.getLabels().split(","); @@ -271,6 +293,7 @@ public class DocumentScreenImpl implements DocumentScreenService { DocumentTreeVo vo1=new DocumentTreeVo(); vo1.setId("share"); vo1.setParentId("0"); + vo1.setParentIds("0,"); vo1.setName("共享文档"); vo1.setType("3"); List list=getShareList(vo); @@ -289,6 +312,7 @@ public class DocumentScreenImpl implements DocumentScreenService { DocumentTreeVo vo1=new DocumentTreeVo(); vo1.setId("myShare"); vo1.setParentId("share"); + vo1.setParentIds("share"); vo1.setName("我共享的"); vo1.setType("31"); //我共享出去的文档查询 @@ -297,6 +321,7 @@ public class DocumentScreenImpl implements DocumentScreenService { DocumentTreeVo vo2=new DocumentTreeVo(); vo2.setId("otherShare"); vo2.setParentId("share"); + vo2.setParentIds("share"); vo2.setName("与我共享"); vo2.setType("32"); List childList2=getOtherShare(vo,allShareList); diff --git a/bonus-business/src/main/java/com/bonus/business/service/impl/DocumentServiceImpl.java b/bonus-business/src/main/java/com/bonus/business/service/impl/DocumentServiceImpl.java index b9eed56..ac6a0e3 100644 --- a/bonus-business/src/main/java/com/bonus/business/service/impl/DocumentServiceImpl.java +++ b/bonus-business/src/main/java/com/bonus/business/service/impl/DocumentServiceImpl.java @@ -61,17 +61,17 @@ public class DocumentServiceImpl implements DocumentService { return AjaxResult.error("文件夹名称已存在"); } //默认层级 - vo.setLevel(1); + vo.setLevel(2); vo.setParentId("companyDocument"); - vo.setParentIds("companyDocument,"); + vo.setParentIds(vo.getParentIds()+"companyDocument,"); vo.setCreateUser(SecurityUtils.getUserId().toString()); vo.setUpdateUser(SecurityUtils.getUserId().toString()); vo.setId(StringUtils.randomUUID()); + vo.setUserId(SecurityUtils.getUserId().toString()); int num =mapper.addDocument(vo); if(num<1){ return AjaxResult.error("文件夹创建失败"); } - return getAjaxResult(vo, userId); }catch (Exception e){ log.error(e.toString(),e); diff --git a/bonus-business/src/main/resources/mapper/business/DocumentMappper.xml b/bonus-business/src/main/resources/mapper/business/DocumentMappper.xml index 7368c9d..a1f546c 100644 --- a/bonus-business/src/main/resources/mapper/business/DocumentMappper.xml +++ b/bonus-business/src/main/resources/mapper/business/DocumentMappper.xml @@ -5,66 +5,64 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - insert into tb_document_folder(id, - level,folder_name,parent_id, create_time, create_user, update_time,update_user, file_type, del_flag,parent_ids - )values (#{id},#{level},#{folderName},#{parentId},now(),#{createUser},now(),#{updateUser},#{fileType},0,#{parentIds}) + insert into tb_public_folder( + id, level, folder_name, parent_id, file_type, + remark, parent_ids, down_times, see_times, + create_user, create_time, update_user, update_time, del_flag + )values (#{id},#{level},#{folderName},#{parentId},#{fileType},#{remark},#{parentIds},0,0, + #{createUser},now(),#{updateUser},now(),0) - insert into tb_document_folder(folder_id, user_id,folder_type, folder_source, folder_auth, is_share) value + insert into tb_document_folder(folder_id, user_id) value - #{id},#{item},0,4,2,0 + #{id},#{item} update tb_document_folder set - folder_name=#{folderName},update_time=#{updateTime} ,update_user=#{updateUser} + folder_name=#{folderName},update_time=#{updateTime} ,update_user=#{updateUser},remark=#{remark}, + file_type=#{fileType} where id=#{id} - delete from tb_document_folder_auth WHERE folder_id=#{id} + delete from tb_public_folder_auth WHERE folder_id=#{id} - update tb_document_folder set del_flag= where parent_ids like concat('%',#{parentIds},'%') + update tb_public_folder set del_flag=1 where id=#{id} - - update tb_document_files set del_flag= where parent_ids like concat('%',#{parentIds},'%') - - - select fdf.id id, fdf.parent_id parentId, fdf.parent_ids parentIds, fdf.folder_name name,1 type - from tb_document_folder fdf - - left join tb_document_folder_auth fdfa on fdfa.folder_id=fdf.id + - - - + + - select tdf.id ,tdf.folder_name name,'myShare' parentId,tdfa.is_share,1 type, - from tb_document_folder tdf - left join tb_document_folder_auth tdfa on tdf.id=tdfa.folder_id - where tdfa.is_share=1 -- 查询分项出去的 - and tdfa.user_id=#{userId} - union ALL - select tuf.id,tuf.folder_name,'myShare' parentId,tuf.is_share,2 type - from tb_user_folder tuf - where tuf.is_share=1 - and tuf.create_user=#{userId} -- 查询分项出去的 - - - - - \ No newline at end of file