From 62e613128e98edf7ad1013a3964a4582bffe67b9 Mon Sep 17 00:00:00 2001 From: lihongjie0209 Date: Wed, 10 Jan 2024 10:40:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=87=8D=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../netDisk/controller/NetDiskController.java | 14 ++++++++ .../coal/netDisk/service/NetDiskService.java | 33 ++++++++++++++----- 2 files changed, 39 insertions(+), 8 deletions(-) diff --git a/src/main/java/cn/lihongjie/coal/netDisk/controller/NetDiskController.java b/src/main/java/cn/lihongjie/coal/netDisk/controller/NetDiskController.java index 5d992740..b6e16760 100644 --- a/src/main/java/cn/lihongjie/coal/netDisk/controller/NetDiskController.java +++ b/src/main/java/cn/lihongjie/coal/netDisk/controller/NetDiskController.java @@ -139,6 +139,20 @@ public class NetDiskController { return this.service.preCreateFile(request); } + /** + * 重命名 + * + * @param request + * @return + */ + @PostMapping("/rename") + @SysLog(action = "rename") + public Boolean rename(@RequestBody UpdateNetDiskDto request) { + + this.service.rename(request); + return true; + } + /** * 创建文件分片 * diff --git a/src/main/java/cn/lihongjie/coal/netDisk/service/NetDiskService.java b/src/main/java/cn/lihongjie/coal/netDisk/service/NetDiskService.java index b93da20f..fe4e9388 100644 --- a/src/main/java/cn/lihongjie/coal/netDisk/service/NetDiskService.java +++ b/src/main/java/cn/lihongjie/coal/netDisk/service/NetDiskService.java @@ -596,13 +596,13 @@ public class NetDiskService extends BaseService { -// if (x.getId().equals(src.getId())) { -// throw new BizException("不能复制到自己的子目录"); -// } -// }); + // TreeUtils.allChildren(src, NetDiskEntity::getChildren) + // .forEach( + // x -> { + // if (x.getId().equals(src.getId())) { + // throw new BizException("不能复制到自己的子目录"); + // } + // }); if (!target.getEntryType().equals("0")) { throw new BizException("只能复制到目录"); @@ -888,7 +888,24 @@ public class NetDiskService extends BaseService ans = this.repository.idToPath2(id); - List allById = this.repository.findAllById(ans).stream().sorted( Comparator.comparing(x -> ans.indexOf(x.getId()))).collect(Collectors.toList()); + List allById = + this.repository.findAllById(ans).stream() + .sorted(Comparator.comparing(x -> ans.indexOf(x.getId()))) + .collect(Collectors.toList()); return this.mapper.toDto(allById); } + + public void rename(UpdateNetDiskDto dto) { + + NetDiskEntity entity = get(dto.getId()); + + if (entity.getParent() != null) { + if (entity.getParent().getChildren().stream() + .anyMatch(x -> x.getId() != dto.getId() && x.getName().equals(dto.getName()))) { + throw new BizException("目录已经存在同名文件/文件夹"); + } + } + entity.setName(dto.getName()); + save(entity); + } }