From 6078c0228b4958f00c160e13456b2b610854229d Mon Sep 17 00:00:00 2001 From: asp_ly Date: Sun, 29 Dec 2024 11:38:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=94=9F=E6=88=90=E5=90=8E?= =?UTF-8?q?=E7=AB=AF=E6=9C=8D=E5=8A=A1=E4=BB=A3=E7=A0=81=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../deploy/service/IJenkinsBuildService.java | 15 ++++--- .../service/impl/JenkinsBuildServiceImpl.java | 39 +++++++------------ 2 files changed, 23 insertions(+), 31 deletions(-) diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IJenkinsBuildService.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IJenkinsBuildService.java index 28ac8656..e921bf41 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IJenkinsBuildService.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IJenkinsBuildService.java @@ -1,5 +1,8 @@ package com.qqchen.deploy.backend.deploy.service; +import com.qqchen.deploy.backend.deploy.entity.ExternalSystem; +import com.qqchen.deploy.backend.deploy.entity.JenkinsJob; +import com.qqchen.deploy.backend.deploy.entity.JenkinsView; import com.qqchen.deploy.backend.framework.service.IBaseService; import com.qqchen.deploy.backend.deploy.entity.JenkinsBuild; import com.qqchen.deploy.backend.deploy.dto.JenkinsBuildDTO; @@ -13,20 +16,20 @@ public interface IJenkinsBuildService extends IBaseService jobs = jenkinsJobRepository.findByExternalSystemIdAndViewId(externalSystemId, viewId); + List jobs = jenkinsJobRepository.findByExternalSystemIdAndViewId(externalSystem.getId(), view.getId()); if (jobs.isEmpty()) { - log.info("No jobs found for view: {}", viewId); + log.info("No jobs found for view: {}", view.getId()); return 0; } @@ -101,7 +101,7 @@ public class JenkinsBuildServiceImpl extends BaseServiceImpl new BusinessException(ResponseCode.EXTERNAL_SYSTEM_NOT_FOUND)); - - JenkinsJob jenkinsJob = jenkinsJobRepository.findById(jobId) - .orElseThrow(() -> new BusinessException(ResponseCode.DATA_NOT_FOUND)); - - // 2. 调用Jenkins API获取构建列表 - List buildResponses = jenkinsServiceIntegration.listBuilds(externalSystem, jenkinsJob.getJobName()); + public Integer syncBuilds(ExternalSystem externalSystem, JenkinsJob job) { + List buildResponses = jenkinsServiceIntegration.listBuilds(externalSystem, job.getJobName()); if (buildResponses.isEmpty()) { - log.info("No builds found for job: {}", jenkinsJob.getJobName()); + log.info("No builds found for job: {}", job.getJobName()); return 0; } @@ -133,25 +125,22 @@ public class JenkinsBuildServiceImpl extends BaseServiceImpl jenkinsBuilds = new ArrayList<>(); for (JenkinsBuildResponse buildResponse : buildResponses) { // 查找是否存在相同的构建 - Optional existingBuild = jenkinsBuildRepository - .findByExternalSystemIdAndJobIdAndBuildNumber(externalSystemId, jobId, buildResponse.getNumber()); + Optional existingBuild = jenkinsBuildRepository.findByExternalSystemIdAndJobIdAndBuildNumber(externalSystem.getId(), job.getId(), buildResponse.getNumber()); JenkinsBuild jenkinsBuild; if (existingBuild.isPresent()) { // 更新已存在的构建 jenkinsBuild = existingBuild.get(); updateBuildFromResponse(jenkinsBuild, buildResponse); - log.debug("Updating existing Jenkins build: {} for job: {}", - jenkinsBuild.getBuildNumber(), jenkinsJob.getJobName()); + log.debug("Updating existing Jenkins build: {} for job: {}", jenkinsBuild.getBuildNumber(), job.getJobName()); } else { // 创建新的构建 jenkinsBuild = new JenkinsBuild(); - jenkinsBuild.setExternalSystemId(externalSystemId); - jenkinsBuild.setJobId(jobId); + jenkinsBuild.setExternalSystemId(externalSystem.getId()); + jenkinsBuild.setJobId(job.getId()); jenkinsBuild.setBuildNumber(buildResponse.getNumber()); updateBuildFromResponse(jenkinsBuild, buildResponse); - log.debug("Creating new Jenkins build: {} for job: {}", - jenkinsBuild.getBuildNumber(), jenkinsJob.getJobName()); + log.debug("Creating new Jenkins build: {} for job: {}", jenkinsBuild.getBuildNumber(), job.getJobName()); } jenkinsBuilds.add(jenkinsBuild); } @@ -159,7 +148,7 @@ public class JenkinsBuildServiceImpl extends BaseServiceImpl