From 837d5e01a92ddc0d1ab5faf65045b0370e4622bf Mon Sep 17 00:00:00 2001 From: guoyuqi Date: Tue, 2 Aug 2022 13:29:17 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=8E=A5=E5=8F=A3=E6=B5=8B=E8=AF=95):=20?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=8E=A5=E5=8F=A3=E5=AF=BC=E5=85=A5=E8=A6=86?= =?UTF-8?q?=E7=9B=96=E6=A8=A1=E5=BC=8F=EF=BC=8C=E8=A2=AB=E8=A6=86=E7=9B=96?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=97=A0case=EF=BC=8C=E6=96=B0case=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E5=A4=B1=E8=B4=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --user=郭雨琦 --bug=1015475 https://www.tapd.cn/55049933/bugtrace/bugs/view/1155049933001015475 --- .../api/service/ApiModuleService.java | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/backend/src/main/java/io/metersphere/api/service/ApiModuleService.java b/backend/src/main/java/io/metersphere/api/service/ApiModuleService.java index f87787ad18..8ba28a69e0 100644 --- a/backend/src/main/java/io/metersphere/api/service/ApiModuleService.java +++ b/backend/src/main/java/io/metersphere/api/service/ApiModuleService.java @@ -856,7 +856,7 @@ public class ApiModuleService extends NodeTreeService { //不覆盖选择版本,如果被选版本有同接口,不导入,否则创建新版本接口 if (v.getVersionId().equals(versionId)) { optionData.remove(apiDefinitionWithBLOBs); - if (distinctNameCases != null && !distinctNameCases.isEmpty()) { + if (CollectionUtils.isNotEmpty(distinctNameCases)) { distinctNameCases.forEach(optionDataCases::remove); } } else { @@ -897,7 +897,7 @@ public class ApiModuleService extends NodeTreeService { //该接口的case Map caseNameMap = getDistinctCaseNameMap(definitionIdCaseMAp, apiDefinitionWithBLOBs); //组合case - if (caseNameMap != null) { + if (MapUtils.isNotEmpty(caseNameMap)) { buildCaseList(oldCaseMap, caseNameMap, v, optionDataCases); } updateEsb(esbApiParamsMap, v.getId(), apiDefinitionWithBLOBs.getId()); @@ -964,7 +964,7 @@ public class ApiModuleService extends NodeTreeService { //该接口的case Map caseNameMap = getDistinctCaseNameMap(definitionIdCaseMAp, apiDefinitionWithBLOBs); //组合case - if (caseNameMap != null) { + if (MapUtils.isNotEmpty(caseNameMap)) { buildCaseList(oldCaseMap, caseNameMap, v, optionDataCases); } updateEsb(esbApiParamsMap, v.getId(), apiDefinitionWithBLOBs.getId()); @@ -1055,7 +1055,7 @@ public class ApiModuleService extends NodeTreeService { List sameVersionList = v.stream().filter(t -> t.getVersionId().equals(versionId)).collect(Collectors.toList()); if (!sameVersionList.isEmpty()) { optionData.remove(apiDefinitionWithBLOBs); - if (distinctNameCases != null && !distinctNameCases.isEmpty()) { + if (CollectionUtils.isNotEmpty(distinctNameCases)) { distinctNameCases.forEach(optionDataCases::remove); } } else { @@ -1121,7 +1121,7 @@ public class ApiModuleService extends NodeTreeService { continue; } //组合case - if (caseNameMap != null) { + if (MapUtils.isNotEmpty(caseNameMap)) { buildCaseList(oldCaseMap, caseNameMap, definitionWithBLOBs, optionDataCases); } ApiDefinitionWithBLOBs api = new ApiDefinitionWithBLOBs(); @@ -1195,13 +1195,22 @@ public class ApiModuleService extends NodeTreeService { caseWithBLOBs1.setVersion(0); } }); + } else { + //否则直接给新增接口赋值新的接口ID + caseNameMap.forEach((name, caseWithBLOBs1) -> { + //如果导入的有重名,覆盖,接口ID替换成系统内的 + caseWithBLOBs1.setApiDefinitionId(definitionWithBLOBs.getId()); + }); } } private Map getDistinctCaseNameMap(Map> definitionIdCaseMAp, ApiDefinitionWithBLOBs apiDefinitionWithBLOBs) { + if (MapUtils.isEmpty(definitionIdCaseMAp)) { + return null; + } List caseWithBLOBs = definitionIdCaseMAp.get(apiDefinitionWithBLOBs.getId()); - if (caseWithBLOBs != null) { + if (CollectionUtils.isNotEmpty(caseWithBLOBs)) { return caseWithBLOBs.stream().filter(t -> !t.getVersionId().equals("create_repeat")).collect(Collectors.toMap(ApiTestCase::getName, testCase -> testCase)); } else { return null; @@ -1227,7 +1236,7 @@ public class ApiModuleService extends NodeTreeService { continue; } //组合case - if (caseNameMap != null) { + if (MapUtils.isNotEmpty(caseNameMap)) { buildCaseList(oldCaseMap, caseNameMap, definitionWithBLOBs, optionDataCases); } ApiDefinitionWithBLOBs api = new ApiDefinitionWithBLOBs();