反序列化问题。

This commit is contained in:
dengqichen 2024-12-23 18:22:27 +08:00
parent 434d21d501
commit 899ce66e36
9 changed files with 83 additions and 61 deletions

View File

@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Tag(name = "项目管理", description = "项目管理相关接口")
@Tag(name = "项目管理", description = "项目管理相关接口")
@RestController
@RequestMapping("/api/v1/project-group")
public class ProjectGroupApiController extends BaseController<ProjectGroup, ProjectGroupDTO, Long, ProjectGroupQuery> {

View File

@ -6,11 +6,13 @@ import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
public class ProjectGroupDTO extends BaseDTO {
// @NotNull(message = "租户ID不能为空")
// @NotNull(message = "租户ID不能为空")
private Long tenantCode;
@NotBlank(message = "项目组编码不能为空")
@ -21,6 +23,8 @@ public class ProjectGroupDTO extends BaseDTO {
private String projectGroupDesc;
private List<EnvironmentDTO> environments;
@NotBlank(message = "项目组状态不能为空")
private String projectGroupStatus;

View File

@ -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.DeployTypeEnum;
import com.qqchen.deploy.backend.framework.domain.Entity;
import jakarta.persistence.Column;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.Table;
import jakarta.persistence.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* 环境实体
*/
@ -62,4 +61,11 @@ public class Environment extends Entity<Long> {
*/
@Column(name = "sort", nullable = false)
private Integer sort;
/**
* 关联的项目组列表
*/
// @ManyToMany(mappedBy = "environments")
@ManyToMany(mappedBy = "environments")
private List<ProjectGroup> projectGroups;
}

View File

@ -1,10 +1,15 @@
package com.qqchen.deploy.backend.deploy.entity;
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 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;
/**
* 项目组状态
* 项目组编码
*/
@Column(name = "project_group_code", nullable = false)
private String projectGroupCode;
/**
* 项目组状态
* 项目组名称
*/
@Column(name = "project_group_name", nullable = false)
private String projectGroupName;
/**
* 项目组状态
* 项目组描述
*/
@Column(name = "project_group_desc")
private String projectGroupDesc;
@ -50,4 +55,21 @@ public class ProjectGroup extends Entity<Long> {
*/
@Column(name = "sort", nullable = false)
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;
}

View File

@ -1,35 +1,34 @@
package com.qqchen.deploy.backend.deploy.entity;
import com.qqchen.deploy.backend.framework.domain.Entity;
import jakarta.persistence.Column;
import jakarta.persistence.Table;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 项目环境关联实体
*/
@Data
@EqualsAndHashCode(callSuper = true)
@jakarta.persistence.Entity
@Table(name = "deploy_project_group_environment")
public class ProjectGroupEnvironment extends Entity<Long> {
/**
* 项目ID
*/
@Column(name = "project_group_id", nullable = false)
private Long projectGroupId;
/**
* 环境ID
*/
@Column(name = "environment_id", nullable = false)
private Long environmentId;
/**
* 是否启用
*/
@Column(name = "enabled", nullable = false)
private Boolean enabled = true;
}
//package com.qqchen.deploy.backend.deploy.entity;
//
//import com.qqchen.deploy.backend.framework.domain.Entity;
//import jakarta.persistence.Column;
//import jakarta.persistence.JoinColumn;
//import jakarta.persistence.ManyToOne;
//import jakarta.persistence.Table;
//import lombok.Data;
//import lombok.EqualsAndHashCode;
//
///**
// * 项目环境关联实体
// */
//@Data
//@EqualsAndHashCode(callSuper = true)
//@jakarta.persistence.Entity
//@Table(name = "deploy_project_group_environment")
//public class ProjectGroupEnvironment extends Entity<Long> {
//
// /**
// * 项目ID
// */
// @ManyToOne
// @JoinColumn(name = "project_group_id", nullable = false)
// private ProjectGroup projectGroup;
//
// /**
// * 环境ID
// */
// @ManyToOne
// @JoinColumn(name = "environment_id", nullable = false)
// private Environment environment;
//
//}

View File

@ -19,8 +19,8 @@ public class ApplicationQuery extends BaseQuery {
@QueryField(field = "appStatus")
private String appStatus;
@QueryField(field = "projectId")
private Long projectId;
@QueryField(field = "projectGroupId")
private Long projectGroupId;
@QueryField(field = "repoType")
private String repoType;

View File

@ -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.entity.Environment;
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.service.IEnvironmentService;
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
@ -34,19 +32,13 @@ public class EnvironmentServiceImpl extends BaseServiceImpl<Environment, Environ
@Override
public List<EnvironmentDTO> getProjectEnvironments(Long projectGroupId) {
QEnvironment environment = QEnvironment.environment;
QProjectGroupEnvironment projectEnvironment = QProjectGroupEnvironment.projectGroupEnvironment;
JPAQueryFactory queryFactory = new JPAQueryFactory(entityManager);
List<Environment> environments = queryFactory
.select(environment)
.from(environment)
.innerJoin(projectEnvironment)
.on(projectEnvironment.environmentId.eq(environment.id))
.where(
projectEnvironment.projectGroupId.eq(projectGroupId),
projectEnvironment.enabled.isTrue()
)
.on(environment.id.eq(environment.id))
.orderBy(environment.sort.asc())
.fetch();

View File

@ -19,7 +19,7 @@ public class BaseDTO implements Serializable {
private String updateBy;
private Integer version;
private Integer version = 1;
private Boolean deleted = false;

View File

@ -634,7 +634,6 @@ CREATE TABLE deploy_project_group_environment
-- 业务字段
project_group_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',