大声道撒旦
This commit is contained in:
parent
09a6a020ce
commit
e8cd2575eb
@ -1,6 +1,10 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.dto;
|
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.framework.dto.BaseDTO;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import jakarta.persistence.Column;
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -10,9 +14,6 @@ import lombok.EqualsAndHashCode;
|
|||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
public class ApplicationDTO extends BaseDTO {
|
public class ApplicationDTO extends BaseDTO {
|
||||||
|
|
||||||
@NotNull(message = "项目ID不能为空")
|
|
||||||
private Long projectGroupId;
|
|
||||||
|
|
||||||
@NotBlank(message = "应用编码不能为空")
|
@NotBlank(message = "应用编码不能为空")
|
||||||
private String appCode;
|
private String appCode;
|
||||||
|
|
||||||
@ -21,9 +22,17 @@ public class ApplicationDTO extends BaseDTO {
|
|||||||
|
|
||||||
private String appDesc;
|
private String appDesc;
|
||||||
|
|
||||||
@NotBlank(message = "应用状态不能为空")
|
@NotBlank(message = "仓库URL不能为空")
|
||||||
private String appStatus;
|
private String repoUrl;
|
||||||
|
|
||||||
|
@NotNull(message = "开发语言")
|
||||||
|
private DevelopmentLanguageTypeEnum language;
|
||||||
|
|
||||||
|
@Schema(description = "是否启用")
|
||||||
|
private Boolean enabled;
|
||||||
|
|
||||||
@NotNull(message = "排序号不能为空")
|
@NotNull(message = "排序号不能为空")
|
||||||
private Integer sort;
|
private Integer sort;
|
||||||
|
|
||||||
|
private ProjectGroupDTO projectGroup;
|
||||||
}
|
}
|
||||||
@ -31,8 +31,7 @@ public class ProjectGroupDTO extends BaseDTO {
|
|||||||
|
|
||||||
private List<ApplicationDTO> applications;
|
private List<ApplicationDTO> applications;
|
||||||
|
|
||||||
@NotBlank(message = "项目组状态不能为空")
|
private Boolean enabled;
|
||||||
private String projectGroupStatus;
|
|
||||||
|
|
||||||
@NotNull(message = "排序号不能为空")
|
@NotNull(message = "排序号不能为空")
|
||||||
private Integer sort;
|
private Integer sort;
|
||||||
|
|||||||
@ -1,11 +1,20 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.entity;
|
package com.qqchen.deploy.backend.deploy.entity;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonBackReference;
|
||||||
|
import com.qqchen.deploy.backend.deploy.enums.DevelopmentLanguageTypeEnum;
|
||||||
import com.qqchen.deploy.backend.framework.domain.Entity;
|
import com.qqchen.deploy.backend.framework.domain.Entity;
|
||||||
import jakarta.persistence.Column;
|
import jakarta.persistence.Column;
|
||||||
|
import jakarta.persistence.FetchType;
|
||||||
|
import jakarta.persistence.JoinColumn;
|
||||||
|
import jakarta.persistence.ManyToOne;
|
||||||
|
import jakarta.persistence.OneToMany;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 应用实体
|
* 应用实体
|
||||||
*/
|
*/
|
||||||
@ -15,12 +24,6 @@ import lombok.EqualsAndHashCode;
|
|||||||
@Table(name = "deploy_application")
|
@Table(name = "deploy_application")
|
||||||
public class Application extends Entity<Long> {
|
public class Application extends Entity<Long> {
|
||||||
|
|
||||||
/**
|
|
||||||
* 所属项目ID
|
|
||||||
*/
|
|
||||||
@Column(name = "project_group_id", nullable = false)
|
|
||||||
private Long projectGroupId;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 应用编码
|
* 应用编码
|
||||||
*/
|
*/
|
||||||
@ -42,8 +45,8 @@ public class Application extends Entity<Long> {
|
|||||||
/**
|
/**
|
||||||
* 应用状态
|
* 应用状态
|
||||||
*/
|
*/
|
||||||
@Column(name = "app_status", nullable = false)
|
@Column(nullable = false)
|
||||||
private String appStatus;
|
private Boolean enabled = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 代码仓库地址
|
* 代码仓库地址
|
||||||
@ -51,39 +54,25 @@ public class Application extends Entity<Long> {
|
|||||||
@Column(name = "repo_url")
|
@Column(name = "repo_url")
|
||||||
private String repoUrl;
|
private String repoUrl;
|
||||||
|
|
||||||
/**
|
|
||||||
* 代码分支
|
|
||||||
*/
|
|
||||||
@Column(name = "repo_branch")
|
|
||||||
private String repoBranch;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 仓库类型(如:Git/SVN)
|
|
||||||
*/
|
|
||||||
@Column(name = "repo_type")
|
|
||||||
private String repoType;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 构建类型(如:Maven/Gradle)
|
|
||||||
*/
|
|
||||||
@Column(name = "build_type")
|
|
||||||
private String buildType;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 开发语言
|
* 开发语言
|
||||||
*/
|
*/
|
||||||
@Column(name = "dev_language")
|
@Column(name = "language")
|
||||||
private String devLanguage;
|
private DevelopmentLanguageTypeEnum language;
|
||||||
|
|
||||||
/**
|
|
||||||
* 开发框架
|
|
||||||
*/
|
|
||||||
@Column(name = "dev_framework")
|
|
||||||
private String devFramework;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 排序号
|
* 排序号
|
||||||
*/
|
*/
|
||||||
@Column(name = "sort", nullable = false)
|
@Column(name = "sort", nullable = false)
|
||||||
private Integer sort;
|
private Integer sort;
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * 所属项目ID
|
||||||
|
// */
|
||||||
|
// @Column(name = "project_group_id", nullable = false)
|
||||||
|
// private Long projectGroupId;
|
||||||
|
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
|
@JoinColumn(name = "project_group_id")
|
||||||
|
private ProjectGroup projectGroup;
|
||||||
}
|
}
|
||||||
@ -1,7 +1,9 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.entity;
|
package com.qqchen.deploy.backend.deploy.entity;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
||||||
import com.qqchen.deploy.backend.deploy.enums.ProjectGroupTypeEnum;
|
import com.qqchen.deploy.backend.deploy.enums.ProjectGroupTypeEnum;
|
||||||
import com.qqchen.deploy.backend.framework.domain.Entity;
|
import com.qqchen.deploy.backend.framework.domain.Entity;
|
||||||
|
import com.qqchen.deploy.backend.system.entity.User;
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@ -9,7 +11,9 @@ import org.hibernate.annotations.SQLDelete;
|
|||||||
import org.hibernate.annotations.Where;
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目组实体
|
* 项目组实体
|
||||||
@ -54,8 +58,8 @@ public class ProjectGroup extends Entity<Long> {
|
|||||||
/**
|
/**
|
||||||
* 项目组状态
|
* 项目组状态
|
||||||
*/
|
*/
|
||||||
@Column(name = "project_group_status", nullable = false)
|
@Column(nullable = false)
|
||||||
private String projectGroupStatus;
|
private Boolean enabled = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 排序号
|
* 排序号
|
||||||
@ -74,8 +78,6 @@ public class ProjectGroup extends Entity<Long> {
|
|||||||
)
|
)
|
||||||
private List<Environment> environments = new ArrayList<>();
|
private List<Environment> environments = new ArrayList<>();
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "projectGroup", fetch = FetchType.LAZY)
|
||||||
@OneToMany(fetch = FetchType.LAZY)
|
private Set<Application> applications = new HashSet<>();
|
||||||
@JoinColumn(name = "project_group_id")
|
|
||||||
private List<Application> applications = new ArrayList<>();
|
|
||||||
}
|
}
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
package com.qqchen.deploy.backend.deploy.enums;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public enum DevelopmentLanguageTypeEnum {
|
||||||
|
|
||||||
|
JAVA("Java"),
|
||||||
|
NODE_JS("NodeJS"),
|
||||||
|
PYTHON("Python"),
|
||||||
|
GO("Go");
|
||||||
|
|
||||||
|
private final String code;
|
||||||
|
|
||||||
|
DevelopmentLanguageTypeEnum(String code) {
|
||||||
|
this.code = code;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -6,5 +6,5 @@ import org.springframework.stereotype.Repository;
|
|||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
public interface IApplicationRepository extends IBaseRepository<Application, Long> {
|
public interface IApplicationRepository extends IBaseRepository<Application, Long> {
|
||||||
boolean existsByAppCodeAndProjectGroupIdAndDeletedFalse(String appCode, Long projectId);
|
|
||||||
}
|
}
|
||||||
@ -543,22 +543,22 @@ CREATE TABLE workflow_log
|
|||||||
CREATE TABLE deploy_project_group
|
CREATE TABLE deploy_project_group
|
||||||
(
|
(
|
||||||
-- 基础字段
|
-- 基础字段
|
||||||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||||||
create_by VARCHAR(100) NULL COMMENT '创建人',
|
create_by VARCHAR(100) NULL COMMENT '创建人',
|
||||||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||||||
update_by VARCHAR(100) NULL COMMENT '更新人',
|
update_by VARCHAR(100) NULL COMMENT '更新人',
|
||||||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||||||
version INT NOT NULL DEFAULT 1 COMMENT '版本号',
|
version INT NOT NULL DEFAULT 1 COMMENT '版本号',
|
||||||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除:0-未删除,1-已删除',
|
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除:0-未删除,1-已删除',
|
||||||
|
|
||||||
-- 业务字段
|
-- 业务字段
|
||||||
tenant_code BIGINT DEFAULT NULL COMMENT '租户CODE',
|
tenant_code BIGINT DEFAULT NULL COMMENT '租户CODE',
|
||||||
type VARCHAR(50) NULL COMMENT '项目组类型',
|
type VARCHAR(50) NULL COMMENT '项目组类型',
|
||||||
project_group_code VARCHAR(50) NOT NULL COMMENT '项目组编码',
|
project_group_code VARCHAR(50) NOT NULL COMMENT '项目组编码',
|
||||||
project_group_name VARCHAR(100) NOT NULL COMMENT '项目组名称',
|
project_group_name VARCHAR(100) NOT NULL COMMENT '项目组名称',
|
||||||
project_group_desc VARCHAR(255) NULL COMMENT '项目组描述',
|
project_group_desc VARCHAR(255) NULL COMMENT '项目组描述',
|
||||||
project_group_status VARCHAR(50) NOT NULL DEFAULT 'ENABLED' COMMENT '项目组状态:ENABLED-启用,DISABLED-禁用',
|
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)',
|
||||||
sort INT NOT NULL DEFAULT 0 COMMENT '排序号',
|
sort INT NOT NULL DEFAULT 0 COMMENT '排序号',
|
||||||
|
|
||||||
-- 索引
|
-- 索引
|
||||||
INDEX idx_tenant_id (tenant_code) COMMENT '租户ID索引',
|
INDEX idx_tenant_id (tenant_code) COMMENT '租户ID索引',
|
||||||
@ -574,37 +574,34 @@ CREATE TABLE deploy_project_group
|
|||||||
-- 应用表
|
-- 应用表
|
||||||
CREATE TABLE deploy_application
|
CREATE TABLE deploy_application
|
||||||
(
|
(
|
||||||
-- 基础字段
|
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||||||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
-- 业务字段
|
||||||
create_by VARCHAR(100) NULL COMMENT '创建人',
|
app_code VARCHAR(50) NOT NULL COMMENT '应用编码',
|
||||||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
app_name VARCHAR(100) NOT NULL COMMENT '应用名称',
|
||||||
update_by VARCHAR(100) NULL COMMENT '更新人',
|
app_desc VARCHAR(255) NULL COMMENT '应用描述',
|
||||||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
repo_url VARCHAR(255) NULL COMMENT '代码仓库地址',
|
||||||
version INT NOT NULL DEFAULT 1 COMMENT '版本号',
|
language VARCHAR(50) NULL COMMENT '开发语言:JAVA、PYTHON、NODEJS',
|
||||||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除:0-未删除,1-已删除',
|
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)',
|
||||||
|
sort INT NOT NULL DEFAULT 0 COMMENT '排序号',
|
||||||
|
project_group_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-已删除',
|
||||||
|
|
||||||
-- 业务字段
|
-- 索引
|
||||||
project_group_id BIGINT NOT NULL COMMENT '所属项目组ID',
|
INDEX idx_project_group_id (project_group_id) COMMENT '项目ID索引',
|
||||||
app_code VARCHAR(50) NOT NULL COMMENT '应用编码',
|
UNIQUE INDEX uk_app_code (project_group_id, app_code) COMMENT '项目下应用编码唯一',
|
||||||
app_name VARCHAR(100) NOT NULL COMMENT '应用名称',
|
|
||||||
app_desc VARCHAR(255) NULL COMMENT '应用描述',
|
|
||||||
app_status VARCHAR(50) NOT NULL DEFAULT 'ENABLED' COMMENT '应用状态:ENABLED-启用,DISABLED-禁用',
|
|
||||||
repo_url VARCHAR(255) NULL COMMENT '代码仓库地址',
|
|
||||||
repo_branch VARCHAR(100) NULL COMMENT '代码仓库分支',
|
|
||||||
repo_type VARCHAR(50) NULL COMMENT '代码仓库类型:GIT、SVN',
|
|
||||||
build_type VARCHAR(50) NULL COMMENT '构建类型:MAVEN、GRADLE、NPM',
|
|
||||||
dev_language VARCHAR(50) NULL COMMENT '开发语言:JAVA、PYTHON、NODEJS',
|
|
||||||
dev_framework VARCHAR(50) NULL COMMENT '开发框架:SPRING_BOOT、DJANGO、EXPRESS',
|
|
||||||
sort INT NOT NULL DEFAULT 0 COMMENT '排序号',
|
|
||||||
|
|
||||||
-- 索引
|
-- 外键约束
|
||||||
INDEX idx_project_group_id (project_group_id) COMMENT '项目ID索引',
|
CONSTRAINT fk_application_project_group FOREIGN KEY (project_group_id)
|
||||||
UNIQUE INDEX uk_app_code (project_group_id, app_code) COMMENT '项目下应用编码唯一',
|
REFERENCES deploy_project_group (id)
|
||||||
|
) ENGINE = InnoDB
|
||||||
-- 外键约束
|
DEFAULT CHARSET = utf8mb4
|
||||||
CONSTRAINT fk_application_project_group FOREIGN KEY (project_group_id)
|
COLLATE = utf8mb4_unicode_ci COMMENT ='应用表';
|
||||||
REFERENCES deploy_project_group (id)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='应用表';
|
|
||||||
|
|
||||||
-- 环境表
|
-- 环境表
|
||||||
CREATE TABLE deploy_environment
|
CREATE TABLE deploy_environment
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user