From 70ffbe11aa34789c46bef7d6b9a027c248e26e48 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Wed, 27 Nov 2024 15:15:43 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=8F=91=E5=B8=83Deploy?= =?UTF-8?q?PipelineConfigManager=E9=9C=80=E6=94=AF=E6=8C=81=E6=89=B9?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1298640549675008]发布DeployPipelineConfigManager需支持批量 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1298640549675008 --- .../api/job/ListDeployJobModuleApi.java | 53 +++++++++--- .../dao/mapper/DeployAppConfigMapper.java | 2 + .../dao/mapper/DeployAppConfigMapper.xml | 26 ++++++ .../util/DeployPipelineConfigManager.java | 82 +++++++++++++++++++ 4 files changed, 152 insertions(+), 11 deletions(-) diff --git a/src/main/java/neatlogic/module/deploy/api/job/ListDeployJobModuleApi.java b/src/main/java/neatlogic/module/deploy/api/job/ListDeployJobModuleApi.java index 72af29cd..0ceceb9d 100644 --- a/src/main/java/neatlogic/module/deploy/api/job/ListDeployJobModuleApi.java +++ b/src/main/java/neatlogic/module/deploy/api/job/ListDeployJobModuleApi.java @@ -23,6 +23,7 @@ import neatlogic.framework.cmdb.dto.resourcecenter.ResourceVo; import neatlogic.framework.common.constvalue.ApiParamType; import neatlogic.framework.crossover.CrossoverServiceFactory; import neatlogic.framework.deploy.auth.DEPLOY_BASE; +import neatlogic.framework.deploy.dto.app.DeployAppConfigVo; import neatlogic.framework.deploy.dto.app.DeployAppModuleVo; import neatlogic.framework.deploy.dto.app.DeployPipelineConfigVo; import neatlogic.framework.deploy.exception.DeployAppConfigNotFoundException; @@ -40,10 +41,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; /** @@ -106,9 +104,16 @@ public class ListDeployJobModuleApi extends PrivateApiComponentBase { throw new DeployAppConfigNotFoundException(appSystemId); } //查询拥有runner的模块id列表 - List hasRunnerAppModuleIdList = deployAppConfigMapper.getAppModuleIdListHasRunnerByAppSystemIdAndModuleIdList(appSystemId, moduleResourceList.stream().map(ResourceVo::getId).collect(Collectors.toList())); + List appModuleIdList = moduleResourceList.stream().map(ResourceVo::getId).collect(Collectors.toList()); + List hasRunnerAppModuleIdList = deployAppConfigMapper.getAppModuleIdListHasRunnerByAppSystemIdAndModuleIdList(appSystemId, appModuleIdList); /*补充当前模块是否有BUILD分类的工具,前端需要根据此标识(isHasBuildTypeTool) 调用不同的选择版本下拉接口*/ //1、获取流水线 + List deployAppConfigList = DeployPipelineConfigManager.init(appSystemId) + .withAppModuleIdList(appModuleIdList) + .withEnvIdList(Collections.singletonList(envId)) + .isHasBuildOrDeployTypeTool(true) + .isUpdateConfig(false) + .getDeployAppConfigList(); // Map appConfigVoMap = appConfigVoList.stream().collect(Collectors.toMap(o -> o.getAppSystemId().toString() + "-" + o.getAppModuleId().toString() + "-" + o.getEnvId().toString(), e -> e)); for (ResourceVo resourceVo : moduleResourceList) { DeployAppModuleVo appModuleVo = new DeployAppModuleVo(resourceVo.getId(), resourceVo.getName(), resourceVo.getAbbrName()); @@ -123,12 +128,13 @@ public class ListDeployJobModuleApi extends PrivateApiComponentBase { // if (configVo == null) { // throw new DeployAppConfigNotFoundException(appSystemId); // } - DeployPipelineConfigVo pipelineConfigVo = DeployPipelineConfigManager.init(appSystemId) - .withAppModuleId(appModuleVo.getId()) - .withEnvId(envId) - .isHasBuildOrDeployTypeTool(true) - .isUpdateConfig(false) - .getConfig(); +// DeployPipelineConfigVo pipelineConfigVo = DeployPipelineConfigManager.init(appSystemId) +// .withAppModuleId(appModuleVo.getId()) +// .withEnvId(envId) +// .isHasBuildOrDeployTypeTool(true) +// .isUpdateConfig(false) +// .getConfig(); + DeployPipelineConfigVo pipelineConfigVo = getDeployPipelineConfigVo(deployAppConfigList, appSystemId, appModuleVo.getId(), envId); if (pipelineConfigVo == null) { throw new DeployAppConfigNotFoundException(appSystemId); } @@ -178,6 +184,31 @@ public class ListDeployJobModuleApi extends PrivateApiComponentBase { return returnAppModuleVoList; } + + private DeployPipelineConfigVo getDeployPipelineConfigVo(List deployAppConfigList, Long appSystemId, Long appModuleId, Long envId) { + for (DeployAppConfigVo deployAppConfigVo : deployAppConfigList) { + if (Objects.equals(deployAppConfigVo.getAppSystemId(), appSystemId) + && Objects.equals(deployAppConfigVo.getAppModuleId(), appModuleId) + && Objects.equals(deployAppConfigVo.getEnvId(), envId)) { + return deployAppConfigVo.getConfig(); + } + } + for (DeployAppConfigVo deployAppConfigVo : deployAppConfigList) { + if (Objects.equals(deployAppConfigVo.getAppSystemId(), appSystemId) + && Objects.equals(deployAppConfigVo.getAppModuleId(), appModuleId) + && Objects.equals(deployAppConfigVo.getEnvId(), 0L)) { + return deployAppConfigVo.getConfig(); + } + } + for (DeployAppConfigVo deployAppConfigVo : deployAppConfigList) { + if (Objects.equals(deployAppConfigVo.getAppSystemId(), appSystemId) + && Objects.equals(deployAppConfigVo.getAppModuleId(), 0L) + && Objects.equals(deployAppConfigVo.getEnvId(), 0L)) { + return deployAppConfigVo.getConfig(); + } + } + return null; + } } diff --git a/src/main/java/neatlogic/module/deploy/dao/mapper/DeployAppConfigMapper.java b/src/main/java/neatlogic/module/deploy/dao/mapper/DeployAppConfigMapper.java index 1c254c17..0e546135 100644 --- a/src/main/java/neatlogic/module/deploy/dao/mapper/DeployAppConfigMapper.java +++ b/src/main/java/neatlogic/module/deploy/dao/mapper/DeployAppConfigMapper.java @@ -59,6 +59,8 @@ public interface DeployAppConfigMapper extends IDeployAppConfigCrossoverMapper { List getAppConfigList(DeployAppConfigVo configVo); + List getAppConfigListByAppSystemIdAndAppModuleIdListAndEnvIdList(@Param("appSystemId") Long appSystemId, @Param("appModuleIdList") List appModuleIdList, @Param("envIdList") List envIdList); + int getAllDeployAppConfigCount(); List getAllAppConfigListByPage(BasePageVo searchVo); diff --git a/src/main/java/neatlogic/module/deploy/dao/mapper/DeployAppConfigMapper.xml b/src/main/java/neatlogic/module/deploy/dao/mapper/DeployAppConfigMapper.xml index e0bce8c0..b861e8ba 100644 --- a/src/main/java/neatlogic/module/deploy/dao/mapper/DeployAppConfigMapper.xml +++ b/src/main/java/neatlogic/module/deploy/dao/mapper/DeployAppConfigMapper.xml @@ -1017,6 +1017,32 @@ along with this program. If not, see .--> FROM `deploy_app_config` WHERE `app_system_id` = #{appSystemId} +