diff --git a/src/main/java/neatlogic/module/deploy/api/pipeline/ListPipelineAppSystemModuleEnvScenarioApi.java b/src/main/java/neatlogic/module/deploy/api/pipeline/ListPipelineAppSystemModuleEnvScenarioApi.java index b5a893cf896c762387c478029d8ab2b5be0b88db..25f21e20fa4f48948884dae2422a053e9ddc6b79 100644 --- a/src/main/java/neatlogic/module/deploy/api/pipeline/ListPipelineAppSystemModuleEnvScenarioApi.java +++ b/src/main/java/neatlogic/module/deploy/api/pipeline/ListPipelineAppSystemModuleEnvScenarioApi.java @@ -21,6 +21,7 @@ import neatlogic.framework.common.constvalue.ApiParamType; import neatlogic.framework.deploy.auth.DEPLOY_BASE; import neatlogic.framework.deploy.dto.app.DeployPipelineConfigVo; import neatlogic.framework.deploy.dto.pipeline.*; +import neatlogic.framework.deploy.exception.DeployPipelineNotFoundException; import neatlogic.framework.restful.annotation.*; import neatlogic.framework.restful.constvalue.OperationTypeEnum; import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; @@ -60,50 +61,72 @@ public class ListPipelineAppSystemModuleEnvScenarioApi extends PrivateApiCompone @Description(desc = "获取超级流水线应用模块环境列表接口") @Override public Object myDoService(JSONObject jsonObj) throws Exception { - PipelineVo pipelineVo = deployPipelineMapper.getPipelineById(jsonObj.getLong("id")); - JobTemplateList jobTemplateList = new JobTemplateList(); - Map envPipelineMap = new HashMap<>(); + Long id = jsonObj.getLong("id"); + PipelineVo pipelineVo = deployPipelineMapper.getPipelineById(id); + if (pipelineVo == null) { + throw new DeployPipelineNotFoundException(id); + } + List jobTemplateList = new ArrayList<>(); + Map envPipelineMap = new HashMap<>(); if (CollectionUtils.isNotEmpty(pipelineVo.getLaneList())) { for (PipelineLaneVo laneVo : pipelineVo.getLaneList()) { if (CollectionUtils.isNotEmpty(laneVo.getGroupList())) { for (PipelineGroupVo groupVo : laneVo.getGroupList()) { if (CollectionUtils.isNotEmpty(groupVo.getJobTemplateList())) { for (PipelineJobTemplateVo jobTemplateVo : groupVo.getJobTemplateList()) { - jobTemplateList.add(jobTemplateVo, envPipelineMap); + // 根据应用和模块合并环境和场景,用于前端展示 + PipelineEnvScenarioVo envScenarioVo = new PipelineEnvScenarioVo(); + envScenarioVo.setEnvId(jobTemplateVo.getEnvId()); + envScenarioVo.setEnvName(jobTemplateVo.getEnvName()); + envScenarioVo.setScenarioId(jobTemplateVo.getScenarioId()); + envScenarioVo.setScenarioName(jobTemplateVo.getScenarioName()); + Optional op = jobTemplateList.stream().filter(d -> d.getAppSystemId().equals(jobTemplateVo.getAppSystemId()) + && d.getAppModuleId().equals(jobTemplateVo.getAppModuleId()) + ).findFirst(); + if (op.isPresent()) { + PipelineJobTemplateVo existsJobVo = op.get(); + existsJobVo.addEnvScenario(envScenarioVo); + existsJobVo.setScenarioId(envScenarioVo.getScenarioId()); + DeployPipelineConfigManager.setIsJobTemplateVoHasBuildDeployType(existsJobVo, envPipelineMap); + } else { + jobTemplateVo.addEnvScenario(envScenarioVo); + DeployPipelineConfigManager.setIsJobTemplateVoHasBuildDeployType(jobTemplateVo, envPipelineMap); + jobTemplateList.add(jobTemplateVo); + } } } } } } } - return jobTemplateList.get(); + return jobTemplateList; } - static class JobTemplateList { - List jobTemplateList = new ArrayList<>(); - - public void add(PipelineJobTemplateVo jobTemplateVo, Map envPipelineMap) { - PipelineJobTemplateVo existsJobVo = null; - Optional op = jobTemplateList.stream().filter(d -> d.getAppSystemId().equals(jobTemplateVo.getAppSystemId()) - && d.getAppModuleId().equals(jobTemplateVo.getAppModuleId()) - ).findFirst(); - existsJobVo = op.orElse(jobTemplateVo); - PipelineEnvScenarioVo envScenarioVo = new PipelineEnvScenarioVo(); - envScenarioVo.setEnvId(jobTemplateVo.getEnvId()); - envScenarioVo.setEnvName(jobTemplateVo.getEnvName()); - envScenarioVo.setScenarioId(jobTemplateVo.getScenarioId()); - envScenarioVo.setScenarioName(jobTemplateVo.getScenarioName()); - existsJobVo.addEnvScenario(envScenarioVo); - existsJobVo.setScenarioId(envScenarioVo.getScenarioId()); - DeployPipelineConfigManager.setIsJobTemplateVoHasBuildDeployType(existsJobVo, envPipelineMap); - if (!op.isPresent()) { - jobTemplateList.add(existsJobVo); - } - } - - public List get() { - return this.jobTemplateList; - } - } +// static class JobTemplateList { +// List jobTemplateList = new ArrayList<>(); +// +// public void add(PipelineJobTemplateVo jobTemplateVo, Map envPipelineMap) { +// PipelineJobTemplateVo existsJobVo = null; +// Optional op = jobTemplateList.stream().filter(d -> d.getAppSystemId().equals(jobTemplateVo.getAppSystemId()) +// && d.getAppModuleId().equals(jobTemplateVo.getAppModuleId()) +// ).findFirst(); +// existsJobVo = op.orElse(jobTemplateVo); +// PipelineEnvScenarioVo envScenarioVo = new PipelineEnvScenarioVo(); +// envScenarioVo.setEnvId(jobTemplateVo.getEnvId()); +// envScenarioVo.setEnvName(jobTemplateVo.getEnvName()); +// envScenarioVo.setScenarioId(jobTemplateVo.getScenarioId()); +// envScenarioVo.setScenarioName(jobTemplateVo.getScenarioName()); +// existsJobVo.addEnvScenario(envScenarioVo); +// existsJobVo.setScenarioId(envScenarioVo.getScenarioId()); +// DeployPipelineConfigManager.setIsJobTemplateVoHasBuildDeployType(existsJobVo, envPipelineMap); +// if (!op.isPresent()) { +// jobTemplateList.add(existsJobVo); +// } +// } +// +// public List get() { +// return this.jobTemplateList; +// } +// } } diff --git a/src/main/java/neatlogic/module/deploy/util/DeployPipelineConfigManager.java b/src/main/java/neatlogic/module/deploy/util/DeployPipelineConfigManager.java index 478ae1136300c0300b530f16a313ef22739b67c1..e194cac1ca4f8c01366b588f20f6ae692ea89674 100644 --- a/src/main/java/neatlogic/module/deploy/util/DeployPipelineConfigManager.java +++ b/src/main/java/neatlogic/module/deploy/util/DeployPipelineConfigManager.java @@ -624,7 +624,7 @@ public class DeployPipelineConfigManager { * @param pipeline 超级流水线 */ public static void judgeHasBuildOrDeployTypeToolInPipeline(Long appSystemId, Long appModuleId, PipelineVo pipeline) { - Map envPipelineMap = new HashMap<>(); + Map envPipelineMap = new HashMap<>(); out: if (CollectionUtils.isNotEmpty(pipeline.getLaneList())) { for (int i = 0; i < pipeline.getLaneList().size(); i++) { @@ -663,11 +663,12 @@ public class DeployPipelineConfigManager { * @param jobTemplateVo 流水线 * @param envPipelineMap 出重环境流水线map */ - public static void setIsJobTemplateVoHasBuildDeployType(PipelineJobTemplateVo jobTemplateVo, Map envPipelineMap) { + public static void setIsJobTemplateVoHasBuildDeployType(PipelineJobTemplateVo jobTemplateVo, Map envPipelineMap) { if (jobTemplateVo.getIsHasBuildTypeTool() == 1 && jobTemplateVo.getIsHasDeployTypeTool() == 1) { return; } - DeployPipelineConfigVo pipelineConfigVo = envPipelineMap.get(jobTemplateVo.getEnvId()); + String key = jobTemplateVo.getAppSystemId() + "," + jobTemplateVo.getAppModuleId() + "," + jobTemplateVo.getEnvId(); + DeployPipelineConfigVo pipelineConfigVo = envPipelineMap.get(key); if (pipelineConfigVo == null) { pipelineConfigVo = DeployPipelineConfigManager.init(jobTemplateVo.getAppSystemId()) .withAppModuleId(jobTemplateVo.getAppModuleId()) @@ -677,7 +678,7 @@ public class DeployPipelineConfigManager { .withIsUpdateProfile(false) .getConfig(); if (pipelineConfigVo != null) { - envPipelineMap.put(jobTemplateVo.getEnvId(), pipelineConfigVo); + envPipelineMap.put(key, pipelineConfigVo); } } if (pipelineConfigVo != null) {