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 f6345554..8c99cce3 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 @@ -193,6 +193,8 @@ public class IndexManager { public Future asyncMove(String srcCode, @Nullable String destParentCode) { IndexNode srcNode = getOrThrow(srcCode); IndexNode destParentNode = determineDestParentNode(srcNode, destParentCode, "移动"); + if (destParentNode != null) + indexSupport.validateDepthWhenAddChild(destParentNode); return async(() -> transaction.execute(unused -> { docLogDao.log("indexNode:asyncMove", srcCode, "srcCode", srcCode, "destParentCode", destParentCode); if (docProps.isLockSubtreeWhenMove()) diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/index/IndexSupport.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/index/IndexSupport.java index c5f0cc93..9d124eba 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/index/IndexSupport.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/index/IndexSupport.java @@ -93,12 +93,16 @@ public class IndexSupport { "创建子节点时父子scope不匹配: {}", child.nodeScope().scope()); BizAssertions.assertEquals(parent.getScopeCode(), child.nodeScope().scopeCode(), // "创建子节点时父子scopeCode不匹配: {}", child.parentCode()); - BizAssertions.assertTrue( - indexNodeDao.validChildrenCount(parent.getCode()) < docProps.getIndexNodeMaxChildrenSize(), - "创建失败, 子节点数量不能超过 {}", docProps.getIndexNodeMaxChildrenSize()); + validateDepthWhenAddChild(parent); if (!parent.isRoot() && limitChildrenCount(child)) - BizAssertions.assertTrue(parent.path().depth() < docProps.getIndexNodeMaxDepth(), // - "节点深度超过限制{}, 无法再创建新节点", docProps.getIndexNodeMaxDepth()); + BizAssertions.assertTrue( + indexNodeDao.validChildrenCount(parent.getCode()) < docProps.getIndexNodeMaxChildrenSize(), + "创建失败, 子节点数量不能超过 {}", docProps.getIndexNodeMaxChildrenSize()); + } + + public void validateDepthWhenAddChild(IndexNode parent) { + BizAssertions.assertTrue(parent.path().depth() < docProps.getIndexNodeMaxDepth(), // + "节点深度超过限制{}, 无法再创建新节点", docProps.getIndexNodeMaxDepth()); } List collectValidSubtreeAsValueRoot(IndexNode srcNode) {