From 9daaeaa415d413bf5a5f6af1e93253e8bbf7f8cb Mon Sep 17 00:00:00 2001 From: haozq <1611483981@qq.com> Date: Mon, 3 Nov 2025 14:29:16 +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/DocumentController.java | 11 +- .../controller/DocumentScreenController.java | 25 +++- .../business/domain/TbDocumentFolder.java | 4 + .../bonus/business/domain/TbFolderFileVo.java | 38 +++++- .../bonus/business/mapper/DocumentMapper.java | 6 + .../business/mapper/DocumentScreenMapper.java | 28 ++++- .../service/DocumentScreenService.java | 14 +++ .../business/service/DocumentService.java | 6 + .../service/impl/DocumentScreenImpl.java | 113 +++++++++++++----- .../service/impl/DocumentServiceImpl.java | 15 +++ .../mapper/business/DocumentMappper.xml | 5 + .../mapper/business/DocumentScreenMapper.xml | 63 +++++++++- 12 files changed, 286 insertions(+), 42 deletions(-) diff --git a/bonus-business/src/main/java/com/bonus/business/controller/DocumentController.java b/bonus-business/src/main/java/com/bonus/business/controller/DocumentController.java index 18ee731..69aad3b 100644 --- a/bonus-business/src/main/java/com/bonus/business/controller/DocumentController.java +++ b/bonus-business/src/main/java/com/bonus/business/controller/DocumentController.java @@ -10,7 +10,6 @@ import com.bonus.common.core.page.TableDataInfo; import com.bonus.common.enums.BusinessType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -24,6 +23,16 @@ public class DocumentController extends BaseController { @Autowired private DocumentService service; + /** + * 分页查询标签列表 + * @param + * @return + */ + @GetMapping("/getUserList") + public AjaxResult getUserList() { + List list = service.getUserListData(); + return AjaxResult.success(list); + } /** * 分页查询标签列表 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 7978d9c..36f2f49 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 @@ -39,13 +39,14 @@ public class DocumentScreenController extends BaseController { } + /** * 查询文档树 * @param vo * @return */ @PostMapping("/getDocumentTree") - public AjaxResult getDocumentTree(DocumentTreeVo vo) { + public AjaxResult getDocumentTree(@RequestBody DocumentTreeVo vo) { return service.getDocumentTree(vo); } @@ -56,7 +57,7 @@ public class DocumentScreenController extends BaseController { * @return */ @PostMapping("/addDocument") - public AjaxResult addDocument(TbDocumentFolder vo) { + public AjaxResult addDocument(@RequestBody TbDocumentFolder vo) { return service.addDocument(vo); } @@ -71,5 +72,25 @@ public class DocumentScreenController extends BaseController { } + /** + * 新增文档 + * @param vo + * @return + */ + @PostMapping("/move") + public AjaxResult moveFile(@RequestBody TbFolderFileVo vo) { + return service.moveFile(vo); + } + + + /** + * 新增文档 + * @param vo + * @return + */ + @PostMapping("/delete") + public AjaxResult delete(@RequestBody TbFolderFileVo vo) { + return service.delete(vo); + } } 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 ffd0aed..bec1c9f 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 @@ -78,6 +78,10 @@ public class TbDocumentFolder extends BaseEntity * 文件路径 */ private String filePath; + /** + * 数据权限 + */ + private String auth; /** * 文件id */ 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 index 890dd8d..cfd6d26 100644 --- a/bonus-business/src/main/java/com/bonus/business/domain/TbFolderFileVo.java +++ b/bonus-business/src/main/java/com/bonus/business/domain/TbFolderFileVo.java @@ -7,7 +7,13 @@ import lombok.Data; */ @Data public class TbFolderFileVo { - + /** + * 新的夫节点id + */ + private String newParentId; + /** + * 夫节点id + */ private String parentId; /** * 主键 @@ -57,4 +63,34 @@ public class TbFolderFileVo { * 数据类型 1文件夹 2 文件 */ private String dataType; + + /** + * fileType 0文件夹 1文件 + */ + private String fileType; + + /** + * 公共文件夹id + */ + private String publicFolderId; + /** + * 用户id + */ + private String userId; + /** + * 文件夹id + */ + private String folderId; + /** + * 数据权限 + */ + private String auth; + + private String shareUserId; + + private String parentIds; + + + + } diff --git a/bonus-business/src/main/java/com/bonus/business/mapper/DocumentMapper.java b/bonus-business/src/main/java/com/bonus/business/mapper/DocumentMapper.java index efd5e0f..1a245a4 100644 --- a/bonus-business/src/main/java/com/bonus/business/mapper/DocumentMapper.java +++ b/bonus-business/src/main/java/com/bonus/business/mapper/DocumentMapper.java @@ -71,4 +71,10 @@ public interface DocumentMapper { * @param vo */ void delDocument(TbDocumentFolder vo); + + /** + * + * @return + */ + List getUserListData(); } 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 d1d4e67..c0dab40 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 @@ -9,9 +9,6 @@ import java.util.List; @Mapper public interface DocumentScreenMapper { - - - /** * 查询公共 * @param vo @@ -66,4 +63,29 @@ public interface DocumentScreenMapper { * @return */ List getFileFolderList(TbFolderFileVo vo); + + /** + * 新增文件标签 + * @param list + */ + void addDocumentLabels(@Param("list") List list); + + /** + * 查询关联节点数据 + * @param vo + * @return + */ + TbFolderFileVo getDocumentRealData(TbFolderFileVo vo); + + /** + * 删除关联数据 + * @param data + */ + void deleteDocumentReal(TbFolderFileVo data); + + /** + * + * @param vo + */ + void updateDocumentParentId(TbFolderFileVo 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 9887c15..f5c794e 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 @@ -39,4 +39,18 @@ public interface DocumentScreenService { */ List getFileFolderList(TbFolderFileVo vo); + + /** + * 移动文件或文件夹 + * @param vo + * @return + */ + AjaxResult moveFile(TbFolderFileVo vo); + + /** + * 删除文件及文件夹 + * @param vo + * @return + */ + AjaxResult delete(TbFolderFileVo vo); } diff --git a/bonus-business/src/main/java/com/bonus/business/service/DocumentService.java b/bonus-business/src/main/java/com/bonus/business/service/DocumentService.java index 283af8a..24d4360 100644 --- a/bonus-business/src/main/java/com/bonus/business/service/DocumentService.java +++ b/bonus-business/src/main/java/com/bonus/business/service/DocumentService.java @@ -33,4 +33,10 @@ public interface DocumentService { * @return */ AjaxResult delDocument(TbDocumentFolder vo); + + /** + * 查询用户数据集合 + * @return + */ + List getUserListData(); } 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 ed1414b..b334c2d 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 @@ -1,6 +1,5 @@ package com.bonus.business.service.impl; -import cn.hutool.db.handler.StringHandler; import com.bonus.business.domain.*; import com.bonus.business.mapper.DocumentScreenMapper; import com.bonus.business.service.DocumentScreenService; @@ -28,13 +27,13 @@ public class DocumentScreenImpl implements DocumentScreenService { @Autowired private FileUploadService service; - public String day= DateUtils.getCurrentDay(); + protected String day= DateUtils.getCurrentDay(); - public String month=DateUtils.getCurrentMonth(); + protected String month=DateUtils.getCurrentMonth(); - public String year=DateUtils.getCurrentYear(); + protected String year=DateUtils.getCurrentYear(); - public static String file_path="/"; + protected String separator="/"; /** * 查询文档中心树 * @param vo @@ -117,7 +116,7 @@ public class DocumentScreenImpl implements DocumentScreenService { return AjaxResult.success("添加成功"); }catch (Exception e){ - log.error(e.getMessage()); + log.error(e.toString(),e); } return AjaxResult.error("添加失败"); } @@ -131,7 +130,6 @@ public class DocumentScreenImpl implements DocumentScreenService { @Override public AjaxResult importFile(MultipartFile[] file, TbUserFiles vo) { try{ - String type=vo.getType(); if(file==null ||file.length==0){ return AjaxResult.error("请上传附件"); } @@ -141,7 +139,9 @@ public class DocumentScreenImpl implements DocumentScreenService { if(StringUtils.isEmpty(vo.getType())){ return AjaxResult.error("文件夹类型不能为空"); } - + if("2".equals(vo.getType())){ + vo.setId(vo.getId().split("_")[2]); + } vo.setUploadUser(SecurityUtils.getUserId().toString()); vo.setCreateUser(SecurityUtils.getUserId().toString()); String repeatType=vo.getRepeatType(); @@ -195,7 +195,7 @@ public class DocumentScreenImpl implements DocumentScreenService { } return AjaxResult.success("上传成功"); }catch (Exception e){ - log.error(e.getMessage()); + log.error(e.toString(),e); } return AjaxResult.error("文件上传失败"); } @@ -208,29 +208,77 @@ public class DocumentScreenImpl implements DocumentScreenService { @Override public List getFileFolderList(TbFolderFileVo vo) { try{ - List list=mapper.getFileFolderList(vo); - // 文件夹类型 - String type=vo.getType(); - if("1".equals(type)){ - //公司文档 公共的查询全部 - - - - }else { - - - - //自己的文档 - - } - + return list; }catch (Exception e){ - log.error(e.getMessage()); + log.error(e.toString(),e); } return Collections.emptyList(); } + /** + * 移动文件/文件夹 + * @param vo + * @return + */ + @Override + public AjaxResult moveFile(TbFolderFileVo vo) { + try{ + //父节点更新 + vo.setParentIds(vo.getParentIds().replace(","+vo.getParentId()+",",","+vo.getNewParentId()+",")); + String userId=SecurityUtils.getUserId().toString(); + vo.setUserId(userId); + if("1".equals(vo.getType())){ + return AjaxResult.success("当前文件件不允许移动"); + }else{ + // + vo.setId(vo.getId().split("_")[2]); + //如果是初始化节点 + if ("0".equals(vo.getParentId())) { + TbFolderFileVo data=mapper.getDocumentRealData(vo); + if("1".equals(data.getDataType())){ + return AjaxResult.success("共享及分享的文件夹不允许移动"); + } + mapper.deleteDocumentReal(data); + TbDocumentFolder documentFolder = getTbDocumentFolder(vo, data); + mapper.addDocumentRealUser(documentFolder); + }else{ + /** + * 更新夫节点id + */ + mapper.updateDocumentParentId(vo); + } + } + return AjaxResult.success("移动成功"); + }catch (Exception e){ + log.error(e.toString(),e); + } + + return AjaxResult.error("移动失败"); + } + + /** + * + * @param vo + * @return + */ + @Override + public AjaxResult delete(TbFolderFileVo vo) { + return null; + } + + private TbDocumentFolder getTbDocumentFolder(TbFolderFileVo vo, TbFolderFileVo data) { + TbDocumentFolder documentFolder=new TbDocumentFolder(); + documentFolder.setPublicFolderId(vo.getNewParentId()); + documentFolder.setAuthType(data.getAuth()); + documentFolder.setUserId(data.getUserId()); + documentFolder.setId(data.getFolderId()); + documentFolder.setAuth(data.getAuth()); + documentFolder.setShareUserId(data.getShareUserId()); + documentFolder.setDataType(data.getDataType()); + return documentFolder; + } + /** * 上传附件 * @param @@ -238,12 +286,13 @@ public class DocumentScreenImpl implements DocumentScreenService { */ public AjaxResult uploadFile(List multipartFileList,TbUserFiles files){ String type=files.getType(); - String filePath = "document/file/"+files.getUploadUser() +file_path + - year + file_path + month + file_path + day +file_path ; + String filePath = "document/file/"+files.getUploadUser() +separator + + year + separator + month + separator + day +separator ; TbDocumentFolder documentFolder=new TbDocumentFolder(); //文件类型 + String documentId=StringUtils.randomUUID(); documentFolder.setFileType("1"); - documentFolder.setId(StringUtils.randomUUID()); + documentFolder.setId(documentId); documentFolder.setPublicFolderId(documentFolder.getParentId()); if("1".equals(type)){ documentFolder.setParentId("0"); @@ -251,14 +300,13 @@ public class DocumentScreenImpl implements DocumentScreenService { documentFolder.setParentId(files.getParentId()); } documentFolder.setParentIds(documentFolder.getParentIds()+documentFolder.getParentId()+","); - // String[] ids=files.getLabelIds().split(","); String[] name= files.getLabels().split(","); List list=new ArrayList(); TbUserLabel vo=new TbUserLabel(); for (int i = 0; i getUserListData() { + try{ + return mapper.getUserListData(); + }catch (Exception e){ + log.error(e.toString(),e); + } + return new ArrayList<>(); + } + public AjaxResult getAjaxResult(TbDocumentFolder vo, String userId) { List ids= Arrays.asList(userId.split(",")); int addIds= mapper.addDocumentAuth(ids,vo.getId()); diff --git a/bonus-business/src/main/resources/mapper/business/DocumentMappper.xml b/bonus-business/src/main/resources/mapper/business/DocumentMappper.xml index a1f546c..aed93c0 100644 --- a/bonus-business/src/main/resources/mapper/business/DocumentMappper.xml +++ b/bonus-business/src/main/resources/mapper/business/DocumentMappper.xml @@ -68,4 +68,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + \ No newline at end of file diff --git a/bonus-business/src/main/resources/mapper/business/DocumentScreenMapper.xml b/bonus-business/src/main/resources/mapper/business/DocumentScreenMapper.xml index 9002073..d5a84db 100644 --- a/bonus-business/src/main/resources/mapper/business/DocumentScreenMapper.xml +++ b/bonus-business/src/main/resources/mapper/business/DocumentScreenMapper.xml @@ -13,13 +13,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{labels},#{createUser},now(),#{updateUser},now(),0 ) + + + update tb_user_document_folder set from del_flag=1 + where id in ( + + #{item.id} + + ) + + + delete from tb_public_real_user where public_folder_id=#{parentId} and user_id=#{userId} and user_folder_id=#{id} + + + insert into tb_document_files_label( file_id, label_id, label_name)values ( + + #{item.fileId},#{item.labelId},#{item.labelName} + + ) + replace into tb_public_real_user( public_folder_id, user_id, user_folder_id,auth, share_user_id, data_type )values (#{publicFolderId},#{userId},#{id},#{auth},#{shareUserId},#{dataType}) - - + + update tb_user_document_folder set from del_flag=1 where id in ( @@ -27,6 +46,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) + + update tb_user_document_folder set parent_id=#{parentId},parent_ids=#{parentIds} + where id=#{id} + + \ No newline at end of file