From bbcc14e10617388fbbc5ff9fce7d8122bf7c4d83 Mon Sep 17 00:00:00 2001 From: song-tianyang Date: Fri, 21 Jan 2022 17:27:41 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E8=BD=AC=E6=80=A7=E8=83=BD=E6=B5=8B?= =?UTF-8?q?=E8=AF=95):=20=E4=BF=AE=E5=A4=8D=E8=BD=AC=E6=80=A7=E8=83=BD?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=97=B6=E9=99=84=E4=BB=B6=E5=AD=98=E5=85=A5?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E6=9C=AA=E4=BF=9D=E5=AD=98=E9=A1=B9?= =?UTF-8?q?=E7=9B=AEid=E5=AD=97=E6=AE=B5=E7=9A=84=E7=BC=BA=E9=99=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复转性能测试时附件存入数据库未保存项目id字段的缺陷 --- .../api/service/APITestService.java | 6 +++--- .../api/service/ApiAutomationService.java | 11 +++++----- .../io/metersphere/service/FileService.java | 20 +++++++++++++++++++ 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/backend/src/main/java/io/metersphere/api/service/APITestService.java b/backend/src/main/java/io/metersphere/api/service/APITestService.java index 6dcd8b7c06..e56496eb39 100644 --- a/backend/src/main/java/io/metersphere/api/service/APITestService.java +++ b/backend/src/main/java/io/metersphere/api/service/APITestService.java @@ -459,7 +459,7 @@ public class APITestService { * @return * @author song tianyang */ - public JmxInfoDTO updateJmxString(String jmx) { + public JmxInfoDTO updateJmxString(String jmx,String projectId) { jmx = this.updateJmxMessage(jmx); //获取要转化的文件 @@ -495,7 +495,7 @@ public class APITestService { File file = new File(filePath); if (file.exists() && file.isFile()) { try { - FileMetadata fileMetadata = fileService.saveFile(file, FileUtil.readAsByteArray(file)); + FileMetadata fileMetadata = fileService.saveFile(file, FileUtil.readAsByteArray(file),projectId); fileMetadataList.add(fileMetadata); attachmentFiles.put(fileMetadata.getId(), fileMetadata.getName()); } catch (Exception e) { @@ -623,7 +623,7 @@ public class APITestService { HashTree hashTree = runRequest.getTestElement().generateHashTree(config); String jmxString = runRequest.getTestElement().getJmx(hashTree); //将jmx处理封装为通用方法 - JmxInfoDTO dto = updateJmxString(jmxString); + JmxInfoDTO dto = updateJmxString(jmxString,runRequest.getProjectId()); dto.setName(runRequest.getName() + ".jmx"); return dto; } diff --git a/backend/src/main/java/io/metersphere/api/service/ApiAutomationService.java b/backend/src/main/java/io/metersphere/api/service/ApiAutomationService.java index e9688cdf02..4b7091c45b 100644 --- a/backend/src/main/java/io/metersphere/api/service/ApiAutomationService.java +++ b/backend/src/main/java/io/metersphere/api/service/ApiAutomationService.java @@ -1119,7 +1119,8 @@ public class ApiAutomationService { } MsTestPlan testPlan = new MsTestPlan(); testPlan.setHashTree(new LinkedList<>()); - JmxInfoDTO dto = apiTestService.updateJmxString(generateJmx(apiScenarios.get(0))); + ApiScenarioDTO scenario = apiScenarios.get(0); + JmxInfoDTO dto = apiTestService.updateJmxString(generateJmx(scenario), scenario.getProjectId()); String name = request.getName() + ".jmx"; dto.setName(name); @@ -1468,8 +1469,8 @@ public class ApiAutomationService { if (StringUtils.isNotEmpty(item.getScenarioDefinition())) { String jmx = generateJmx(item); if (StringUtils.isNotEmpty(jmx)) { - ApiScenrioExportJmx scenrioExportJmx = new ApiScenrioExportJmx(item.getName(), apiTestService.updateJmxString(jmx).getXml()); - JmxInfoDTO dto = apiTestService.updateJmxString(jmx); + ApiScenrioExportJmx scenrioExportJmx = new ApiScenrioExportJmx(item.getName(), apiTestService.updateJmxString(jmx,item.getProjectId()).getXml()); + JmxInfoDTO dto = apiTestService.updateJmxString(jmx, item.getProjectId()); scenrioExportJmx.setId(item.getId()); scenrioExportJmx.setVersion(item.getVersion()); //扫描需要哪些文件 @@ -1495,7 +1496,7 @@ public class ApiAutomationService { if (StringUtils.isNotEmpty(item.getScenarioDefinition())) { String jmx = generateJmx(item); if (StringUtils.isNotEmpty(jmx)) { - ApiScenrioExportJmx scenrioExportJmx = new ApiScenrioExportJmx(item.getName(), apiTestService.updateJmxString(jmx).getXml()); + ApiScenrioExportJmx scenrioExportJmx = new ApiScenrioExportJmx(item.getName(), apiTestService.updateJmxString(jmx, item.getProjectId()).getXml()); String fileName = item.getName() + ".jmx"; String jmxStr = scenrioExportJmx.getJmx(); files.put(fileName, jmxStr.getBytes(StandardCharsets.UTF_8)); @@ -1885,7 +1886,7 @@ public class ApiAutomationService { String testName = item.getName(); MsTestPlan testPlan = new MsTestPlan(); testPlan.setHashTree(new LinkedList<>()); - JmxInfoDTO dto = apiTestService.updateJmxString(generateJmx(item)); + JmxInfoDTO dto = apiTestService.updateJmxString(generateJmx(item),item.getProjectId()); String name = item.getName() + ".jmx"; dto.setId(item.getId()); dto.setName(name); diff --git a/backend/src/main/java/io/metersphere/service/FileService.java b/backend/src/main/java/io/metersphere/service/FileService.java index eda7701992..95957a861e 100644 --- a/backend/src/main/java/io/metersphere/service/FileService.java +++ b/backend/src/main/java/io/metersphere/service/FileService.java @@ -121,6 +121,26 @@ public class FileService { return fileMetadata; } + public FileMetadata saveFile(File file, byte[] fileByte, String projectId) { + final FileMetadata fileMetadata = new FileMetadata(); + fileMetadata.setId(UUID.randomUUID().toString()); + fileMetadata.setName(file.getName()); + fileMetadata.setSize(file.length()); + fileMetadata.setProjectId(projectId); + fileMetadata.setCreateTime(System.currentTimeMillis()); + fileMetadata.setUpdateTime(System.currentTimeMillis()); + FileType fileType = getFileType(fileMetadata.getName()); + fileMetadata.setType(fileType.name()); + fileMetadataMapper.insert(fileMetadata); + + FileContent fileContent = new FileContent(); + fileContent.setFileId(fileMetadata.getId()); + fileContent.setFile(fileByte); + fileContentMapper.insert(fileContent); + + return fileMetadata; + } + public FileMetadata saveFile(byte[] fileByte, String fileName, Long fileSize) { final FileMetadata fileMetadata = new FileMetadata(); fileMetadata.setId(UUID.randomUUID().toString());