From 19da086bbb1d4e924d0ea9baafd175a61547f8c2 Mon Sep 17 00:00:00 2001 From: dengqichen Date: Fri, 10 Jan 2025 15:38:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=A3=B0=E9=81=93=E6=92=92=E6=97=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/deploy/dto/ApplicationDTO.java | 9 +++-- .../backend/deploy/entity/Application.java | 4 +++ .../service/impl/ApplicationServiceImpl.java | 13 +++++++ .../db/migration/V1.0.0__init_schema.sql | 35 ++++++++++--------- 4 files changed, 41 insertions(+), 20 deletions(-) diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/ApplicationDTO.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/ApplicationDTO.java index 5f697f3e..5dba66c7 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/ApplicationDTO.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/ApplicationDTO.java @@ -3,6 +3,7 @@ package com.qqchen.deploy.backend.deploy.dto; import com.qqchen.deploy.backend.deploy.entity.ProjectGroup; import com.qqchen.deploy.backend.deploy.enums.DevelopmentLanguageTypeEnum; import com.qqchen.deploy.backend.framework.dto.BaseDTO; +import com.qqchen.deploy.backend.system.model.ExternalSystemDTO; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.persistence.Column; import jakarta.validation.constraints.NotBlank; @@ -22,12 +23,14 @@ public class ApplicationDTO extends BaseDTO { private String appDesc; - @NotBlank(message = "仓库URL不能为空") - private String repoUrl; - @NotNull(message = "开发语言") private DevelopmentLanguageTypeEnum language; + @NotNull(message = "三方系统ID不能为空") + private Long externalSystemId; + + private ExternalSystemDTO externalSystem; + @NotNull(message = "代码仓库组ID不能为空") private Long repoGroupId; diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/Application.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/Application.java index 840c8e7a..d581acbd 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/Application.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/Application.java @@ -9,6 +9,7 @@ import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; import jakarta.persistence.OneToMany; import jakarta.persistence.Table; +import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.EqualsAndHashCode; @@ -49,6 +50,9 @@ public class Application extends Entity { @Column(name = "language") private DevelopmentLanguageTypeEnum language; + @Column(name = "external_system_id", nullable = false) + private Long externalSystemId; + /** * 代码仓库组ID */ diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/ApplicationServiceImpl.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/ApplicationServiceImpl.java index ae967128..3dd803c4 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/ApplicationServiceImpl.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/ApplicationServiceImpl.java @@ -1,17 +1,20 @@ package com.qqchen.deploy.backend.deploy.service.impl; import com.qqchen.deploy.backend.deploy.converter.ApplicationConverter; +import com.qqchen.deploy.backend.deploy.converter.ExternalSystemConverter; import com.qqchen.deploy.backend.deploy.converter.ProjectGroupConverter; import com.qqchen.deploy.backend.deploy.converter.RepositoryGroupConverter; import com.qqchen.deploy.backend.deploy.converter.RepositoryProjectConverter; import com.qqchen.deploy.backend.deploy.dto.ApplicationDTO; import com.qqchen.deploy.backend.deploy.dto.DevelopmentLanguageTypeDTO; import com.qqchen.deploy.backend.deploy.entity.Application; +import com.qqchen.deploy.backend.deploy.entity.ExternalSystem; import com.qqchen.deploy.backend.deploy.entity.ProjectGroup; import com.qqchen.deploy.backend.deploy.entity.RepositoryGroup; import com.qqchen.deploy.backend.deploy.entity.RepositoryProject; import com.qqchen.deploy.backend.deploy.enums.DevelopmentLanguageTypeEnum; import com.qqchen.deploy.backend.deploy.query.ApplicationQuery; +import com.qqchen.deploy.backend.deploy.repository.IExternalSystemRepository; import com.qqchen.deploy.backend.deploy.repository.IProjectGroupRepository; import com.qqchen.deploy.backend.deploy.repository.IRepositoryGroupRepository; import com.qqchen.deploy.backend.deploy.repository.IRepositoryProjectRepository; @@ -50,6 +53,12 @@ public class ApplicationServiceImpl extends BaseServiceImpl page(ApplicationQuery query) { Page page = super.page(query); List result = page.getContent().stream().peek(application -> { @@ -64,6 +73,10 @@ public class ApplicationServiceImpl extends BaseServiceImpl repositoryProjectOptional = repositoryProjectRepository.findById(application.getRepoProjectId()); repositoryProjectOptional.ifPresent(repositoryProject -> application.setRepositoryProject(repositoryProjectConverter.toDto(repositoryProject))); + + // 查询并设置外部系统信息 + Optional externalSystemOptional = externalSystemRepository.findById(application.getExternalSystemId()); + externalSystemOptional.ifPresent(externalSystem -> application.setExternalSystem(externalSystemConverter.toDto(externalSystem))); }).collect(toList()); return new PageImpl<>(result, page.getPageable(), page.getTotalElements()); } diff --git a/backend/src/main/resources/db/migration/V1.0.0__init_schema.sql b/backend/src/main/resources/db/migration/V1.0.0__init_schema.sql index 1d0a6e6c..25cbc517 100644 --- a/backend/src/main/resources/db/migration/V1.0.0__init_schema.sql +++ b/backend/src/main/resources/db/migration/V1.0.0__init_schema.sql @@ -541,25 +541,26 @@ CREATE TABLE deploy_project_group -- 应用表 CREATE TABLE deploy_application ( - id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', + id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', -- 业务字段 - app_code VARCHAR(50) NOT NULL COMMENT '应用编码', - app_name VARCHAR(100) NOT NULL COMMENT '应用名称', - app_desc VARCHAR(255) NULL COMMENT '应用描述', - repo_url VARCHAR(255) NULL COMMENT '代码仓库地址', - language VARCHAR(50) NULL COMMENT '开发语言:JAVA、PYTHON、NODEJS', - enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)', - sort INT NOT NULL DEFAULT 0 COMMENT '排序号', - repo_group_id BIGINT NOT NULL COMMENT '代码仓库项目ID', - repo_project_id BIGINT NOT NULL COMMENT '代码仓库项目ID', - project_group_id BIGINT NOT NULL COMMENT '所属项目组ID', + app_code VARCHAR(50) NOT NULL COMMENT '应用编码', + app_name VARCHAR(100) NOT NULL COMMENT '应用名称', + app_desc VARCHAR(255) NULL COMMENT '应用描述', + repo_url VARCHAR(255) NULL COMMENT '代码仓库地址', + language VARCHAR(50) NULL COMMENT '开发语言:JAVA、PYTHON、NODEJS', + enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)', + sort INT NOT NULL DEFAULT 0 COMMENT '排序号', + repo_group_id BIGINT NOT NULL COMMENT '代码仓库项目ID', + repo_project_id BIGINT NOT NULL COMMENT '代码仓库项目ID', + project_group_id BIGINT NOT NULL COMMENT '所属项目组ID', + external_system_id BIGINT NOT NULL COMMENT '外部系统ID', -- 基础字段 - create_by VARCHAR(100) NULL COMMENT '创建人', - create_time DATETIME(6) NULL COMMENT '创建时间', - update_by VARCHAR(100) NULL COMMENT '更新人', - update_time DATETIME(6) NULL COMMENT '更新时间', - version INT NOT NULL DEFAULT 1 COMMENT '版本号', - deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除:0-未删除,1-已删除', + create_by VARCHAR(100) NULL COMMENT '创建人', + create_time DATETIME(6) NULL COMMENT '创建时间', + update_by VARCHAR(100) NULL COMMENT '更新人', + update_time DATETIME(6) NULL COMMENT '更新时间', + version INT NOT NULL DEFAULT 1 COMMENT '版本号', + deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除:0-未删除,1-已删除', -- 索引 INDEX idx_project_group_id (project_group_id) COMMENT '项目ID索引',