反序列化问题。

This commit is contained in:
dengqichen 2024-12-23 15:13:33 +08:00
parent 48f8459331
commit 1e852ba818
16 changed files with 277 additions and 25 deletions

View File

@ -13,7 +13,7 @@ import java.util.List;
@Tag(name = "应用管理", description = "应用管理相关接口")
@RestController
@RequestMapping("/api/v1/application")
@RequestMapping("/api/v1/applications")
public class ApplicationApiController extends BaseController<Application, ApplicationDTO, Long, ApplicationQuery> {
@Override

View File

@ -0,0 +1,26 @@
package com.qqchen.deploy.backend.deploy.api;
import com.qqchen.deploy.backend.deploy.dto.EnvironmentDTO;
import com.qqchen.deploy.backend.deploy.entity.Environment;
import com.qqchen.deploy.backend.deploy.query.EnvironmentQuery;
import com.qqchen.deploy.backend.framework.controller.BaseController;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 环境管理API控制器
*/
@Tag(name = "环境管理", description = "环境管理相关接口")
@RestController
@RequestMapping("/api/v1/environments")
public class EnvironmentApiController extends BaseController<Environment, EnvironmentDTO, Long, EnvironmentQuery> {
@Override
protected void exportData(HttpServletResponse response, List<EnvironmentDTO> data) {
// TODO: 实现导出逻辑
}
}

View File

@ -13,7 +13,7 @@ import java.util.List;
@Tag(name = "项目管理", description = "项目管理相关接口")
@RestController
@RequestMapping("/api/v1/project")
@RequestMapping("/api/v1/projects")
public class ProjectApiController extends BaseController<Project, ProjectDTO, Long, ProjectQuery> {
@Override

View File

@ -0,0 +1,10 @@
package com.qqchen.deploy.backend.deploy.converter;
import com.qqchen.deploy.backend.deploy.dto.EnvironmentDTO;
import com.qqchen.deploy.backend.deploy.entity.Environment;
import com.qqchen.deploy.backend.framework.converter.BaseConverter;
import org.mapstruct.Mapper;
@Mapper(config = BaseConverter.class)
public interface EnvironmentConverter extends BaseConverter<Environment, EnvironmentDTO> {
}

View File

@ -24,18 +24,6 @@ public class ApplicationDTO extends BaseDTO {
@NotBlank(message = "应用状态不能为空")
private String appStatus;
private String repoUrl;
private String repoBranch;
private String repoType;
private String buildType;
private String devLanguage;
private String devFramework;
@NotNull(message = "排序号不能为空")
private Integer sort;
}

View File

@ -0,0 +1,40 @@
package com.qqchen.deploy.backend.deploy.dto;
import com.qqchen.deploy.backend.framework.dto.BaseDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 环境DTO
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "环境DTO")
public class EnvironmentDTO extends BaseDTO {
@Schema(description = "租户编码")
@NotBlank(message = "租户编码不能为空")
private String tenantCode;
@Schema(description = "项目ID")
@NotNull(message = "项目ID不能为空")
private Long projectId;
@Schema(description = "环境编码")
@NotBlank(message = "环境编码不能为空")
private String envCode;
@Schema(description = "环境名称")
@NotBlank(message = "环境名称不能为空")
private String envName;
@Schema(description = "环境描述")
private String envDesc;
@Schema(description = "排序号")
@NotNull(message = "排序号不能为空")
private Integer sort;
}

View File

@ -10,7 +10,7 @@ import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
public class ProjectDTO extends BaseDTO {
@NotNull(message = "租户ID不能为空")
// @NotNull(message = "租户ID不能为空")
private Long tenantId;
@NotBlank(message = "项目编码不能为空")

View File

@ -6,45 +6,84 @@ import jakarta.persistence.Table;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 应用实体
*/
@Data
@EqualsAndHashCode(callSuper = true)
@jakarta.persistence.Entity
@Table(name = "deploy_application")
public class Application extends Entity<Long> {
/**
* 所属项目ID
*/
@Column(name = "project_id", nullable = false)
private Long projectId;
/**
* 应用编码
*/
@Column(name = "app_code", nullable = false)
private String appCode;
/**
* 应用名称
*/
@Column(name = "app_name", nullable = false)
private String appName;
/**
* 应用描述
*/
@Column(name = "app_desc")
private String appDesc;
/**
* 应用状态
*/
@Column(name = "app_status", nullable = false)
private String appStatus;
/**
* 代码仓库地址
*/
@Column(name = "repo_url")
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")
private String devLanguage;
/**
* 开发框架
*/
@Column(name = "dev_framework")
private String devFramework;
/**
* 排序号
*/
@Column(name = "sort", nullable = false)
private Integer sort;
}

View File

@ -0,0 +1,53 @@
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_environment")
public class Environment extends Entity<Long> {
/**
* 租户编码
*/
@Column(name = "tenant_code", nullable = false)
private String tenantCode;
/**
* 项目ID
*/
@Column(name = "project_id", nullable = false)
private Long projectId;
/**
* 环境编码
*/
@Column(name = "env_code", nullable = false)
private String envCode;
/**
* 环境名称
*/
@Column(name = "env_name", nullable = false)
private String envName;
/**
* 环境描述
*/
@Column(name = "env_desc")
private String envDesc;
/**
* 排序号
*/
@Column(name = "sort", nullable = false)
private Integer sort;
}

View File

@ -18,7 +18,7 @@ public class Project extends Entity<Long> {
/**
* 租户ID
*/
@Column(name = "tenant_id", nullable = false)
@Column(name = "tenant_id")
private Long tenantId;
/**

View File

@ -0,0 +1,33 @@
package com.qqchen.deploy.backend.deploy.query;
import com.qqchen.deploy.backend.framework.annotation.QueryField;
import com.qqchen.deploy.backend.framework.enums.QueryType;
import com.qqchen.deploy.backend.framework.query.BaseQuery;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 环境查询对象
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "环境查询对象")
public class EnvironmentQuery extends BaseQuery {
@Schema(description = "租户编码")
@QueryField(field = "tenantCode", type = QueryType.LIKE)
private String tenantCode;
@Schema(description = "项目ID")
@QueryField(field = "projectId", type = QueryType.EQUAL)
private Long projectId;
@Schema(description = "环境编码")
@QueryField(field = "envCode", type = QueryType.LIKE)
private String envCode;
@Schema(description = "环境名称")
@QueryField(field = "envName", type = QueryType.LIKE)
private String envName;
}

View File

@ -0,0 +1,12 @@
package com.qqchen.deploy.backend.deploy.repository;
import com.qqchen.deploy.backend.deploy.entity.Environment;
import com.qqchen.deploy.backend.framework.repository.IBaseRepository;
import org.springframework.stereotype.Repository;
/**
* 环境数据访问接口
*/
@Repository
public interface IEnvironmentRepository extends IBaseRepository<Environment, Long> {
}

View File

@ -0,0 +1,12 @@
package com.qqchen.deploy.backend.deploy.service;
import com.qqchen.deploy.backend.deploy.dto.EnvironmentDTO;
import com.qqchen.deploy.backend.deploy.entity.Environment;
import com.qqchen.deploy.backend.deploy.query.EnvironmentQuery;
import com.qqchen.deploy.backend.framework.service.IBaseService;
/**
* 环境服务接口
*/
public interface IEnvironmentService extends IBaseService<Environment, EnvironmentDTO, Long> {
}

View File

@ -0,0 +1,14 @@
package com.qqchen.deploy.backend.deploy.service.impl;
import com.qqchen.deploy.backend.deploy.dto.EnvironmentDTO;
import com.qqchen.deploy.backend.deploy.entity.Environment;
import com.qqchen.deploy.backend.deploy.service.IEnvironmentService;
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
import org.springframework.stereotype.Service;
/**
* 环境服务实现类
*/
@Service
public class EnvironmentServiceImpl extends BaseServiceImpl<Environment, EnvironmentDTO, Long> implements IEnvironmentService {
}

View File

@ -552,7 +552,7 @@ CREATE TABLE deploy_project
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除0-未删除1-已删除',
-- 业务字段
tenant_id BIGINT NOT NULL COMMENT '租户ID',
tenant_id BIGINT DEFAULT NULL COMMENT '租户ID',
project_code VARCHAR(50) NOT NULL COMMENT '项目编码',
project_name VARCHAR(100) NOT NULL COMMENT '项目名称',
project_desc VARCHAR(255) NULL COMMENT '项目描述',
@ -603,3 +603,31 @@ CREATE TABLE deploy_application
REFERENCES deploy_project (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='应用表';
-- 环境表
CREATE TABLE deploy_environment
(
-- 业务字段
tenant_code VARCHAR(50) NOT NULL COMMENT '租户编码',
project_id BIGINT NOT NULL COMMENT '项目ID',
env_code VARCHAR(50) NOT NULL COMMENT '环境编码',
env_name VARCHAR(100) NOT NULL COMMENT '环境名称',
env_desc VARCHAR(255) NULL COMMENT '环境描述',
sort INT NOT NULL DEFAULT 0 COMMENT '排序号',
-- 基础字段
id BIGINT AUTO_INCREMENT PRIMARY KEY 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 '是否删除',
-- 索引
INDEX idx_project_id (project_id) COMMENT '项目ID索引',
UNIQUE INDEX uk_project_env_code (project_id, env_code) COMMENT '项目下环境编码唯一',
CONSTRAINT fk_environment_project FOREIGN KEY (project_id)
REFERENCES deploy_project (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='环境表';

View File

@ -73,16 +73,13 @@ VALUES
-- 节点管理
(103, '节点管理', '/workflow/node-design', '/src/pages/workflow/nodedesign/design/index', 'ControlOutlined', 2, 100, 40, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
-- 项目管理
(300, '项目管理', '/project', 'Layout', 'ProjectOutlined', 1, NULL, 4, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
-- 项目组列表
(301, '项目组列表', '/project/list', '/src/pages/project/list/index', 'UnorderedListOutlined', 2, 300, 10, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
(200, '部署管理', '/deploy', '', 'DeploymentUnitOutlined', 2, 0, 50, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
-- 应用管理
(400, '应用管理', '/application', 'Layout', 'AppstoreOutlined', 1, NULL, 5, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
-- 应用列表
(401, '应用列表', '/application/list', '/src/pages/application/list/index', 'UnorderedListOutlined', 2, 400, 10, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE);
(201, '项目组管理', '/deploy/project', '/src/pages/Deploy/Project/List/index', 'ProjectOutlined', 2, 200, 1, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
(202, '应用管理', '/deploy/application', '/src/pages/Deploy/Application/List/index', 'AppstoreOutlined', 2, 200, 2, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
(203, '环境管理', '/deploy/environment', '/src/pages/Deploy/Environment/List/index', 'CloudOutlined', 2, 200, 3, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE);
-- 初始化角色数据
INSERT INTO sys_role (id, create_time, code, name, type, description, sort)
VALUES