refactor(文件管理): 兼容历史数据处理

This commit is contained in:
fit2-zhao 2022-08-18 10:38:04 +08:00 committed by fit2-zhao
parent cd6226f842
commit a55f8b580d
4 changed files with 24 additions and 13 deletions

View File

@ -30,10 +30,12 @@
</foreach>
</when>
<when test="key=='moduleIds'">
and file_metadata.module_id in
and
( file_metadata.module_id in
<foreach collection="values" item="value" separator="," open="(" close=")">
#{value}
</foreach>
OR file_metadata.module_id is null)
</when>
</choose>
</if>

View File

@ -3,4 +3,5 @@ package io.metersphere.commons.constants;
public class ApiTestConstants {
public static final String JAR_PATH = "JAR_PATH";
public static final String DEF_MODULE = "DEF_MODULE";
public static final String DEF_MODULE_ID = "moduleIds";
}

View File

@ -1,6 +1,7 @@
package io.metersphere.metadata.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.nacos.common.utils.ByteUtils;
import io.metersphere.base.domain.*;
import io.metersphere.base.mapper.*;
import io.metersphere.base.mapper.ext.ExtFileMetadataMapper;
@ -190,7 +191,8 @@ public class FileMetadataService {
// 兼容历史数据
if (StringUtils.isEmpty(fileMetadata.getStorage()) && StringUtils.isEmpty(fileMetadata.getResourceType())) {
bytes = getContent(fileMetadata.getId());
} else {
}
if (ByteUtils.isEmpty(bytes)) {
FileRequest request = new FileRequest(fileMetadata.getProjectId(), fileMetadata.getName(), fileMetadata.getType());
request.setResourceType(fileMetadata.getResourceType());
request.setPath(fileMetadata.getPath());
@ -244,21 +246,20 @@ public class FileMetadataService {
public void update(FileMetadata fileMetadata) {
this.checkName(fileMetadata);
String beforeName = getBeforeName(fileMetadata);
if (!StringUtils.equalsIgnoreCase(beforeName, fileMetadata.getName())) {
if (!StringUtils.equalsIgnoreCase(beforeName, fileMetadata.getName())
&& StringUtils.isNotEmpty(fileMetadata.getStorage()) && StringUtils.isEmpty(fileMetadata.getResourceType())) {
boolean isReName = fileManagerService.reName(beforeName, fileMetadata.getName(), fileMetadata.getProjectId());
if (!isReName) {
MSException.throwException("重命名失败!");
}
}
if (fileMetadataMapper.selectByPrimaryKey(fileMetadata.getId()) != null) {
fileMetadata.setUpdateTime(System.currentTimeMillis());
fileMetadata.setUpdateUser(SessionUtils.getUserId());
// 历史数据的路径不做更新
if (StringUtils.isNotEmpty(fileMetadata.getStorage()) && StringUtils.isEmpty(fileMetadata.getResourceType())) {
fileMetadata.setPath(FileUtils.getFilePath(fileMetadata));
}
fileMetadataMapper.updateByPrimaryKeySelective(fileMetadata);
fileMetadata.setUpdateTime(System.currentTimeMillis());
fileMetadata.setUpdateUser(SessionUtils.getUserId());
// 历史数据的路径不做更新
if (StringUtils.isNotEmpty(fileMetadata.getStorage()) && StringUtils.isEmpty(fileMetadata.getResourceType())) {
fileMetadata.setPath(FileUtils.getFilePath(fileMetadata));
}
fileMetadataMapper.updateByPrimaryKeySelective(fileMetadata);
}
public FileMetadata reLoad(FileMetadata fileMetadata, List<MultipartFile> files) {
@ -277,8 +278,9 @@ public class FileMetadataService {
}
// 上传文件
FileRequest request = new FileRequest(fileMetadata.getProjectId(), fileMetadata.getName(), fileMetadata.getType());
fileManagerService.coverFile(files.get(0), request);
String path = fileManagerService.coverFile(files.get(0), request);
// 更新关系数据
fileMetadata.setPath(path);
fileMetadata.setUpdateTime(System.currentTimeMillis());
fileMetadata.setUpdateUser(SessionUtils.getUserId());
fileMetadataMapper.updateByPrimaryKeySelective(fileMetadata);

View File

@ -60,7 +60,12 @@ public class FileModuleService extends NodeTreeService<FileModuleVo> {
public List<FileModuleVo> getNodeTreeByProjectId(String projectId) {
// 判断当前项目下是否有默认模块没有添加默认模块
this.getDefaultNode(projectId);
FileModule defaultNode = this.getDefaultNode(projectId);
// 历史数据统计
FileMetadataExample example = new FileMetadataExample();
example.createCriteria().andProjectIdEqualTo(projectId).andModuleIdIsNull();
long defaultCount = fileMetadataMapper.countByExample(example);
List<FileModuleVo> modules = extFileModuleMapper.getNodeTreeByProjectId(projectId);
List<String> ids = modules.stream().map(FileModuleVo::getId).collect(Collectors.toList());
if (CollectionUtils.isEmpty(ids)) {
@ -80,6 +85,7 @@ public class FileModuleService extends NodeTreeService<FileModuleVo> {
countNum += moduleCountMap.get(moduleId).intValue();
}
}
countNum += defaultCount;
node.setCaseNum(countNum);
});
}