From 040a3d264fe5900caab50f2003dd1cb8252e58dc Mon Sep 17 00:00:00 2001 From: fit2-zhao Date: Wed, 16 Aug 2023 14:06:28 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E6=8E=A5=E5=8F=A3=E6=B5=8B=E8=AF=95):?= =?UTF-8?q?=20=E6=89=B9=E9=87=8F=E6=89=A7=E8=A1=8C=E5=9C=BA=E6=99=AF?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=B7=A8=E9=A1=B9=E7=9B=AE=E9=80=89=E7=8E=AF?= =?UTF-8?q?=E5=A2=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --bug=1028821 --user=赵勇 【接口测试】场景详情含跨项目复制和引用场景、case、api-未选择当前项目和更多项目环境-场景列表批量执行-只显示当前项目 https://www.tapd.cn/55049933/s/1404474 Signed-off-by: fit2-zhao --- .../service/scenario/ApiScenarioService.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/api-test/backend/src/main/java/io/metersphere/service/scenario/ApiScenarioService.java b/api-test/backend/src/main/java/io/metersphere/service/scenario/ApiScenarioService.java index 2e70ddade4..9f4659c9d7 100644 --- a/api-test/backend/src/main/java/io/metersphere/service/scenario/ApiScenarioService.java +++ b/api-test/backend/src/main/java/io/metersphere/service/scenario/ApiScenarioService.java @@ -2350,9 +2350,8 @@ public class ApiScenarioService { public Map> getProjectEnvMap(RunScenarioRequest request) { ServiceUtils.getSelectAllIds(request, request.getCondition(), (query) -> extApiScenarioMapper.selectIdsByQuery(query)); - List ids = request.getIds(); ApiScenarioExample example = new ApiScenarioExample(); - example.createCriteria().andIdIn(ids); + example.createCriteria().andIdIn(request.getIds()); List apiScenarios = apiScenarioMapper.selectByExampleWithBLOBs(example); Map> projectEnvMap = new HashMap<>(); apiScenarios.forEach(item -> { @@ -2360,8 +2359,7 @@ public class ApiScenarioService { JSONObject jsonObject = JSONUtil.parseObject(item.getEnvironmentJson()); Map projectIdEnvMap = jsonObject.toMap(); if (MapUtils.isNotEmpty(projectIdEnvMap)) { - Set projectIds = projectIdEnvMap.keySet(); - projectIds.forEach(t -> { + projectIdEnvMap.keySet().forEach(t -> { List envIds = projectEnvMap.get(t); if (CollectionUtils.isNotEmpty(envIds)) { if (!envIds.contains(projectIdEnvMap.get(t).toString())) { @@ -2376,6 +2374,13 @@ public class ApiScenarioService { }); } } + // 未选择环境的项目 + List scenarioProjectIds = ElementUtil.getProjectIds(item.getScenarioDefinition()); + scenarioProjectIds.forEach(id -> { + if (!projectEnvMap.containsKey(id)) { + projectEnvMap.put(id, new ArrayList<>()); + } + }); }); return projectEnvMap; }