From 56523ddf017bb83365321912ccd4b1c921681385 Mon Sep 17 00:00:00 2001 From: asp_ly Date: Sat, 28 Dec 2024 21:04:31 +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/api/JenkinsBuildApiController.java | 28 +++++++++ .../deploy/api/JenkinsJobApiController.java | 28 +++++++++ .../api/JenkinsManagerApiController.java | 32 ++++++++++ .../deploy/api/JenkinsViewApiController.java | 28 +++++++++ .../converter/JenkinsBuildConverter.java | 13 ++++ .../deploy/converter/JenkinsJobConverter.java | 13 ++++ .../converter/JenkinsViewConverter.java | 13 ++++ .../backend/deploy/dto/JenkinsBuildDTO.java | 31 ++++++++++ .../backend/deploy/dto/JenkinsJobDTO.java | 37 ++++++++++++ .../backend/deploy/dto/JenkinsViewDTO.java | 23 +++++++ .../backend/deploy/entity/JenkinsBuild.java | 44 +++++++------- .../backend/deploy/entity/JenkinsJob.java | 60 ++++++++++--------- .../backend/deploy/entity/JenkinsView.java | 25 ++++---- .../deploy/query/JenkinsBuildQuery.java | 41 +++++++++++++ .../backend/deploy/query/JenkinsJobQuery.java | 50 ++++++++++++++++ .../deploy/query/JenkinsViewQuery.java | 29 +++++++++ .../repository/IJenkinsBuildRepository.java | 9 +-- .../repository/IJenkinsJobRepository.java | 9 ++- .../repository/IJenkinsViewRepository.java | 9 ++- .../deploy/service/IJenkinsBuildService.java | 12 ++++ .../deploy/service/IJenkinsJobService.java | 12 ++++ .../service/IJenkinsManagerService.java | 7 +++ .../deploy/service/IJenkinsViewService.java | 12 ++++ .../service/impl/JenkinsBuildServiceImpl.java | 18 ++++++ .../service/impl/JenkinsJobServiceImpl.java | 18 ++++++ .../impl/JenkinsManagerServiceImpl.java | 16 +++++ .../service/impl/JenkinsViewServiceImpl.java | 18 ++++++ .../db/migration/V1.0.1__init_data.sql | 2 +- 28 files changed, 558 insertions(+), 79 deletions(-) create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/deploy/api/JenkinsBuildApiController.java create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/deploy/api/JenkinsJobApiController.java create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/deploy/api/JenkinsManagerApiController.java create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/deploy/api/JenkinsViewApiController.java create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/deploy/converter/JenkinsBuildConverter.java create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/deploy/converter/JenkinsJobConverter.java create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/deploy/converter/JenkinsViewConverter.java create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/JenkinsBuildDTO.java create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/JenkinsJobDTO.java create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/JenkinsViewDTO.java create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/deploy/query/JenkinsBuildQuery.java create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/deploy/query/JenkinsJobQuery.java create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/deploy/query/JenkinsViewQuery.java create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IJenkinsBuildService.java create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IJenkinsJobService.java create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IJenkinsManagerService.java create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IJenkinsViewService.java create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/JenkinsBuildServiceImpl.java create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/JenkinsJobServiceImpl.java create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/JenkinsManagerServiceImpl.java create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/JenkinsViewServiceImpl.java diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/JenkinsBuildApiController.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/JenkinsBuildApiController.java new file mode 100644 index 00000000..3238969b --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/JenkinsBuildApiController.java @@ -0,0 +1,28 @@ +package com.qqchen.deploy.backend.deploy.api; + +import com.qqchen.deploy.backend.framework.controller.BaseController; +import com.qqchen.deploy.backend.deploy.entity.JenkinsBuild; +import com.qqchen.deploy.backend.deploy.dto.JenkinsBuildDTO; +import com.qqchen.deploy.backend.deploy.query.JenkinsBuildQuery; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import jakarta.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * Jenkins构建信息 Controller + */ +@Slf4j +@RestController +@RequestMapping("/api/v1/jenkins-build") +@Tag(name = "Jenkins构建信息管理", description = "Jenkins构建信息管理相关接口") +public class JenkinsBuildApiController extends BaseController { + + @Override + protected void exportData(HttpServletResponse response, List data) { + // TODO: 实现导出逻辑 + log.info("导出Jenkins构建信息数据,数据量:{}", data.size()); + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/JenkinsJobApiController.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/JenkinsJobApiController.java new file mode 100644 index 00000000..13f4e622 --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/JenkinsJobApiController.java @@ -0,0 +1,28 @@ +package com.qqchen.deploy.backend.deploy.api; + +import com.qqchen.deploy.backend.framework.controller.BaseController; +import com.qqchen.deploy.backend.deploy.entity.JenkinsJob; +import com.qqchen.deploy.backend.deploy.dto.JenkinsJobDTO; +import com.qqchen.deploy.backend.deploy.query.JenkinsJobQuery; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import jakarta.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * Jenkins工作 Controller + */ +@Slf4j +@RestController +@RequestMapping("/api/v1/jenkins-job") +@Tag(name = "Jenkins工作管理", description = "Jenkins工作管理相关接口") +public class JenkinsJobApiController extends BaseController { + + @Override + protected void exportData(HttpServletResponse response, List data) { + // TODO: 实现导出逻辑 + log.info("导出Jenkins工作数据,数据量:{}", data.size()); + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/JenkinsManagerApiController.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/JenkinsManagerApiController.java new file mode 100644 index 00000000..945451ba --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/JenkinsManagerApiController.java @@ -0,0 +1,32 @@ +package com.qqchen.deploy.backend.deploy.api; + +import com.qqchen.deploy.backend.deploy.service.IJenkinsManagerService; +import com.qqchen.deploy.backend.framework.api.Response; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * Jenkins构建信息 Controller + */ +@Slf4j +@RestController +@RequestMapping("/api/v1/jenkins-manager") +@Tag(name = "Jenkins三方系统管理", description = "Jenkins三方系统管理") +public class JenkinsManagerApiController { + + + @Resource + private IJenkinsManagerService jenkinsManagerService; + + @GetMapping("/views/page") + public Response page() { + return Response.success(jenkinsManagerService.viewsPage()); + } + +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/JenkinsViewApiController.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/JenkinsViewApiController.java new file mode 100644 index 00000000..988bdf7c --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/JenkinsViewApiController.java @@ -0,0 +1,28 @@ +package com.qqchen.deploy.backend.deploy.api; + +import com.qqchen.deploy.backend.framework.controller.BaseController; +import com.qqchen.deploy.backend.deploy.entity.JenkinsView; +import com.qqchen.deploy.backend.deploy.dto.JenkinsViewDTO; +import com.qqchen.deploy.backend.deploy.query.JenkinsViewQuery; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import jakarta.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * Jenkins视图 Controller + */ +@Slf4j +@RestController +@RequestMapping("/api/v1/jenkins-view") +@Tag(name = "Jenkins视图管理", description = "Jenkins视图管理相关接口") +public class JenkinsViewApiController extends BaseController { + + @Override + protected void exportData(HttpServletResponse response, List data) { + // TODO: 实现导出逻辑 + log.info("导出Jenkins视图数据,数据量:{}", data.size()); + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/converter/JenkinsBuildConverter.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/converter/JenkinsBuildConverter.java new file mode 100644 index 00000000..f0eefeab --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/converter/JenkinsBuildConverter.java @@ -0,0 +1,13 @@ +package com.qqchen.deploy.backend.deploy.converter; + +import com.qqchen.deploy.backend.framework.converter.BaseConverter; +import com.qqchen.deploy.backend.deploy.entity.JenkinsBuild; +import com.qqchen.deploy.backend.deploy.dto.JenkinsBuildDTO; +import org.mapstruct.Mapper; + +/** + * Jenkins构建信息 Converter + */ +@Mapper(config = BaseConverter.class) +public interface JenkinsBuildConverter extends BaseConverter { +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/converter/JenkinsJobConverter.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/converter/JenkinsJobConverter.java new file mode 100644 index 00000000..94f4fb37 --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/converter/JenkinsJobConverter.java @@ -0,0 +1,13 @@ +package com.qqchen.deploy.backend.deploy.converter; + +import com.qqchen.deploy.backend.framework.converter.BaseConverter; +import com.qqchen.deploy.backend.deploy.entity.JenkinsJob; +import com.qqchen.deploy.backend.deploy.dto.JenkinsJobDTO; +import org.mapstruct.Mapper; + +/** + * Jenkins工作 Converter + */ +@Mapper(config = BaseConverter.class) +public interface JenkinsJobConverter extends BaseConverter { +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/converter/JenkinsViewConverter.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/converter/JenkinsViewConverter.java new file mode 100644 index 00000000..0e656fdb --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/converter/JenkinsViewConverter.java @@ -0,0 +1,13 @@ +package com.qqchen.deploy.backend.deploy.converter; + +import com.qqchen.deploy.backend.framework.converter.BaseConverter; +import com.qqchen.deploy.backend.deploy.entity.JenkinsView; +import com.qqchen.deploy.backend.deploy.dto.JenkinsViewDTO; +import org.mapstruct.Mapper; + +/** + * Jenkins视图 Converter + */ +@Mapper(config = BaseConverter.class) +public interface JenkinsViewConverter extends BaseConverter { +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/JenkinsBuildDTO.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/JenkinsBuildDTO.java new file mode 100644 index 00000000..9eb948b8 --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/JenkinsBuildDTO.java @@ -0,0 +1,31 @@ +package com.qqchen.deploy.backend.deploy.dto; + +import com.qqchen.deploy.backend.framework.dto.BaseDTO; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.time.LocalDateTime; + +/** + * Jenkins构建信息 DTO + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class JenkinsBuildDTO extends BaseDTO { + + private Integer buildNumber; + + private String buildStatus; + + private String buildUrl; + + private Long duration; + + private LocalDateTime starttime; + + private String actions; + + private Long externalSystemId; + + private Long jobId; + +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/JenkinsJobDTO.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/JenkinsJobDTO.java new file mode 100644 index 00000000..f6c5d37a --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/JenkinsJobDTO.java @@ -0,0 +1,37 @@ +package com.qqchen.deploy.backend.deploy.dto; + +import com.qqchen.deploy.backend.framework.dto.BaseDTO; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.time.LocalDateTime; + +/** + * Jenkins工作 DTO + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class JenkinsJobDTO extends BaseDTO { + + private Boolean buildable; + + private String description; + + private String jobName; + + private String jobUrl; + + private Integer nextBuildNumber; + + private Integer lastBuildNumber; + + private String lastBuildStatus; + + private Integer healthReportScore; + + private LocalDateTime lastBuildTime; + + private Long externalSystemId; + + private Long viewId; + +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/JenkinsViewDTO.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/JenkinsViewDTO.java new file mode 100644 index 00000000..101c6f7f --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/JenkinsViewDTO.java @@ -0,0 +1,23 @@ +package com.qqchen.deploy.backend.deploy.dto; + +import com.qqchen.deploy.backend.framework.dto.BaseDTO; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.time.LocalDateTime; + +/** + * Jenkins视图 DTO + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class JenkinsViewDTO extends BaseDTO { + + private String description; + + private Long externalSystemId; + + private String viewName; + + private String viewUrl; + +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/JenkinsBuild.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/JenkinsBuild.java index 24a8f77d..18c94dd5 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/JenkinsBuild.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/JenkinsBuild.java @@ -1,42 +1,42 @@ package com.qqchen.deploy.backend.deploy.entity; -import com.qqchen.deploy.backend.framework.annotation.LogicDelete; import com.qqchen.deploy.backend.framework.domain.Entity; -import jakarta.persistence.Column; -import jakarta.persistence.Table; +import jakarta.persistence.*; import lombok.Data; import lombok.EqualsAndHashCode; - import java.time.LocalDateTime; +/** + * Jenkins构建信息实体 + */ @Data @EqualsAndHashCode(callSuper = true) @jakarta.persistence.Entity @Table(name = "deploy_jenkins_build") -@LogicDelete public class JenkinsBuild extends Entity { - - @Column(name = "external_system_id", nullable = false) - private Long external_system_id; - - @Column(name = "job_id", nullable = false) - private Long jobId; - + @Column(name = "build_number", nullable = false) private Integer buildNumber; - - @Column(name = "build_url", nullable = false) - private String buildUrl; - + @Column(name = "build_status", nullable = false) private String buildStatus; - - @Column(name = "start_time", nullable = false) - private LocalDateTime startTime; + + @Column(name = "build_url", nullable = false) + private String buildUrl; @Column(name = "duration", nullable = false) private Long duration; - - @Column(name = "trigger_cause", columnDefinition = "TEXT") - private String triggerCause; + + @Column(name = "startTime", nullable = false) + private LocalDateTime starttime; + + @Column(name = "actions") + private String actions; + + @Column(name = "external_system_id", nullable = false) + private Long externalSystemId; + + @Column(name = "job_id", nullable = false) + private Long jobId; + } \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/JenkinsJob.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/JenkinsJob.java index 16adab24..6f7c5319 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/JenkinsJob.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/JenkinsJob.java @@ -1,49 +1,51 @@ package com.qqchen.deploy.backend.deploy.entity; -import com.qqchen.deploy.backend.framework.annotation.LogicDelete; import com.qqchen.deploy.backend.framework.domain.Entity; -import jakarta.persistence.Column; -import jakarta.persistence.FetchType; -import jakarta.persistence.JoinColumn; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; +import jakarta.persistence.*; import lombok.Data; import lombok.EqualsAndHashCode; - import java.time.LocalDateTime; - - +/** + * Jenkins工作实体 + */ @Data @EqualsAndHashCode(callSuper = true) @jakarta.persistence.Entity @Table(name = "deploy_jenkins_job") -@LogicDelete public class JenkinsJob extends Entity { - - @Column(name = "external_system_id", nullable = false) - private Long external_system_id; - - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "view_id") - private JenkinsView view; - + + @Column(name = "buildable") + private Boolean buildable; + + @Column(name = "description") + private String description; + @Column(name = "job_name", nullable = false) private String jobName; - + @Column(name = "job_url", nullable = false) private String jobUrl; - - private String description; - - private Boolean buildable; - - @Column(name = "last_build_number") + + @Column(name = "next_build_number", nullable = false) + private Integer nextBuildNumber; + + @Column(name = "last_build_number", nullable = false) private Integer lastBuildNumber; - + + @Column(name = "last_build_status", nullable = false) + private String lastBuildStatus; + + @Column(name = "health_report_score", nullable = false) + private Integer healthReportScore; + @Column(name = "last_build_time") private LocalDateTime lastBuildTime; - - @Column(name = "last_build_status") - private String lastBuildStatus; + + @Column(name = "external_system_id", nullable = false) + private Long externalSystemId; + + @Column(name = "view_id", nullable = false) + private Long viewId; + } \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/JenkinsView.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/JenkinsView.java index 1d72796f..035a8a7f 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/JenkinsView.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/JenkinsView.java @@ -1,28 +1,31 @@ package com.qqchen.deploy.backend.deploy.entity; - -import com.qqchen.deploy.backend.framework.annotation.LogicDelete; import com.qqchen.deploy.backend.framework.domain.Entity; -import jakarta.persistence.Column; -import jakarta.persistence.Table; +import jakarta.persistence.*; import lombok.Data; import lombok.EqualsAndHashCode; +import java.time.LocalDateTime; + +/** + * Jenkins视图实体 + */ @Data @EqualsAndHashCode(callSuper = true) @jakarta.persistence.Entity @Table(name = "deploy_jenkins_view") -@LogicDelete public class JenkinsView extends Entity { - - @Column(name = "external_system_id", nullable = false) - private Long external_system_id; - + @Column(name = "view_name", nullable = false) private String viewName; - + @Column(name = "view_url", nullable = false) private String viewUrl; - + + @Column(name = "description") private String description; + + @Column(name = "external_system_id", nullable = false) + private Long externalSystemId; + } \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/query/JenkinsBuildQuery.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/query/JenkinsBuildQuery.java new file mode 100644 index 00000000..64c938ba --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/query/JenkinsBuildQuery.java @@ -0,0 +1,41 @@ +package com.qqchen.deploy.backend.deploy.query; + +import com.qqchen.deploy.backend.framework.annotation.QueryField; +import com.qqchen.deploy.backend.framework.enums.QueryType; +import com.qqchen.deploy.backend.framework.query.BaseQuery; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.time.LocalDateTime; + +/** + * Jenkins构建信息查询对象 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class JenkinsBuildQuery extends BaseQuery { + + @QueryField(field = "build_number") + private Integer buildNumber; + + @QueryField(field = "build_status", type = QueryType.LIKE) + private String buildStatus; + + @QueryField(field = "build_url", type = QueryType.LIKE) + private String buildUrl; + + @QueryField(field = "duration") + private Long duration; + + @QueryField(field = "startTime") + private LocalDateTime starttime; + + @QueryField(field = "actions", type = QueryType.LIKE) + private String actions; + + @QueryField(field = "external_system_id") + private Long externalSystemId; + + @QueryField(field = "job_id") + private Long jobId; + +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/query/JenkinsJobQuery.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/query/JenkinsJobQuery.java new file mode 100644 index 00000000..4a2e3d44 --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/query/JenkinsJobQuery.java @@ -0,0 +1,50 @@ +package com.qqchen.deploy.backend.deploy.query; + +import com.qqchen.deploy.backend.framework.annotation.QueryField; +import com.qqchen.deploy.backend.framework.enums.QueryType; +import com.qqchen.deploy.backend.framework.query.BaseQuery; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.time.LocalDateTime; + +/** + * Jenkins工作查询对象 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class JenkinsJobQuery extends BaseQuery { + + @QueryField(field = "buildable") + private Boolean buildable; + + @QueryField(field = "description", type = QueryType.LIKE) + private String description; + + @QueryField(field = "job_name", type = QueryType.LIKE) + private String jobName; + + @QueryField(field = "job_url", type = QueryType.LIKE) + private String jobUrl; + + @QueryField(field = "next_build_number") + private Integer nextBuildNumber; + + @QueryField(field = "last_build_number") + private Integer lastBuildNumber; + + @QueryField(field = "last_build_status", type = QueryType.LIKE) + private String lastBuildStatus; + + @QueryField(field = "health_report_score") + private Integer healthReportScore; + + @QueryField(field = "last_build_time") + private LocalDateTime lastBuildTime; + + @QueryField(field = "external_system_id") + private Long externalSystemId; + + @QueryField(field = "view_id") + private Long viewId; + +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/query/JenkinsViewQuery.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/query/JenkinsViewQuery.java new file mode 100644 index 00000000..fc65db78 --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/query/JenkinsViewQuery.java @@ -0,0 +1,29 @@ +package com.qqchen.deploy.backend.deploy.query; + +import com.qqchen.deploy.backend.framework.annotation.QueryField; +import com.qqchen.deploy.backend.framework.enums.QueryType; +import com.qqchen.deploy.backend.framework.query.BaseQuery; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.time.LocalDateTime; + +/** + * Jenkins视图查询对象 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class JenkinsViewQuery extends BaseQuery { + + @QueryField(field = "description", type = QueryType.LIKE) + private String description; + + @QueryField(field = "external_system_id") + private Long externalSystemId; + + @QueryField(field = "view_name", type = QueryType.LIKE) + private String viewName; + + @QueryField(field = "view_url", type = QueryType.LIKE) + private String viewUrl; + +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/repository/IJenkinsBuildRepository.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/repository/IJenkinsBuildRepository.java index 16af2feb..dfd7fb4e 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/repository/IJenkinsBuildRepository.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/repository/IJenkinsBuildRepository.java @@ -1,15 +1,12 @@ package com.qqchen.deploy.backend.deploy.repository; - import com.qqchen.deploy.backend.framework.repository.IBaseRepository; import com.qqchen.deploy.backend.deploy.entity.JenkinsBuild; import org.springframework.stereotype.Repository; -import java.util.List; +/** + * Jenkins构建信息 Repository + */ @Repository public interface IJenkinsBuildRepository extends IBaseRepository { - List findByJobIdAndDeletedFalse(Long jobId); - List findByJobIdAndBuildNumberAndDeletedFalse(Long jobId, Integer buildNumber); - void deleteByJobIdAndDeletedFalse(Long jobId); - List findByJobIdAndDeletedFalseOrderByBuildNumberDesc(Long jobId); } \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/repository/IJenkinsJobRepository.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/repository/IJenkinsJobRepository.java index 51e39297..c5305397 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/repository/IJenkinsJobRepository.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/repository/IJenkinsJobRepository.java @@ -2,12 +2,11 @@ package com.qqchen.deploy.backend.deploy.repository; import com.qqchen.deploy.backend.framework.repository.IBaseRepository; import com.qqchen.deploy.backend.deploy.entity.JenkinsJob; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; -import java.util.List; +/** + * Jenkins工作 Repository + */ @Repository public interface IJenkinsJobRepository extends IBaseRepository { - -} \ No newline at end of file +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/repository/IJenkinsViewRepository.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/repository/IJenkinsViewRepository.java index 6a6f1ee6..be2c1e7d 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/repository/IJenkinsViewRepository.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/repository/IJenkinsViewRepository.java @@ -1,13 +1,12 @@ package com.qqchen.deploy.backend.deploy.repository; - import com.qqchen.deploy.backend.framework.repository.IBaseRepository; import com.qqchen.deploy.backend.deploy.entity.JenkinsView; import org.springframework.stereotype.Repository; -import java.util.List; - +/** + * Jenkins视图 Repository + */ @Repository public interface IJenkinsViewRepository extends IBaseRepository { - -} \ No newline at end of file +} \ No newline at end of file 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 new file mode 100644 index 00000000..fb63bf7e --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IJenkinsBuildService.java @@ -0,0 +1,12 @@ +package com.qqchen.deploy.backend.deploy.service; + +import com.qqchen.deploy.backend.framework.service.IBaseService; +import com.qqchen.deploy.backend.deploy.entity.JenkinsBuild; +import com.qqchen.deploy.backend.deploy.dto.JenkinsBuildDTO; +import com.qqchen.deploy.backend.deploy.query.JenkinsBuildQuery; + +/** + * Jenkins构建信息 Service接口 + */ +public interface IJenkinsBuildService extends IBaseService { +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IJenkinsJobService.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IJenkinsJobService.java new file mode 100644 index 00000000..68de9144 --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IJenkinsJobService.java @@ -0,0 +1,12 @@ +package com.qqchen.deploy.backend.deploy.service; + +import com.qqchen.deploy.backend.framework.service.IBaseService; +import com.qqchen.deploy.backend.deploy.entity.JenkinsJob; +import com.qqchen.deploy.backend.deploy.dto.JenkinsJobDTO; +import com.qqchen.deploy.backend.deploy.query.JenkinsJobQuery; + +/** + * Jenkins工作 Service接口 + */ +public interface IJenkinsJobService extends IBaseService { +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IJenkinsManagerService.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IJenkinsManagerService.java new file mode 100644 index 00000000..ef95e188 --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IJenkinsManagerService.java @@ -0,0 +1,7 @@ +package com.qqchen.deploy.backend.deploy.service; + + +public interface IJenkinsManagerService { + + Void viewsPage(); +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IJenkinsViewService.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IJenkinsViewService.java new file mode 100644 index 00000000..fdf6386a --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IJenkinsViewService.java @@ -0,0 +1,12 @@ +package com.qqchen.deploy.backend.deploy.service; + +import com.qqchen.deploy.backend.framework.service.IBaseService; +import com.qqchen.deploy.backend.deploy.entity.JenkinsView; +import com.qqchen.deploy.backend.deploy.dto.JenkinsViewDTO; +import com.qqchen.deploy.backend.deploy.query.JenkinsViewQuery; + +/** + * Jenkins视图 Service接口 + */ +public interface IJenkinsViewService extends IBaseService { +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/JenkinsBuildServiceImpl.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/JenkinsBuildServiceImpl.java new file mode 100644 index 00000000..72f67799 --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/JenkinsBuildServiceImpl.java @@ -0,0 +1,18 @@ +package com.qqchen.deploy.backend.deploy.service.impl; + +import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl; +import com.qqchen.deploy.backend.deploy.entity.JenkinsBuild; +import com.qqchen.deploy.backend.deploy.dto.JenkinsBuildDTO; +import com.qqchen.deploy.backend.deploy.query.JenkinsBuildQuery; +import com.qqchen.deploy.backend.deploy.service.IJenkinsBuildService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * Jenkins构建信息 Service实现 + */ +@Slf4j +@Service +public class JenkinsBuildServiceImpl extends BaseServiceImpl + implements IJenkinsBuildService { +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/JenkinsJobServiceImpl.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/JenkinsJobServiceImpl.java new file mode 100644 index 00000000..d594d7e4 --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/JenkinsJobServiceImpl.java @@ -0,0 +1,18 @@ +package com.qqchen.deploy.backend.deploy.service.impl; + +import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl; +import com.qqchen.deploy.backend.deploy.entity.JenkinsJob; +import com.qqchen.deploy.backend.deploy.dto.JenkinsJobDTO; +import com.qqchen.deploy.backend.deploy.query.JenkinsJobQuery; +import com.qqchen.deploy.backend.deploy.service.IJenkinsJobService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * Jenkins工作 Service实现 + */ +@Slf4j +@Service +public class JenkinsJobServiceImpl extends BaseServiceImpl + implements IJenkinsJobService { +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/JenkinsManagerServiceImpl.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/JenkinsManagerServiceImpl.java new file mode 100644 index 00000000..7dce8b7f --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/JenkinsManagerServiceImpl.java @@ -0,0 +1,16 @@ +package com.qqchen.deploy.backend.deploy.service.impl; + +import com.qqchen.deploy.backend.deploy.service.IJenkinsManagerService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +public class JenkinsManagerServiceImpl implements IJenkinsManagerService { + + + @Override + public Void viewsPage() { + return null; + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/JenkinsViewServiceImpl.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/JenkinsViewServiceImpl.java new file mode 100644 index 00000000..22b70de7 --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/JenkinsViewServiceImpl.java @@ -0,0 +1,18 @@ +package com.qqchen.deploy.backend.deploy.service.impl; + +import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl; +import com.qqchen.deploy.backend.deploy.entity.JenkinsView; +import com.qqchen.deploy.backend.deploy.dto.JenkinsViewDTO; +import com.qqchen.deploy.backend.deploy.query.JenkinsViewQuery; +import com.qqchen.deploy.backend.deploy.service.IJenkinsViewService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * Jenkins视图 Service实现 + */ +@Slf4j +@Service +public class JenkinsViewServiceImpl extends BaseServiceImpl + implements IJenkinsViewService { +} \ No newline at end of file diff --git a/backend/src/main/resources/db/migration/V1.0.1__init_data.sql b/backend/src/main/resources/db/migration/V1.0.1__init_data.sql index b95943ba..b2772afb 100644 --- a/backend/src/main/resources/db/migration/V1.0.1__init_data.sql +++ b/backend/src/main/resources/db/migration/V1.0.1__init_data.sql @@ -81,7 +81,7 @@ VALUES (204, '部署配置管理', '/deploy/deployment', '/src/pages/Deploy/Deployment/List/index', 'CloudOutlined', 2, 200, 4, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE), -(205, 'Jenkins管理', '/deploy/jenkins', '/src/pages/Deploy/Jenkins/List/index', 'CloudOutlined', 2, 200, 5, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE), +(205, 'Jenkins管理', '/deploy/jenkins-manager', '/src/pages/Deploy/JenkinsManager/List', 'CloudOutlined', 2, 200, 5, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE), -- 三方系统 (206, '三方系统管理', '/deploy/external', '/src/pages/Deploy/external/index', 'ApiOutlined', 2, 200, 6, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE);