feat: (REQ-3540) 文档编辑modityId优化

This commit is contained in:
xudawei 2025-03-21 14:45:46 +08:00
parent 381eda12c7
commit 7cb90a28c0
2 changed files with 28 additions and 3 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;
@ -26,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;
/**
* 文档编辑
@ -107,11 +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());
indexNodeDao.updateFileSize(request.getDocCode(), request.getSize());
fileBroadcaster.fireFileSizeChanged(request.getDocCode());
//加锁
IndexNode node = indexNodeDao.getForUpdateOrThrow(request.getDocCode());
//当上传完成后更新文件基础信息
this.updateIndexNodeWhenUploadComplete(node, request);
return WpsEditUploadCompleteResponse.builder()
.docCode(request.getDocCode())
.name(node.getFullFileName())
@ -124,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());
}
}