feat:(REQ-3540) 更新文件接口添加
This commit is contained in:
parent
a4c336b4cb
commit
5d03e66a00
@ -29,6 +29,8 @@ import cn.axzo.oss.http.model.ServerFileUploadResponse;
|
||||
import cn.axzo.oss.http.model.ServerFileUploadV2Request;
|
||||
import cn.axzo.oss.http.model.copyobject.ServerFileBatchCopyObjectRequest;
|
||||
import cn.axzo.oss.http.model.copyobject.ServerFileBatchCopyObjectResponse;
|
||||
import cn.axzo.oss.http.model.file.UpdateFileInfoRequest;
|
||||
import cn.axzo.oss.http.model.file.UpdateFileInfoResponse;
|
||||
import cn.axzo.oss.manager.api.dto.request.FileCopyObjectDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.FindFileKeyDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.FindFileUrlDto;
|
||||
@ -39,6 +41,7 @@ import cn.axzo.oss.manager.api.dto.request.ServerFileUploadByUrlDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.ServerFileUploadDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.SignUrlDownloadDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.SignUrlUploadDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.file.UpdateFileInfoDto;
|
||||
import cn.axzo.oss.manager.api.dto.response.FileCopyObjectResponse;
|
||||
import cn.axzo.oss.service.api.FileByUrlService;
|
||||
import cn.axzo.oss.service.api.FileCopyToDictService;
|
||||
@ -239,4 +242,12 @@ public class ServerFileController implements ServerFileServiceApi {
|
||||
List<FileCopyObjectResponse> fileCopyObjectResponses = fileService.batchCopyObject(fileCopyObjectDtos, request.getAppCode());
|
||||
return CommonResponse.success(ServerFileBatchCopyObjectResponse.builder().responses(BeanUtil.copyToList(fileCopyObjectResponses, ServerFileBatchCopyObjectResponse.ServerFileCopyObjectResponse.class)).build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新文件信息
|
||||
*/
|
||||
public CommonResponse<UpdateFileInfoResponse> updateFileInfo(@Valid @RequestBody UpdateFileInfoRequest request) {
|
||||
UpdateFileInfoDto updateFileInfoDto = BeanUtil.copyProperties(request, UpdateFileInfoDto.class);
|
||||
return CommonResponse.success(UpdateFileInfoResponse.builder().updateFlag(this.fileService.updateFileInfo(updateFileInfoDto)).build());
|
||||
}
|
||||
}
|
||||
|
||||
@ -32,4 +32,10 @@ public interface FileDao extends IService<File> {
|
||||
File getByUrlMd5(String urlMd5);
|
||||
|
||||
boolean deleteFile(String fileUuid);
|
||||
|
||||
/**
|
||||
* 更新文件
|
||||
* 目前只有文件名称更新,后续有其他属性可以添加
|
||||
*/
|
||||
boolean updateFileById(File file);
|
||||
}
|
||||
|
||||
@ -10,9 +10,11 @@ import cn.axzo.oss.dal.repository.FileDao;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.google.common.collect.Lists;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@ -75,4 +77,18 @@ public class FileDaoImpl extends ServiceImpl<FileMapper, File> implements FileDa
|
||||
.set(File::getStatus, FileStatusEnum.STATUS_DELETE.getCode())
|
||||
.set(File::getIsDelete, IsDeleteEnum.YES.getCode()).update();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新文件
|
||||
* 目前只有文件名称更新,后续有其他属性可以添加
|
||||
*/
|
||||
@Override
|
||||
public boolean updateFileById(File file) {
|
||||
if (Objects.isNull(file) || Objects.isNull(file.getId()) || StringUtils.isBlank(file.getFileUuid())) {
|
||||
return false;
|
||||
}
|
||||
return lambdaUpdate().eq(File::getId, file.getId())
|
||||
.set(StringUtils.isNotBlank(file.getFileName()), File::getFileName, file.getFileName())
|
||||
.update();
|
||||
}
|
||||
}
|
||||
|
||||
@ -24,6 +24,8 @@ import cn.axzo.oss.http.model.ServerFileUploadResponse;
|
||||
import cn.axzo.oss.http.model.ServerFileUploadV2Request;
|
||||
import cn.axzo.oss.http.model.copyobject.ServerFileBatchCopyObjectRequest;
|
||||
import cn.axzo.oss.http.model.copyobject.ServerFileBatchCopyObjectResponse;
|
||||
import cn.axzo.oss.http.model.file.UpdateFileInfoRequest;
|
||||
import cn.axzo.oss.http.model.file.UpdateFileInfoResponse;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
@ -143,4 +145,10 @@ public interface ServerFileServiceApi {
|
||||
@RequestMapping(value = "/api/server/batchCopyObject", method = RequestMethod.POST)
|
||||
CommonResponse<ServerFileBatchCopyObjectResponse> batchCopyObject(@Valid @RequestBody ServerFileBatchCopyObjectRequest request);
|
||||
|
||||
/**
|
||||
* 更新文件信息
|
||||
*/
|
||||
@RequestMapping(value = "/api/server/batchCopyObject", method = RequestMethod.POST)
|
||||
CommonResponse<UpdateFileInfoResponse> updateFileInfo(@Valid @RequestBody UpdateFileInfoRequest request);
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,44 @@
|
||||
package cn.axzo.oss.http.model.file;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 更新文件请求
|
||||
*
|
||||
* @author xudawei
|
||||
* @date 2025-03-12
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class UpdateFileInfoRequest {
|
||||
/**
|
||||
* 文件Id
|
||||
*/
|
||||
private Long fileId;
|
||||
/**
|
||||
* 文件fileKey
|
||||
*/
|
||||
private String fileKey;
|
||||
|
||||
/**
|
||||
* 需要更新属性
|
||||
*/
|
||||
private UpdateFileInfo updateFileInfo;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public static class UpdateFileInfo{
|
||||
/**
|
||||
* 文件名称
|
||||
*/
|
||||
private String fileName;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package cn.axzo.oss.http.model.file;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 文件更新返回
|
||||
*
|
||||
* @author xudawei
|
||||
* @date 2025-03-12
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class UpdateFileInfoResponse {
|
||||
|
||||
/**
|
||||
* 文件Id
|
||||
*/
|
||||
private boolean updateFlag;
|
||||
|
||||
}
|
||||
@ -0,0 +1,55 @@
|
||||
package cn.axzo.oss.manager.api.dto.request.file;
|
||||
|
||||
import cn.axzo.oss.dal.entity.File;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author xudawei@axzo.cn
|
||||
* @date 2025/3/12
|
||||
* @description 更新文件信息
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class UpdateFileInfoDto {
|
||||
|
||||
/**
|
||||
* 文件Id
|
||||
*/
|
||||
private Long fileId;
|
||||
/**
|
||||
* 文件fileKey
|
||||
*/
|
||||
private String fileKey;
|
||||
|
||||
/**
|
||||
* 需要更新属性
|
||||
*/
|
||||
private UpdateFileInfo updateFileInfo;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public static class UpdateFileInfo{
|
||||
/**
|
||||
* 文件名称
|
||||
*/
|
||||
private String fileName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建文件
|
||||
*/
|
||||
public static File create(Long id, UpdateFileInfo updateFileInfo){
|
||||
File file = new File();
|
||||
file.setId(id);
|
||||
file.setFileName(updateFileInfo.getFileName());
|
||||
return file;
|
||||
}
|
||||
|
||||
}
|
||||
@ -17,6 +17,7 @@ import cn.axzo.oss.manager.api.dto.request.ServerFileDownloadDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.ServerFileUploadDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.SignUrlDownloadDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.SignUrlUploadDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.file.UpdateFileInfoDto;
|
||||
import cn.axzo.oss.manager.api.dto.response.FileCopyObjectResponse;
|
||||
import cn.axzo.oss.manager.api.dto.response.FileInformationResponse;
|
||||
import cn.axzo.oss.manager.api.dto.response.FindFileKeyResponse;
|
||||
@ -126,4 +127,9 @@ public interface FileService {
|
||||
* 2 相同通道,则直接调用复制方法
|
||||
*/
|
||||
List<FileCopyObjectResponse> batchCopyObject(List<FileCopyObjectDto> dtoList, String appCode);
|
||||
|
||||
/**
|
||||
* 更新文件信息
|
||||
*/
|
||||
boolean updateFileInfo(UpdateFileInfoDto updateFileInfoDto);
|
||||
}
|
||||
|
||||
@ -47,6 +47,7 @@ import cn.axzo.oss.manager.api.dto.request.ServerFileDownloadDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.ServerFileUploadDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.SignUrlDownloadDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.SignUrlUploadDto;
|
||||
import cn.axzo.oss.manager.api.dto.request.file.UpdateFileInfoDto;
|
||||
import cn.axzo.oss.manager.api.dto.response.FileCopyObjectResponse;
|
||||
import cn.axzo.oss.manager.api.dto.response.FileInformationResponse;
|
||||
import cn.axzo.oss.manager.api.dto.response.FindFileKeyResponse;
|
||||
@ -1363,4 +1364,41 @@ public class FileServiceImpl implements FileService {
|
||||
return returnList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新文件信息
|
||||
*/
|
||||
@Override
|
||||
public boolean updateFileInfo(UpdateFileInfoDto updateFileInfoDto) {
|
||||
//构建需要更新的信息
|
||||
//1 fileId有值,则用fileId直接更新文件信息
|
||||
//2 fileId无值,fileKey有值,则用fileKey查询file信息
|
||||
File file = this.buildUpdateFileInfo(updateFileInfoDto);
|
||||
if (Objects.isNull(file)) {
|
||||
return false;
|
||||
}
|
||||
return this.fileDao.updateFileById(file);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建需要更新的信息
|
||||
* 1 fileId有值,则用fileId直接更新文件信息
|
||||
* 2 fileId无值,fileKey有值,则用fileKey查询file信息
|
||||
*/
|
||||
private File buildUpdateFileInfo(UpdateFileInfoDto updateFileInfoDto) {
|
||||
//fileId有值,则用fileId直接更新文件信息
|
||||
if (Objects.nonNull(updateFileInfoDto.getFileId())) {
|
||||
return UpdateFileInfoDto.create(updateFileInfoDto.getFileId(), updateFileInfoDto.getUpdateFileInfo());
|
||||
} else {
|
||||
//fileId无值,fileKey有值,则用fileKey查询file信息
|
||||
//根据查询file信息更新文件
|
||||
if (StringUtils.isNotBlank(updateFileInfoDto.getFileKey())) {
|
||||
File byFileUuid = this.fileDao.getByFileUuid(updateFileInfoDto.getFileKey());
|
||||
if (Objects.isNull(byFileUuid)) {
|
||||
return null;
|
||||
}
|
||||
return UpdateFileInfoDto.create(byFileUuid.getId(), updateFileInfoDto.getUpdateFileInfo());
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user