diff --git a/backend/services/api-test/src/main/java/io/metersphere/api/service/scenario/ApiScenarioRunService.java b/backend/services/api-test/src/main/java/io/metersphere/api/service/scenario/ApiScenarioRunService.java index e6432756b4..2ddc963612 100644 --- a/backend/services/api-test/src/main/java/io/metersphere/api/service/scenario/ApiScenarioRunService.java +++ b/backend/services/api-test/src/main/java/io/metersphere/api/service/scenario/ApiScenarioRunService.java @@ -7,6 +7,9 @@ import io.metersphere.api.controller.result.ApiResultCode; import io.metersphere.api.domain.*; import io.metersphere.api.dto.*; import io.metersphere.api.dto.debug.ApiResourceRunRequest; +import io.metersphere.api.dto.definition.ApiModuleDTO; +import io.metersphere.api.dto.definition.EnvApiModuleRequest; +import io.metersphere.api.dto.definition.EnvApiTreeDTO; import io.metersphere.api.dto.request.MsScenario; import io.metersphere.api.dto.request.controller.MsScriptElement; import io.metersphere.api.dto.request.http.MsHTTPElement; @@ -937,16 +940,20 @@ public class ApiScenarioRunService { // 获取勾选了包含子模块的模块ID HttpConfigModuleMatchRule moduleMatchRule = httpConfig.getModuleMatchRule(); List selectModules = moduleMatchRule.getModules(); - List containChildModuleIds = selectModules.stream() - .filter(SelectModule::getContainChildModule) - .map(SelectModule::getModuleId) - .toList(); - // 查询子模块ID, 并去重 - Set moduleIds = apiDefinitionModuleService.getModuleIdsByParentIds(containChildModuleIds) - .stream() - .collect(Collectors.toSet()); - selectModules.forEach(selectModule -> moduleIds.add(selectModule.getModuleId())); + EnvApiModuleRequest envApiModuleRequest = new EnvApiModuleRequest(); + envApiModuleRequest.setProjectId(envInfoDTO.getProjectId()); + List apiModuleDTOS = selectModules.stream().map(selectModule -> { + ApiModuleDTO apiModuleDTO = new ApiModuleDTO(); + apiModuleDTO.setModuleId(selectModule.getModuleId()); + apiModuleDTO.setContainChildModule(selectModule.getContainChildModule()); + return apiModuleDTO; + }).toList(); + envApiModuleRequest.setSelectedModules(apiModuleDTOS); + EnvApiTreeDTO envApiTreeDTO = apiDefinitionModuleService.envTree(envApiModuleRequest); + List selectedModules = envApiTreeDTO.getSelectedModules(); + List moduleIds = selectedModules.stream().map(ApiModuleDTO::getModuleId).toList(); + // 重新设置选中的模块ID moduleMatchRule.setModules(null);