REQ-3540: 更新文件大小

This commit is contained in:
yanglin 2025-03-21 15:23:38 +08:00
parent b6b291409b
commit ab7ca307a5
5 changed files with 11 additions and 11 deletions

View File

@ -45,7 +45,7 @@ import cn.axzo.nanopart.doc.entity.IndexNode;
import cn.axzo.nanopart.doc.entity.TemplateDatabase;
import cn.axzo.nanopart.doc.file.index.IndexManager;
import cn.axzo.nanopart.doc.file.index.IndexQueryService;
import cn.axzo.nanopart.doc.file.index.copy.CopiedOssFiles;
import cn.axzo.nanopart.doc.file.index.copy.OssFilesCopy;
import cn.axzo.nanopart.doc.file.index.copy.SetScopeCopyFileVisitor;
import cn.axzo.nanopart.doc.file.index.domain.IndexNodes;
import cn.axzo.nanopart.doc.file.templatedb.TemplateDatabaseQueryService;
@ -123,12 +123,12 @@ public class FileDatabaseService {
private Future<?> asyncCopySubtree(FileDatabase db, IndexNode templateRoot, @Nullable Runnable postProcessor) {
return indexManager.async(() -> {
// don't inline in transaction
CopiedOssFiles copiedOssFiles = indexManager.copySubtreeOssFiles(templateRoot);
OssFilesCopy filesCopy = indexManager.copySubtreeOssFiles(templateRoot);
transaction.executeWithoutResult(unused -> {
FileDatabase reload = fileDatabaseDao.getForUpdateOrThrow(db.getCode());
if (reload.isActivated())
return;
indexManager.copySubTree(templateRoot, null, new SetScopeCopyFileVisitor(copiedOssFiles, db));
indexManager.copySubTree(templateRoot, null, new SetScopeCopyFileVisitor(filesCopy, db));
fileDatabaseDao.updateState(db.getCode(), FileDatabaseState.ACTIVATED);
fileDatabaseDao.setPurchaseTime(db.getCode(), new Date());
if (postProcessor != null)

View File

@ -25,7 +25,7 @@ import cn.axzo.nanopart.doc.dao.DocLogDao;
import cn.axzo.nanopart.doc.dao.IndexNodeDao;
import cn.axzo.nanopart.doc.entity.IndexNode;
import cn.axzo.nanopart.doc.file.index.copy.ConnectNodeVisitor;
import cn.axzo.nanopart.doc.file.index.copy.CopiedOssFiles;
import cn.axzo.nanopart.doc.file.index.copy.OssFilesCopy;
import cn.axzo.nanopart.doc.file.index.copy.CopyFileVisitor;
import cn.axzo.nanopart.doc.file.index.copy.CopyNodeVisitor;
import cn.axzo.nanopart.doc.file.index.domain.NameUsedException;
@ -157,10 +157,10 @@ public class IndexManager {
return subtree;
}
public CopiedOssFiles copySubtreeOssFiles(IndexNode srcNode) {
public OssFilesCopy copySubtreeOssFiles(IndexNode srcNode) {
BizAssertions.assertFalse(TransactionSynchronizationManager.isActualTransactionActive(), "不能在事务中使用");
List<String> ossFileKeys = indexNodeDao.collectValidSubtreeFileOssKeys(srcNode);
return new CopiedOssFiles(ossClient.copy(ossFileKeys));
return new OssFilesCopy(ossClient.copy(ossFileKeys));
}
/**

View File

@ -13,14 +13,14 @@ import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
public class CopyFileVisitor extends CopyNodeVisitor {
private final CopiedOssFiles copiedOssFiles;
private final OssFilesCopy ossFilesCopy;
@Override
public WalkingDecision visit(ValueNode<IndexNode> node) {
IndexNode copy = node.getValue();
if (copy.isFile()) {
FileAttributes fileAttributes = copy.getOrCreateFileAttributes();
String newOssFileKey = copiedOssFiles.getCopyOssFileKey(fileAttributes.getOssFileKey());
String newOssFileKey = ossFilesCopy.getCopyOssFileKey(fileAttributes.getOssFileKey());
fileAttributes.setOssFileKey(newOssFileKey);
}
return super.visit(node);

View File

@ -9,7 +9,7 @@ import lombok.RequiredArgsConstructor;
* @author yanglin
*/
@RequiredArgsConstructor
public class CopiedOssFiles {
public class OssFilesCopy {
private final Map<String, String> old2newOssFileKey;

View File

@ -13,8 +13,8 @@ public class SetScopeCopyFileVisitor extends CopyFileVisitor {
private final IndexNodeScope nodeScope;
public SetScopeCopyFileVisitor(CopiedOssFiles copiedOssFiles, IndexNodeScope nodeScope) {
super(copiedOssFiles);
public SetScopeCopyFileVisitor(OssFilesCopy ossFilesCopy, IndexNodeScope nodeScope) {
super(ossFilesCopy);
this.nodeScope = nodeScope;
}