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

This commit is contained in:
yanglin 2025-03-21 14:54:02 +08:00
commit 283631f75b
2 changed files with 30 additions and 2 deletions

View File

@ -82,4 +82,9 @@ public class WpsEditUploadCompleteRequest {
* 获取上传地址时要求原样带回的额外参数
*/
private Map<String, String> sendBackParams;
/**
* 更新人
*/
private String modifierId;
}

View File

@ -4,6 +4,7 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import cn.axzo.nanopart.doc.api.domain.FileAttributes;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;
@ -17,6 +18,7 @@ import cn.axzo.nanopart.doc.api.wps.response.WpsEditUploadCompleteResponse;
import cn.axzo.nanopart.doc.api.wps.response.WpsEditUploadPrepareResponse;
import cn.axzo.nanopart.doc.config.DocProps;
import cn.axzo.nanopart.doc.dao.IndexNodeDao;
import cn.axzo.nanopart.doc.dao.TemplateDatabaseDao;
import cn.axzo.nanopart.doc.entity.IndexNode;
import cn.axzo.nanopart.doc.file.index.IndexManager;
import cn.axzo.nanopart.doc.file.mq.FileBroadcaster;
@ -25,6 +27,7 @@ import cn.axzo.oss.http.model.ApiSignUrlUploadRequest;
import cn.axzo.oss.http.model.ApiSignUrlUploadResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
/**
* 文档编辑
@ -40,6 +43,7 @@ import lombok.extern.slf4j.Slf4j;
public class WpsEditManager {
private final IndexManager indexManager;
private final TemplateDatabaseDao templateDatabaseDao;
private final IndexNodeDao indexNodeDao;
private final DocOssGateway docOssGateway;
private final FileBroadcaster fileBroadcaster;
@ -105,10 +109,14 @@ public class WpsEditManager {
* 3 上传完成后回调通知上传结果
* 说明WebOffice 在将新版本文件上传到指定地址后将会回调通知接入方
*/
@Transactional
public WpsEditUploadCompleteResponse uploadComplete(WpsEditUploadCompleteRequest request) {
log.info("wpsEditManager-uploadComplete-params,request:{}", request);
IndexNode node = indexNodeDao.findOrNull(request.getDocCode());
indexManager.updateFileSize(node, request.getSize());
//加锁
IndexNode node = indexNodeDao.getForUpdateOrThrow(request.getDocCode());
//当上传完成后更新文件基础信息
this.updateIndexNodeWhenUploadComplete(node, request);
return WpsEditUploadCompleteResponse.builder()
.docCode(request.getDocCode())
.name(node.getFullFileName())
@ -121,6 +129,21 @@ public class WpsEditManager {
.build();
}
/**
* 当上传完成后更新文件基础信息
*/
private void updateIndexNodeWhenUploadComplete(IndexNode node, WpsEditUploadCompleteRequest request) {
FileAttributes fileAttributes = node.getOrCreateFileAttributes();
if (StringUtils.isNotBlank(request.getModifierId())) {
fileAttributes.setModifierId(request.getModifierId());
}
fileAttributes.setVersion(fileAttributes.getVersion() + 1);
indexNodeDao.updateAttributes(node);
indexNodeDao.updateFileSize(request.getDocCode(), request.getSize());
fileBroadcaster.fireFileSizeChanged(request.getDocCode());
}
}