应用迁移到团队应用里配置GIT
This commit is contained in:
parent
9d42dd1ba3
commit
4f28a9d3e5
@ -2,7 +2,6 @@ package com.qqchen.deploy.backend.deploy.dto;
|
|||||||
|
|
||||||
import com.qqchen.deploy.backend.deploy.enums.DevelopmentLanguageTypeEnum;
|
import com.qqchen.deploy.backend.deploy.enums.DevelopmentLanguageTypeEnum;
|
||||||
import com.qqchen.deploy.backend.framework.dto.BaseDTO;
|
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 io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
@ -24,27 +23,17 @@ public class ApplicationDTO extends BaseDTO {
|
|||||||
@NotNull(message = "开发语言")
|
@NotNull(message = "开发语言")
|
||||||
private DevelopmentLanguageTypeEnum language;
|
private DevelopmentLanguageTypeEnum language;
|
||||||
|
|
||||||
@Schema(description = "代码仓库项目ID")
|
|
||||||
private Long repoProjectId;
|
|
||||||
|
|
||||||
@Schema(description = "应用分类ID")
|
@Schema(description = "应用分类ID")
|
||||||
private Long applicationCategoryId;
|
private Long applicationCategoryId;
|
||||||
|
|
||||||
@Schema(description = "三方系统ID")
|
|
||||||
private Long externalSystemId;
|
|
||||||
|
|
||||||
@Schema(description = "是否启用")
|
@Schema(description = "是否启用")
|
||||||
private Boolean enabled;
|
private Boolean enabled;
|
||||||
|
|
||||||
@NotNull(message = "排序号不能为空")
|
@NotNull(message = "排序号不能为空")
|
||||||
private Integer sort;
|
private Integer sort;
|
||||||
|
|
||||||
private RepositoryProjectDTO repositoryProject;
|
|
||||||
|
|
||||||
private ApplicationCategoryDTO applicationCategory;
|
private ApplicationCategoryDTO applicationCategory;
|
||||||
|
|
||||||
private ExternalSystemDTO externalSystem;
|
|
||||||
|
|
||||||
@Schema(description = "关联的团队数量")
|
@Schema(description = "关联的团队数量")
|
||||||
private Long teamCount;
|
private Long teamCount;
|
||||||
|
|
||||||
|
|||||||
@ -26,6 +26,18 @@ public class TeamApplicationDTO extends BaseDTO {
|
|||||||
@Schema(description = "分支名称", example = "develop")
|
@Schema(description = "分支名称", example = "develop")
|
||||||
private String branch;
|
private String branch;
|
||||||
|
|
||||||
|
@Schema(description = "代码源系统ID(Git系统)")
|
||||||
|
private Long codeSourceSystemId;
|
||||||
|
|
||||||
|
@Schema(description = "代码源系统名称")
|
||||||
|
private String codeSourceSystemName;
|
||||||
|
|
||||||
|
@Schema(description = "代码源项目ID(Git项目ID)")
|
||||||
|
private Long codeSourceProjectId;
|
||||||
|
|
||||||
|
@Schema(description = "代码源项目名称")
|
||||||
|
private String codeSourceProjectName;
|
||||||
|
|
||||||
@Schema(description = "部署系统ID(Jenkins系统)")
|
@Schema(description = "部署系统ID(Jenkins系统)")
|
||||||
private Long deploySystemId;
|
private Long deploySystemId;
|
||||||
|
|
||||||
|
|||||||
@ -42,24 +42,12 @@ public class Application extends Entity<Long> {
|
|||||||
@Column(name = "language")
|
@Column(name = "language")
|
||||||
private DevelopmentLanguageTypeEnum language;
|
private DevelopmentLanguageTypeEnum language;
|
||||||
|
|
||||||
/**
|
|
||||||
* 代码仓库项目ID
|
|
||||||
*/
|
|
||||||
@Column(name = "repo_project_id")
|
|
||||||
private Long repoProjectId;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 应用分类ID
|
* 应用分类ID
|
||||||
*/
|
*/
|
||||||
@Column(name = "application_category_id")
|
@Column(name = "application_category_id")
|
||||||
private Long applicationCategoryId;
|
private Long applicationCategoryId;
|
||||||
|
|
||||||
/**
|
|
||||||
* 三方系统ID(关联外部系统)
|
|
||||||
*/
|
|
||||||
@Column(name = "external_system_id")
|
|
||||||
private Long externalSystemId;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 排序号
|
* 排序号
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -44,6 +44,18 @@ public class TeamApplication extends Entity<Long> {
|
|||||||
@Column(name = "branch", length = 100)
|
@Column(name = "branch", length = 100)
|
||||||
private String branch;
|
private String branch;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 代码源系统ID(关联sys_external_system,type=GIT)
|
||||||
|
*/
|
||||||
|
@Column(name = "code_source_system_id")
|
||||||
|
private Long codeSourceSystemId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 代码源项目ID(Git项目ID)
|
||||||
|
*/
|
||||||
|
@Column(name = "code_source_project_id")
|
||||||
|
private Long codeSourceProjectId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 部署系统ID(关联sys_external_system,type=JENKINS)
|
* 部署系统ID(关联sys_external_system,type=JENKINS)
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -86,32 +86,6 @@ public class ApplicationServiceImpl extends BaseServiceImpl<Application, Applica
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 批量查询代码仓库项目
|
|
||||||
List<Long> repoProjectIds = content.stream()
|
|
||||||
.map(ApplicationDTO::getRepoProjectId)
|
|
||||||
.filter(java.util.Objects::nonNull)
|
|
||||||
.distinct()
|
|
||||||
.collect(toList());
|
|
||||||
java.util.Map<Long, RepositoryProjectDTO> repoProjectMap = new java.util.HashMap<>();
|
|
||||||
if (!repoProjectIds.isEmpty()) {
|
|
||||||
repositoryProjectRepository.findByRepoProjectIdIn(repoProjectIds).forEach(repoProject ->
|
|
||||||
repoProjectMap.put(repoProject.getRepoProjectId(), repositoryProjectConverter.toDto(repoProject))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 批量查询三方系统
|
|
||||||
List<Long> externalSystemIds = content.stream()
|
|
||||||
.map(ApplicationDTO::getExternalSystemId)
|
|
||||||
.filter(java.util.Objects::nonNull)
|
|
||||||
.distinct()
|
|
||||||
.collect(toList());
|
|
||||||
java.util.Map<Long, ExternalSystemDTO> externalSystemMap = new java.util.HashMap<>();
|
|
||||||
if (!externalSystemIds.isEmpty()) {
|
|
||||||
externalSystemRepository.findAllById(externalSystemIds).forEach(externalSystem ->
|
|
||||||
externalSystemMap.put(externalSystem.getId(), externalSystemConverter.toDto(externalSystem))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 批量统计团队数量
|
// 批量统计团队数量
|
||||||
List<Long> applicationIds = content.stream()
|
List<Long> applicationIds = content.stream()
|
||||||
.map(ApplicationDTO::getId)
|
.map(ApplicationDTO::getId)
|
||||||
@ -131,12 +105,6 @@ public class ApplicationServiceImpl extends BaseServiceImpl<Application, Applica
|
|||||||
if (application.getApplicationCategoryId() != null) {
|
if (application.getApplicationCategoryId() != null) {
|
||||||
application.setApplicationCategory(categoryMap.get(application.getApplicationCategoryId()));
|
application.setApplicationCategory(categoryMap.get(application.getApplicationCategoryId()));
|
||||||
}
|
}
|
||||||
if (application.getRepoProjectId() != null) {
|
|
||||||
application.setRepositoryProject(repoProjectMap.get(application.getRepoProjectId()));
|
|
||||||
}
|
|
||||||
if (application.getExternalSystemId() != null) {
|
|
||||||
application.setExternalSystem(externalSystemMap.get(application.getExternalSystemId()));
|
|
||||||
}
|
|
||||||
application.setTeamCount(teamCountMap.getOrDefault(application.getId(), 0L));
|
application.setTeamCount(teamCountMap.getOrDefault(application.getId(), 0L));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -9,8 +9,10 @@ import com.qqchen.deploy.backend.deploy.entity.Team;
|
|||||||
import com.qqchen.deploy.backend.deploy.entity.TeamApplication;
|
import com.qqchen.deploy.backend.deploy.entity.TeamApplication;
|
||||||
import com.qqchen.deploy.backend.deploy.query.TeamApplicationQuery;
|
import com.qqchen.deploy.backend.deploy.query.TeamApplicationQuery;
|
||||||
import com.qqchen.deploy.backend.deploy.entity.ExternalSystem;
|
import com.qqchen.deploy.backend.deploy.entity.ExternalSystem;
|
||||||
|
import com.qqchen.deploy.backend.deploy.entity.RepositoryProject;
|
||||||
import com.qqchen.deploy.backend.deploy.repository.IApplicationRepository;
|
import com.qqchen.deploy.backend.deploy.repository.IApplicationRepository;
|
||||||
import com.qqchen.deploy.backend.deploy.repository.IExternalSystemRepository;
|
import com.qqchen.deploy.backend.deploy.repository.IExternalSystemRepository;
|
||||||
|
import com.qqchen.deploy.backend.deploy.repository.IRepositoryProjectRepository;
|
||||||
import com.qqchen.deploy.backend.deploy.repository.IDeployRecordRepository;
|
import com.qqchen.deploy.backend.deploy.repository.IDeployRecordRepository;
|
||||||
import com.qqchen.deploy.backend.deploy.repository.IEnvironmentRepository;
|
import com.qqchen.deploy.backend.deploy.repository.IEnvironmentRepository;
|
||||||
import com.qqchen.deploy.backend.deploy.repository.ITeamApplicationRepository;
|
import com.qqchen.deploy.backend.deploy.repository.ITeamApplicationRepository;
|
||||||
@ -56,6 +58,9 @@ public class TeamApplicationServiceImpl extends BaseServiceImpl<TeamApplication,
|
|||||||
@Resource
|
@Resource
|
||||||
private IExternalSystemRepository externalSystemRepository;
|
private IExternalSystemRepository externalSystemRepository;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IRepositoryProjectRepository repositoryProjectRepository;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private TeamApplicationConverter teamApplicationConverter;
|
private TeamApplicationConverter teamApplicationConverter;
|
||||||
|
|
||||||
@ -120,6 +125,16 @@ public class TeamApplicationServiceImpl extends BaseServiceImpl<TeamApplication,
|
|||||||
.filter(Objects::nonNull)
|
.filter(Objects::nonNull)
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
Set<Long> codeSourceSystemIds = teamApps.stream()
|
||||||
|
.map(TeamApplicationDTO::getCodeSourceSystemId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
Set<Long> codeSourceProjectIds = teamApps.stream()
|
||||||
|
.map(TeamApplicationDTO::getCodeSourceProjectId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
// 2. 批量查询团队信息
|
// 2. 批量查询团队信息
|
||||||
Map<Long, Team> teamMap = new HashMap<>();
|
Map<Long, Team> teamMap = new HashMap<>();
|
||||||
if (!teamIds.isEmpty()) {
|
if (!teamIds.isEmpty()) {
|
||||||
@ -152,15 +167,31 @@ public class TeamApplicationServiceImpl extends BaseServiceImpl<TeamApplication,
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 6. 批量查询外部系统信息
|
// 6. 批量查询部署系统信息(Jenkins)
|
||||||
Map<Long, ExternalSystem> externalSystemMap = new HashMap<>();
|
Map<Long, ExternalSystem> deploySystemMap = new HashMap<>();
|
||||||
if (!deploySystemIds.isEmpty()) {
|
if (!deploySystemIds.isEmpty()) {
|
||||||
externalSystemRepository.findAllById(deploySystemIds).forEach(system ->
|
externalSystemRepository.findAllById(deploySystemIds).forEach(system ->
|
||||||
externalSystemMap.put(system.getId(), system)
|
deploySystemMap.put(system.getId(), system)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 7. 填充扩展字段
|
// 7. 批量查询代码源系统信息(Git)
|
||||||
|
Map<Long, ExternalSystem> codeSourceSystemMap = new HashMap<>();
|
||||||
|
if (!codeSourceSystemIds.isEmpty()) {
|
||||||
|
externalSystemRepository.findAllById(codeSourceSystemIds).forEach(system ->
|
||||||
|
codeSourceSystemMap.put(system.getId(), system)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 8. 批量查询代码源项目信息
|
||||||
|
Map<Long, RepositoryProject> codeSourceProjectMap = new HashMap<>();
|
||||||
|
if (!codeSourceProjectIds.isEmpty()) {
|
||||||
|
repositoryProjectRepository.findAllById(codeSourceProjectIds).forEach(project ->
|
||||||
|
codeSourceProjectMap.put(project.getId(), project)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 9. 填充扩展字段
|
||||||
teamApps.forEach(teamApp -> {
|
teamApps.forEach(teamApp -> {
|
||||||
// 填充团队名称
|
// 填充团队名称
|
||||||
if (teamApp.getTeamId() != null) {
|
if (teamApp.getTeamId() != null) {
|
||||||
@ -197,11 +228,27 @@ public class TeamApplicationServiceImpl extends BaseServiceImpl<TeamApplication,
|
|||||||
|
|
||||||
// 填充部署系统名称
|
// 填充部署系统名称
|
||||||
if (teamApp.getDeploySystemId() != null) {
|
if (teamApp.getDeploySystemId() != null) {
|
||||||
ExternalSystem system = externalSystemMap.get(teamApp.getDeploySystemId());
|
ExternalSystem system = deploySystemMap.get(teamApp.getDeploySystemId());
|
||||||
if (system != null) {
|
if (system != null) {
|
||||||
teamApp.setDeploySystemName(system.getName());
|
teamApp.setDeploySystemName(system.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 填充代码源系统名称
|
||||||
|
if (teamApp.getCodeSourceSystemId() != null) {
|
||||||
|
ExternalSystem system = codeSourceSystemMap.get(teamApp.getCodeSourceSystemId());
|
||||||
|
if (system != null) {
|
||||||
|
teamApp.setCodeSourceSystemName(system.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 填充代码源项目名称
|
||||||
|
if (teamApp.getCodeSourceProjectId() != null) {
|
||||||
|
RepositoryProject project = codeSourceProjectMap.get(teamApp.getCodeSourceProjectId());
|
||||||
|
if (project != null) {
|
||||||
|
teamApp.setCodeSourceProjectName(project.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -701,9 +701,7 @@ CREATE TABLE deploy_application
|
|||||||
app_name VARCHAR(100) NOT NULL COMMENT '应用名称',
|
app_name VARCHAR(100) NOT NULL COMMENT '应用名称',
|
||||||
app_desc VARCHAR(255) NULL COMMENT '应用描述',
|
app_desc VARCHAR(255) NULL COMMENT '应用描述',
|
||||||
language VARCHAR(50) NULL COMMENT '开发语言:JAVA、PYTHON、NODEJS',
|
language VARCHAR(50) NULL COMMENT '开发语言:JAVA、PYTHON、NODEJS',
|
||||||
repo_project_id BIGINT NULL COMMENT '代码仓库项目ID',
|
|
||||||
application_category_id BIGINT NULL COMMENT '所属应用分类ID',
|
application_category_id BIGINT NULL COMMENT '所属应用分类ID',
|
||||||
external_system_id BIGINT NULL COMMENT '三方系统ID(关联外部系统)',
|
|
||||||
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)',
|
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)',
|
||||||
sort INT NOT NULL DEFAULT 0 COMMENT '排序号',
|
sort INT NOT NULL DEFAULT 0 COMMENT '排序号',
|
||||||
-- 基础字段
|
-- 基础字段
|
||||||
@ -810,6 +808,8 @@ CREATE TABLE deploy_team_application
|
|||||||
application_id BIGINT NOT NULL COMMENT '应用ID',
|
application_id BIGINT NOT NULL COMMENT '应用ID',
|
||||||
environment_id BIGINT NOT NULL COMMENT '环境ID',
|
environment_id BIGINT NOT NULL COMMENT '环境ID',
|
||||||
branch VARCHAR(100) NULL COMMENT '分支名称',
|
branch VARCHAR(100) NULL COMMENT '分支名称',
|
||||||
|
code_source_system_id BIGINT NULL COMMENT '代码源系统ID(关联sys_external_system,type=GIT)',
|
||||||
|
code_source_project_id BIGINT NULL COMMENT '代码源项目ID(Git项目ID)',
|
||||||
deploy_system_id BIGINT NULL COMMENT '部署系统ID(关联sys_external_system,type=JENKINS)',
|
deploy_system_id BIGINT NULL COMMENT '部署系统ID(关联sys_external_system,type=JENKINS)',
|
||||||
deploy_job VARCHAR(100) NULL COMMENT '部署任务ID(关联deploy_jenkins_job)',
|
deploy_job VARCHAR(100) NULL COMMENT '部署任务ID(关联deploy_jenkins_job)',
|
||||||
workflow_definition_id BIGINT NULL COMMENT '工作流定义ID(关联workflow_definition)',
|
workflow_definition_id BIGINT NULL COMMENT '工作流定义ID(关联workflow_definition)',
|
||||||
@ -818,12 +818,13 @@ CREATE TABLE deploy_team_application
|
|||||||
INDEX idx_team (team_id),
|
INDEX idx_team (team_id),
|
||||||
INDEX idx_application (application_id),
|
INDEX idx_application (application_id),
|
||||||
INDEX idx_environment (environment_id),
|
INDEX idx_environment (environment_id),
|
||||||
|
INDEX idx_code_source_system (code_source_system_id),
|
||||||
INDEX idx_deploy_system (deploy_system_id),
|
INDEX idx_deploy_system (deploy_system_id),
|
||||||
INDEX idx_deploy_job (deploy_job),
|
INDEX idx_deploy_job (deploy_job),
|
||||||
INDEX idx_workflow_definition (workflow_definition_id),
|
INDEX idx_workflow_definition (workflow_definition_id),
|
||||||
CONSTRAINT fk_team_app_team FOREIGN KEY (team_id) REFERENCES deploy_team (id),
|
CONSTRAINT fk_team_app_team FOREIGN KEY (team_id) REFERENCES deploy_team (id),
|
||||||
CONSTRAINT fk_team_app_application FOREIGN KEY (application_id) REFERENCES deploy_application (id)
|
CONSTRAINT fk_team_app_application FOREIGN KEY (application_id) REFERENCES deploy_application (id)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='团队应用关联表';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='团队应用关联表(包含代码源和部署配置)';
|
||||||
|
|
||||||
-- 团队配置表
|
-- 团队配置表
|
||||||
CREATE TABLE deploy_team_environment_config
|
CREATE TABLE deploy_team_environment_config
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user