Merge remote-tracking branch 'origin/feature/REQ-3540' into feature/REQ-3540

This commit is contained in:
xudawei 2025-03-26 10:56:15 +08:00
commit 8d038eacc2

View File

@ -4,13 +4,16 @@ package cn.axzo.nanopart.doc.file.templatedb;
import java.util.List;
import java.util.concurrent.Future;
import cn.axzo.nanopart.doc.api.util.BizAssertions;
import org.springframework.web.bind.annotation.RestController;
import cn.axzo.basics.common.BeanMapper;
import cn.axzo.maokai.api.vo.response.tree.RootNode;
import cn.axzo.maokai.api.vo.response.tree.ValueNode;
import cn.axzo.maokai.api.vo.response.tree.ValueNodeRecursiveVisitor;
import cn.axzo.maokai.api.vo.response.tree.WalkingDecision;
import cn.axzo.nanopart.doc.api.domain.IndexNodeInfo;
import cn.axzo.nanopart.doc.api.domain.IndexNodeScope;
import cn.axzo.nanopart.doc.api.enums.IndexNodeType;
import cn.axzo.nanopart.doc.api.index.request.CopyNodeRequest;
import cn.axzo.nanopart.doc.api.index.request.DeleteNodeRequest;
import cn.axzo.nanopart.doc.api.index.request.IndexNodeSearchRequest;
@ -26,6 +29,7 @@ import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseSearchRequest
import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseUpdateDatabaseOrDirInfoRequest;
import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseUploadFileRequest;
import cn.axzo.nanopart.doc.api.templatedb.response.TemplateDatabaseGetDatabaseOrDirInfoResponse;
import cn.axzo.nanopart.doc.api.util.BizAssertions;
import cn.axzo.nanopart.doc.entity.IndexNode;
import cn.axzo.nanopart.doc.entity.TemplateDatabase;
import cn.axzo.nanopart.doc.file.index.IndexManager;
@ -110,11 +114,17 @@ public class TemplateDatabaseApiController implements TemplateDatabaseApi {
public CommonResponse<List<IndexNodeInfo>> getTree() {
List<IndexNode> subtreeNodes = indexQueryService.getTree(IndexNodeScope.TEMPLATE_DATABASE_ALL_SCOPES);
RootNode<IndexNodeInfo> root = indexNodeTreeUtils.transform(subtreeNodes);
if (root.hasChildren()) {
IndexNodeInfo db = root.getChildren().get(0).tryGetValue();
TemplateDatabase templateDatabase = templateDatabaseQueryService.getOrThrow(db.getCode());
db.setTemplateDatabaseInfo(templateDatabaseQueryService.toTemplateDatabaseInfo(templateDatabase));
}
root.walkDown(new ValueNodeRecursiveVisitor<IndexNodeInfo>() {
@Override
public WalkingDecision visit(ValueNode<IndexNodeInfo> node) {
IndexNodeInfo info = node.getValue();
if (info.getNodeType() == IndexNodeType.DATABASE) {
TemplateDatabase templateDatabase = templateDatabaseQueryService.getOrThrow(info.getCode());
info.setTemplateDatabaseInfo(templateDatabaseQueryService.toTemplateDatabaseInfo(templateDatabase));
}
return WalkingDecision.SKIP_CHILDREN;
}
});
return CommonResponse.success(indexNodeTreeUtils.valueRoots(root));
}