From 940986c75a744e85036766455833c1762ae46dc7 Mon Sep 17 00:00:00 2001 From: yanglin Date: Wed, 19 Mar 2025 19:24:26 +0800 Subject: [PATCH] =?UTF-8?q?REQ-3540:=20=E6=B7=BB=E5=8A=A0=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nanopart/doc/file/index/IndexManager.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/index/IndexManager.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/index/IndexManager.java index c71fb22c..734ea5d6 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/index/IndexManager.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/index/IndexManager.java @@ -163,8 +163,7 @@ public class IndexManager { IndexNode srcNode = getOrThrow(srcCode); BizAssertions.assertTrue(indexNodeDao.validSubtreeFileCount(srcNode) <= docProps.getIndexNodeMaxCopyFileSize(), "拷贝文件数超过限制: {}", docProps.getIndexNodeMaxCopyFileSize()); - IndexNode destParentNode = findOrNull(destParentCode); - checkBeforeMoveOrCopy(srcNode, destParentNode, "克隆"); + IndexNode destParentNode = determineDestParentNode(srcNode, destParentCode, "克隆"); return async(() -> { // don't inline in transaction CopyFileVisitor copyNodeVisitor = new CopyFileVisitor(copySubtreeOssFiles(srcNode)); @@ -178,8 +177,7 @@ public class IndexManager { */ public Future asyncMove(String srcCode, @Nullable String destParentCode) { IndexNode srcNode = getOrThrow(srcCode); - IndexNode destParentNode = StringUtils.isBlank(destParentCode) ? null : getOrThrow(destParentCode); - checkBeforeMoveOrCopy(srcNode, destParentNode, "移动"); + IndexNode destParentNode = determineDestParentNode(srcNode, destParentCode, "移动"); return async(() -> { RootNode moveRoot = TreeBuilder.build(collectValidSubtreeAsValueRoot(srcNode)); return transaction.execute(unused -> { @@ -189,12 +187,14 @@ public class IndexManager { }); } - private static void checkBeforeMoveOrCopy(IndexNode srcNode, IndexNode destParentNode, String op) { - if (destParentNode == null) - return; - BizAssertions.assertFalse(srcNode.isDirectory() && destParentNode.isFile(), "不能{}文件夹到文件下", op); - BizAssertions.assertFalse(srcNode.isSameNodeWith(destParentNode), "不能{}到同一节点下", op); - BizAssertions.assertFalse(srcNode.isParentOf(destParentNode), "不能{}到子节点下", op); + private IndexNode determineDestParentNode(IndexNode srcNode, String destParentCode, String op) { + IndexNode destParentNode = StringUtils.isBlank(destParentCode) ? null : getOrThrow(destParentCode); + if (destParentNode != null) { + BizAssertions.assertFalse(srcNode.isDirectory() && destParentNode.isFile(), "不能{}文件夹到文件下", op); + BizAssertions.assertFalse(srcNode.isSameNodeWith(destParentNode), "不能{}到同一节点下", op); + BizAssertions.assertFalse(srcNode.isParentOf(destParentNode), "不能{}到子节点下", op); + } + return destParentNode; } @BizTransactional