diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/anonymous/request/NodeCreateAnonymous.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/anonymous/request/NodeCreateAnonymous.java index abd284b7..4dcee41e 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/anonymous/request/NodeCreateAnonymous.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/anonymous/request/NodeCreateAnonymous.java @@ -44,6 +44,11 @@ abstract class NodeCreateAnonymous implements NodeCreate, IndexNodeScope { */ private Long operatorId; + /** + * 描述 + */ + private String description; + @Override public String biz() { return biz; @@ -64,6 +69,11 @@ abstract class NodeCreateAnonymous implements NodeCreate, IndexNodeScope { return operatorId; } + @Override + public String description() { + return description; + } + @Override public final IndexNodeScope nodeScope() { return this; diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/domain/DirectoryAttributes.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/domain/DirectoryAttributes.java index a8cbc7a5..6f981d7d 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/domain/DirectoryAttributes.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/domain/DirectoryAttributes.java @@ -11,9 +11,4 @@ import lombok.Setter; @Getter public class DirectoryAttributes { - /** - * 是否为资料库文件夹 - */ - private Boolean isTemplateDatabaseDir; - } diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/domain/IndexNodeAttributes.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/domain/IndexNodeAttributes.java index 388994a7..05e22110 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/domain/IndexNodeAttributes.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/domain/IndexNodeAttributes.java @@ -20,6 +20,11 @@ public class IndexNodeAttributes { */ private Boolean customIcon; + /** + * 是否资料库创建的节点 + */ + private Boolean templateDatabaseNode; + /** * 数据库属性 */ diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/templatedb/reqeust/NodeCreateTemplateDatabase.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/templatedb/reqeust/NodeCreateTemplateDatabase.java index 7e9098f7..15aa2b9a 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/templatedb/reqeust/NodeCreateTemplateDatabase.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/templatedb/reqeust/NodeCreateTemplateDatabase.java @@ -3,11 +3,13 @@ package cn.axzo.nanopart.doc.api.templatedb.reqeust; import javax.validation.constraints.NotBlank; +import org.apache.commons.lang3.StringUtils; + +import cn.axzo.nanopart.doc.api.domain.IndexNodeAttributes; import cn.axzo.nanopart.doc.api.domain.IndexNodeScope; import cn.axzo.nanopart.doc.api.domain.NodeCreate; import lombok.Getter; import lombok.Setter; -import org.apache.commons.lang3.StringUtils; /** * @author yanglin @@ -48,4 +50,11 @@ abstract class NodeCreateTemplateDatabase implements NodeCreate { public Long operatorId() { return operatorId; } + + @Override + public final IndexNodeAttributes attributes() { + IndexNodeAttributes attributes = IndexNodeAttributes.create(); + attributes.setTemplateDatabaseNode(true); + return attributes; + } } diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/templatedb/reqeust/TemplateDatabaseCreateDirRequest.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/templatedb/reqeust/TemplateDatabaseCreateDirRequest.java index 2ea43169..834ac1e4 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/templatedb/reqeust/TemplateDatabaseCreateDirRequest.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/templatedb/reqeust/TemplateDatabaseCreateDirRequest.java @@ -3,10 +3,10 @@ package cn.axzo.nanopart.doc.api.templatedb.reqeust; import javax.validation.constraints.NotBlank; -import com.alibaba.fastjson.JSON; import org.apache.commons.lang3.StringUtils; -import cn.axzo.nanopart.doc.api.domain.IndexNodeAttributes; +import com.alibaba.fastjson.JSON; + import lombok.Getter; import lombok.Setter; @@ -33,11 +33,6 @@ public class TemplateDatabaseCreateDirRequest extends NodeCreateTemplateDatabase */ private String icon; - /** - * 是否为自定义的图标 - */ - private boolean customIcon; - public String icon() { return StringUtils.isBlank(icon) ? "" : icon; } @@ -50,14 +45,6 @@ public class TemplateDatabaseCreateDirRequest extends NodeCreateTemplateDatabase return StringUtils.isBlank(description) ? "" : description; } - @Override - public IndexNodeAttributes attributes() { - IndexNodeAttributes attributes = IndexNodeAttributes.create(); - attributes.getOrCreateDirectoryAttributes().setIsTemplateDatabaseDir(true); - attributes.setCustomIcon(customIcon); - return attributes; - } - @Override public String toString() { return JSON.toJSONString(this); diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/config/DocProps.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/config/DocProps.java index 26a043cf..0ac88f81 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/config/DocProps.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/config/DocProps.java @@ -19,9 +19,9 @@ import lombok.Setter; @ConfigurationProperties(prefix = "doc") public class DocProps { - private String createFileWordOssFileKey = "ent-workspace-empty-docx"; - private String createFileExcelFileKey = "ent-workspace-empty-xlsx"; - private String createFilePptFileKey = "ent-workspace-empty-pptx"; + private String createFileOssFileKeyWord = "ent-workspace-empty-docx"; + private String createFileFileKeyExcel = "ent-workspace-empty-xlsx"; + private String createFileFileKeyPpt = "ent-workspace-empty-pptx"; private int indexNodeMaxChildrenSize = 200; private int indexNodeMaxDepth = 10; private int indexNodeMaxCopyFileSize = 1000; @@ -37,11 +37,11 @@ public class DocProps { public String createFileOssFileKey(FileFormat format) { if (format == FileFormat.WORD) - return createFileWordOssFileKey; + return createFileOssFileKeyWord; if (format == FileFormat.EXCEL) - return createFileExcelFileKey; + return createFileFileKeyExcel; if (format == FileFormat.PDF) - return createFilePptFileKey; + return createFileFileKeyPpt; return ""; } diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/anonymous/DocAnonymousDatabaseApiController.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/anonymous/DocAnonymousDatabaseApiController.java index bd531387..21e74a15 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/anonymous/DocAnonymousDatabaseApiController.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/anonymous/DocAnonymousDatabaseApiController.java @@ -26,16 +26,14 @@ public class DocAnonymousDatabaseApiController implements DocAnonymousDatabaseAp @Override public CommonResponse createDir(AnonymousCreateDirRequest request) { log.info("create dir request:{}", request); - IndexNode dirNode = indexManager.createDir(request); - return CommonResponse.success(dirNode.getCode()); + return CommonResponse.success(indexManager.createDir(request).getCode()); } @Override public CommonResponse createFile(AnonymousCreateFileRequest request) { log.info("create file request:{}", request); OssFile ossFile = indexManager.prepareEmptyOssFile(request, request.getFormat()); - IndexNode fileNode = indexManager.createFile(request, ossFile); - return CommonResponse.success(fileNode.getCode()); + return CommonResponse.success(indexManager.createFile(request, ossFile).getCode()); } } 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 c35f7301..90ae521a 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 @@ -81,11 +81,18 @@ public class IndexManager { BizAssertions.assertNotBlank(ossFile.getOssFileKey(), "oosFileKey不能为空"); BizAssertions.assertNotBlank(ossFile.getExtension(), "extension不能为空"); IndexNode fileNode = createFile(node, ossFile); - indexNodeDao.updateFileSize(fileNode.getCode(), ossFile.getSize()); - fileBroadcaster.fireFileSizeChanged(fileNode.getCode()); + updateFileSize(fileNode, ossFile.getSize()); return fileNode; } + @BizTransactional + public void updateFileSize(IndexNode fileNode, int size) { + if (fileNode == null || !fileNode.isFile()) + return; + indexNodeDao.updateFileSize(fileNode.getCode(), size); + fileBroadcaster.fireFileSizeChanged(fileNode.getCode()); + } + public IndexNode createFile(NodeCreate create, OssFile ossFile) { Ref deleteOssFile = Ref.create(false); try { @@ -182,11 +189,11 @@ public class IndexManager { IndexNode srcNode = getOrThrow(srcCode); IndexNode destParentNode = determineDestParentNode(srcNode, destParentCode, "移动"); return async(() -> transaction.execute(unused -> { + docLogDao.log("indexNode:asyncMove", srcCode, "srcCode", srcCode, "destParentCode", destParentCode); if (docProps.isLockSubtreeWhenMove()) indexSupport.lockSubtree(srcNode); List subtreeNodes = indexSupport.collectValidSubtreeAsValueRoot(srcNode); RootNode moveRoot = IndexNodeTreeUtils.build(subtreeNodes); - docLogDao.log("indexNode:asyncMove", srcCode, "srcCode", srcCode, "destParentCode", destParentCode); return connectNodes(moveRoot, destParentNode); })); } 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 9b8e89aa..a8f61524 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 @@ -132,6 +132,7 @@ public class IndexSupport { void ensureChildNameNotUsed(IndexNodeParentScope parentScope, IndexNodeType nodeType, String childName) { IndexNode child = indexNodeDao.findValidChildByName(parentScope, nodeType, childName); + // don't use BizAssertions.assertNull if (child != null) throw new NameUsedException("名称已被使用"); }