反序列化问题。
This commit is contained in:
parent
434d21d501
commit
899ce66e36
@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Tag(name = "项目管理", description = "项目管理相关接口")
|
@Tag(name = "项目组管理", description = "项目组管理相关接口")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/v1/project-group")
|
@RequestMapping("/api/v1/project-group")
|
||||||
public class ProjectGroupApiController extends BaseController<ProjectGroup, ProjectGroupDTO, Long, ProjectGroupQuery> {
|
public class ProjectGroupApiController extends BaseController<ProjectGroup, ProjectGroupDTO, Long, ProjectGroupQuery> {
|
||||||
|
|||||||
@ -6,11 +6,13 @@ import jakarta.validation.constraints.NotNull;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
public class ProjectGroupDTO extends BaseDTO {
|
public class ProjectGroupDTO extends BaseDTO {
|
||||||
|
|
||||||
// @NotNull(message = "租户ID不能为空")
|
// @NotNull(message = "租户ID不能为空")
|
||||||
private Long tenantCode;
|
private Long tenantCode;
|
||||||
|
|
||||||
@NotBlank(message = "项目组编码不能为空")
|
@NotBlank(message = "项目组编码不能为空")
|
||||||
@ -21,6 +23,8 @@ public class ProjectGroupDTO extends BaseDTO {
|
|||||||
|
|
||||||
private String projectGroupDesc;
|
private String projectGroupDesc;
|
||||||
|
|
||||||
|
private List<EnvironmentDTO> environments;
|
||||||
|
|
||||||
@NotBlank(message = "项目组状态不能为空")
|
@NotBlank(message = "项目组状态不能为空")
|
||||||
private String projectGroupStatus;
|
private String projectGroupStatus;
|
||||||
|
|
||||||
|
|||||||
@ -3,13 +3,12 @@ package com.qqchen.deploy.backend.deploy.entity;
|
|||||||
import com.qqchen.deploy.backend.deploy.enums.BuildTypeEnum;
|
import com.qqchen.deploy.backend.deploy.enums.BuildTypeEnum;
|
||||||
import com.qqchen.deploy.backend.deploy.enums.DeployTypeEnum;
|
import com.qqchen.deploy.backend.deploy.enums.DeployTypeEnum;
|
||||||
import com.qqchen.deploy.backend.framework.domain.Entity;
|
import com.qqchen.deploy.backend.framework.domain.Entity;
|
||||||
import jakarta.persistence.Column;
|
import jakarta.persistence.*;
|
||||||
import jakarta.persistence.EnumType;
|
|
||||||
import jakarta.persistence.Enumerated;
|
|
||||||
import jakarta.persistence.Table;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 环境实体
|
* 环境实体
|
||||||
*/
|
*/
|
||||||
@ -62,4 +61,11 @@ public class Environment extends Entity<Long> {
|
|||||||
*/
|
*/
|
||||||
@Column(name = "sort", nullable = false)
|
@Column(name = "sort", nullable = false)
|
||||||
private Integer sort;
|
private Integer sort;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联的项目组列表
|
||||||
|
*/
|
||||||
|
// @ManyToMany(mappedBy = "environments")
|
||||||
|
@ManyToMany(mappedBy = "environments")
|
||||||
|
private List<ProjectGroup> projectGroups;
|
||||||
}
|
}
|
||||||
@ -1,10 +1,15 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.entity;
|
package com.qqchen.deploy.backend.deploy.entity;
|
||||||
|
|
||||||
import com.qqchen.deploy.backend.framework.domain.Entity;
|
import com.qqchen.deploy.backend.framework.domain.Entity;
|
||||||
import jakarta.persistence.Column;
|
import jakarta.persistence.*;
|
||||||
import jakarta.persistence.Table;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
import org.hibernate.annotations.OnDelete;
|
||||||
|
import org.hibernate.annotations.OnDeleteAction;
|
||||||
|
import org.hibernate.annotations.SQLDelete;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目组实体
|
* 项目组实体
|
||||||
@ -22,19 +27,19 @@ public class ProjectGroup extends Entity<Long> {
|
|||||||
private Long tenantCode;
|
private Long tenantCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目组状态
|
* 项目组编码
|
||||||
*/
|
*/
|
||||||
@Column(name = "project_group_code", nullable = false)
|
@Column(name = "project_group_code", nullable = false)
|
||||||
private String projectGroupCode;
|
private String projectGroupCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目组状态
|
* 项目组名称
|
||||||
*/
|
*/
|
||||||
@Column(name = "project_group_name", nullable = false)
|
@Column(name = "project_group_name", nullable = false)
|
||||||
private String projectGroupName;
|
private String projectGroupName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目组状态
|
* 项目组描述
|
||||||
*/
|
*/
|
||||||
@Column(name = "project_group_desc")
|
@Column(name = "project_group_desc")
|
||||||
private String projectGroupDesc;
|
private String projectGroupDesc;
|
||||||
@ -50,4 +55,21 @@ public class ProjectGroup extends Entity<Long> {
|
|||||||
*/
|
*/
|
||||||
@Column(name = "sort", nullable = false)
|
@Column(name = "sort", nullable = false)
|
||||||
private Integer sort;
|
private Integer sort;
|
||||||
}
|
|
||||||
|
/**
|
||||||
|
* 关联的环境列表
|
||||||
|
*/
|
||||||
|
// @ManyToMany(cascade = CascadeType.REMOVE)
|
||||||
|
// @JoinTable(
|
||||||
|
// name = "deploy_project_group_environment",
|
||||||
|
// joinColumns = @JoinColumn(name = "project_group_id"),
|
||||||
|
// inverseJoinColumns = @JoinColumn(name = "environment_id")
|
||||||
|
// )
|
||||||
|
@ManyToMany
|
||||||
|
@JoinTable(
|
||||||
|
name = "deploy_project_group_environment",
|
||||||
|
joinColumns = @JoinColumn(name = "project_group_id"),
|
||||||
|
inverseJoinColumns = @JoinColumn(name = "environment_id")
|
||||||
|
)
|
||||||
|
private List<Environment> environments;
|
||||||
|
}
|
||||||
@ -1,35 +1,34 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.entity;
|
//package com.qqchen.deploy.backend.deploy.entity;
|
||||||
|
//
|
||||||
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.Table;
|
//import jakarta.persistence.JoinColumn;
|
||||||
import lombok.Data;
|
//import jakarta.persistence.ManyToOne;
|
||||||
import lombok.EqualsAndHashCode;
|
//import jakarta.persistence.Table;
|
||||||
|
//import lombok.Data;
|
||||||
/**
|
//import lombok.EqualsAndHashCode;
|
||||||
* 项目环境关联实体
|
//
|
||||||
*/
|
///**
|
||||||
@Data
|
// * 项目环境关联实体
|
||||||
@EqualsAndHashCode(callSuper = true)
|
// */
|
||||||
@jakarta.persistence.Entity
|
//@Data
|
||||||
@Table(name = "deploy_project_group_environment")
|
//@EqualsAndHashCode(callSuper = true)
|
||||||
public class ProjectGroupEnvironment extends Entity<Long> {
|
//@jakarta.persistence.Entity
|
||||||
|
//@Table(name = "deploy_project_group_environment")
|
||||||
/**
|
//public class ProjectGroupEnvironment extends Entity<Long> {
|
||||||
* 项目ID
|
//
|
||||||
*/
|
// /**
|
||||||
@Column(name = "project_group_id", nullable = false)
|
// * 项目ID
|
||||||
private Long projectGroupId;
|
// */
|
||||||
|
// @ManyToOne
|
||||||
/**
|
// @JoinColumn(name = "project_group_id", nullable = false)
|
||||||
* 环境ID
|
// private ProjectGroup projectGroup;
|
||||||
*/
|
//
|
||||||
@Column(name = "environment_id", nullable = false)
|
// /**
|
||||||
private Long environmentId;
|
// * 环境ID
|
||||||
|
// */
|
||||||
/**
|
// @ManyToOne
|
||||||
* 是否启用
|
// @JoinColumn(name = "environment_id", nullable = false)
|
||||||
*/
|
// private Environment environment;
|
||||||
@Column(name = "enabled", nullable = false)
|
//
|
||||||
private Boolean enabled = true;
|
//}
|
||||||
}
|
|
||||||
@ -19,8 +19,8 @@ public class ApplicationQuery extends BaseQuery {
|
|||||||
@QueryField(field = "appStatus")
|
@QueryField(field = "appStatus")
|
||||||
private String appStatus;
|
private String appStatus;
|
||||||
|
|
||||||
@QueryField(field = "projectId")
|
@QueryField(field = "projectGroupId")
|
||||||
private Long projectId;
|
private Long projectGroupId;
|
||||||
|
|
||||||
@QueryField(field = "repoType")
|
@QueryField(field = "repoType")
|
||||||
private String repoType;
|
private String repoType;
|
||||||
|
|||||||
@ -4,8 +4,6 @@ import com.qqchen.deploy.backend.deploy.converter.EnvironmentConverter;
|
|||||||
import com.qqchen.deploy.backend.deploy.dto.EnvironmentDTO;
|
import com.qqchen.deploy.backend.deploy.dto.EnvironmentDTO;
|
||||||
import com.qqchen.deploy.backend.deploy.entity.Environment;
|
import com.qqchen.deploy.backend.deploy.entity.Environment;
|
||||||
import com.qqchen.deploy.backend.deploy.entity.QEnvironment;
|
import com.qqchen.deploy.backend.deploy.entity.QEnvironment;
|
||||||
import com.qqchen.deploy.backend.deploy.entity.QProjectGroup;
|
|
||||||
import com.qqchen.deploy.backend.deploy.entity.QProjectGroupEnvironment;
|
|
||||||
import com.qqchen.deploy.backend.deploy.repository.IEnvironmentRepository;
|
import com.qqchen.deploy.backend.deploy.repository.IEnvironmentRepository;
|
||||||
import com.qqchen.deploy.backend.deploy.service.IEnvironmentService;
|
import com.qqchen.deploy.backend.deploy.service.IEnvironmentService;
|
||||||
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
|
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
|
||||||
@ -34,19 +32,13 @@ public class EnvironmentServiceImpl extends BaseServiceImpl<Environment, Environ
|
|||||||
@Override
|
@Override
|
||||||
public List<EnvironmentDTO> getProjectEnvironments(Long projectGroupId) {
|
public List<EnvironmentDTO> getProjectEnvironments(Long projectGroupId) {
|
||||||
QEnvironment environment = QEnvironment.environment;
|
QEnvironment environment = QEnvironment.environment;
|
||||||
QProjectGroupEnvironment projectEnvironment = QProjectGroupEnvironment.projectGroupEnvironment;
|
|
||||||
|
|
||||||
JPAQueryFactory queryFactory = new JPAQueryFactory(entityManager);
|
JPAQueryFactory queryFactory = new JPAQueryFactory(entityManager);
|
||||||
|
|
||||||
List<Environment> environments = queryFactory
|
List<Environment> environments = queryFactory
|
||||||
.select(environment)
|
.select(environment)
|
||||||
.from(environment)
|
.from(environment)
|
||||||
.innerJoin(projectEnvironment)
|
.on(environment.id.eq(environment.id))
|
||||||
.on(projectEnvironment.environmentId.eq(environment.id))
|
|
||||||
.where(
|
|
||||||
projectEnvironment.projectGroupId.eq(projectGroupId),
|
|
||||||
projectEnvironment.enabled.isTrue()
|
|
||||||
)
|
|
||||||
.orderBy(environment.sort.asc())
|
.orderBy(environment.sort.asc())
|
||||||
.fetch();
|
.fetch();
|
||||||
|
|
||||||
|
|||||||
@ -19,7 +19,7 @@ public class BaseDTO implements Serializable {
|
|||||||
|
|
||||||
private String updateBy;
|
private String updateBy;
|
||||||
|
|
||||||
private Integer version;
|
private Integer version = 1;
|
||||||
|
|
||||||
private Boolean deleted = false;
|
private Boolean deleted = false;
|
||||||
|
|
||||||
|
|||||||
@ -634,7 +634,6 @@ CREATE TABLE deploy_project_group_environment
|
|||||||
-- 业务字段
|
-- 业务字段
|
||||||
project_group_id BIGINT NOT NULL COMMENT '项目ID',
|
project_group_id BIGINT NOT NULL COMMENT '项目ID',
|
||||||
environment_id BIGINT NOT NULL COMMENT '环境ID',
|
environment_id BIGINT NOT NULL COMMENT '环境ID',
|
||||||
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用',
|
|
||||||
|
|
||||||
-- 基础字段
|
-- 基础字段
|
||||||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user