REQ-3540: 添加校验

This commit is contained in:
yanglin 2025-03-19 19:21:23 +08:00
parent dafa096929
commit a5bf127774

View File

@ -164,8 +164,7 @@ public class IndexManager {
BizAssertions.assertTrue(indexNodeDao.validSubtreeFileCount(srcNode) <= docProps.getIndexNodeMaxCopyFileSize(),
"拷贝文件数超过限制: {}", docProps.getIndexNodeMaxCopyFileSize());
IndexNode destParentNode = findOrNull(destParentCode);
if (destParentNode != null)
checkBeforeMoveOrCopy(srcNode, destParentNode, "克隆");
checkBeforeMoveOrCopy(srcNode, destParentNode, "克隆");
return async(() -> {
// don't inline in transaction
CopyFileVisitor copyNodeVisitor = new CopyFileVisitor(copySubtreeOssFiles(srcNode));
@ -180,8 +179,7 @@ public class IndexManager {
public Future<IndexNode> asyncMove(String srcCode, @Nullable String destParentCode) {
IndexNode srcNode = getOrThrow(srcCode);
IndexNode destParentNode = StringUtils.isBlank(destParentCode) ? null : getOrThrow(destParentCode);
if (destParentNode != null)
checkBeforeMoveOrCopy(srcNode, destParentNode, "移动");
checkBeforeMoveOrCopy(srcNode, destParentNode, "移动");
return async(() -> {
RootNode<IndexNode> moveRoot = TreeBuilder.build(collectValidSubtreeAsValueRoot(srcNode));
return transaction.execute(unused -> {
@ -192,6 +190,8 @@ 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);