REQ-3540: 处理文件名冲突的情况

This commit is contained in:
yanglin 2025-03-31 18:14:37 +08:00
parent 942883652f
commit 8ce7fda35f

View File

@ -1,8 +1,18 @@
package cn.axzo.nanopart.doc.wps.wpsbase;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import com.google.common.collect.Lists;
import cn.axzo.basics.common.util.AssertUtil;
import cn.axzo.basics.profiles.dto.basic.PersonProfileDto;
import cn.axzo.nanopart.doc.api.enums.WpsErrorCodeEnum;
import cn.axzo.nanopart.doc.api.wps.exception.WpsException;
import cn.axzo.nanopart.doc.api.wps.request.WpsPermissionRequest;
import cn.axzo.nanopart.doc.api.wps.request.WpsRenameRequest;
import cn.axzo.nanopart.doc.api.wps.request.WpsUsersRequest;
@ -14,6 +24,8 @@ import cn.axzo.nanopart.doc.api.wps.response.WpsUsersResponse;
import cn.axzo.nanopart.doc.config.DocPermissionProps;
import cn.axzo.nanopart.doc.dao.IndexNodeDao;
import cn.axzo.nanopart.doc.entity.IndexNode;
import cn.axzo.nanopart.doc.file.index.IndexManager;
import cn.axzo.nanopart.doc.file.index.domain.NameUsedException;
import cn.axzo.nanopart.doc.integration.DocOssGateway;
import cn.axzo.nanopart.doc.integration.DocUserProfileGateway;
import cn.axzo.nanopart.doc.wps.support.WpsAssertUtil;
@ -23,14 +35,7 @@ import cn.axzo.oss.http.model.ApiSignUrlDownloadResponse;
import cn.axzo.oss.http.model.file.UpdateFileInfoRequest;
import cn.axzo.oss.http.model.file.UpdateFileInfoResponse;
import cn.hutool.core.collection.CollectionUtil;
import com.google.common.collect.Lists;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* wps对接基础信息
@ -41,6 +46,7 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor
public class WpsBaseManager {
private final IndexManager indexManager;
private final IndexNodeDao indexNodeDao;
private final DocOssGateway docOssGateway;
private final DocUserProfileGateway docUserProfileGateway;
@ -152,13 +158,11 @@ public class WpsBaseManager {
|| StringUtils.isBlank(node.getAttributes().getFileAttributes().getOssFileKey())) {
return WpsRenameResponse.builder().updateFlag(false).build();
}
//TODO: 文件名重复
//try {
// 调用IndexManager.rename();
//} catch (NameUsedException e) {
// // 处理文件已被使用的情况
//}
indexNodeDao.rename(request.getDocCode(), request.getName());
try {
indexManager.rename(node.getCode(), request.getName());
} catch (NameUsedException e) {
throw new WpsException(WpsErrorCodeEnum.FILE_NAME_CONFLICT);
}
UpdateFileInfoResponse response = this.docOssGateway.updateFileInfo(UpdateFileInfoRequest.builder().fileKey(node.getAttributes().getFileAttributes().getOssFileKey()).build());
return WpsRenameResponse.builder().updateFlag(response.isUpdateFlag()).build();
}