REQ-3540: 更新文件大小
This commit is contained in:
parent
b6b291409b
commit
ab7ca307a5
@ -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)
|
||||
|
||||
@ -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));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -9,7 +9,7 @@ import lombok.RequiredArgsConstructor;
|
||||
* @author yanglin
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
public class CopiedOssFiles {
|
||||
public class OssFilesCopy {
|
||||
|
||||
private final Map<String, String> old2newOssFileKey;
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user