反序列化问题。
This commit is contained in:
parent
48f8459331
commit
1e852ba818
@ -13,7 +13,7 @@ import java.util.List;
|
|||||||
|
|
||||||
@Tag(name = "应用管理", description = "应用管理相关接口")
|
@Tag(name = "应用管理", description = "应用管理相关接口")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/v1/application")
|
@RequestMapping("/api/v1/applications")
|
||||||
public class ApplicationApiController extends BaseController<Application, ApplicationDTO, Long, ApplicationQuery> {
|
public class ApplicationApiController extends BaseController<Application, ApplicationDTO, Long, ApplicationQuery> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -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: 实现导出逻辑
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -13,7 +13,7 @@ import java.util.List;
|
|||||||
|
|
||||||
@Tag(name = "项目管理", description = "项目管理相关接口")
|
@Tag(name = "项目管理", description = "项目管理相关接口")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/v1/project")
|
@RequestMapping("/api/v1/projects")
|
||||||
public class ProjectApiController extends BaseController<Project, ProjectDTO, Long, ProjectQuery> {
|
public class ProjectApiController extends BaseController<Project, ProjectDTO, Long, ProjectQuery> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -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> {
|
||||||
|
}
|
||||||
@ -24,18 +24,6 @@ public class ApplicationDTO extends BaseDTO {
|
|||||||
@NotBlank(message = "应用状态不能为空")
|
@NotBlank(message = "应用状态不能为空")
|
||||||
private String appStatus;
|
private String appStatus;
|
||||||
|
|
||||||
private String repoUrl;
|
|
||||||
|
|
||||||
private String repoBranch;
|
|
||||||
|
|
||||||
private String repoType;
|
|
||||||
|
|
||||||
private String buildType;
|
|
||||||
|
|
||||||
private String devLanguage;
|
|
||||||
|
|
||||||
private String devFramework;
|
|
||||||
|
|
||||||
@NotNull(message = "排序号不能为空")
|
@NotNull(message = "排序号不能为空")
|
||||||
private Integer sort;
|
private Integer sort;
|
||||||
}
|
}
|
||||||
@ -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;
|
||||||
|
}
|
||||||
@ -10,7 +10,7 @@ import lombok.EqualsAndHashCode;
|
|||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
public class ProjectDTO extends BaseDTO {
|
public class ProjectDTO extends BaseDTO {
|
||||||
|
|
||||||
@NotNull(message = "租户ID不能为空")
|
// @NotNull(message = "租户ID不能为空")
|
||||||
private Long tenantId;
|
private Long tenantId;
|
||||||
|
|
||||||
@NotBlank(message = "项目编码不能为空")
|
@NotBlank(message = "项目编码不能为空")
|
||||||
|
|||||||
@ -6,45 +6,84 @@ import jakarta.persistence.Table;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应用实体
|
||||||
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@jakarta.persistence.Entity
|
@jakarta.persistence.Entity
|
||||||
@Table(name = "deploy_application")
|
@Table(name = "deploy_application")
|
||||||
public class Application extends Entity<Long> {
|
public class Application extends Entity<Long> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 所属项目ID
|
||||||
|
*/
|
||||||
@Column(name = "project_id", nullable = false)
|
@Column(name = "project_id", nullable = false)
|
||||||
private Long projectId;
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应用编码
|
||||||
|
*/
|
||||||
@Column(name = "app_code", nullable = false)
|
@Column(name = "app_code", nullable = false)
|
||||||
private String appCode;
|
private String appCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应用名称
|
||||||
|
*/
|
||||||
@Column(name = "app_name", nullable = false)
|
@Column(name = "app_name", nullable = false)
|
||||||
private String appName;
|
private String appName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应用描述
|
||||||
|
*/
|
||||||
@Column(name = "app_desc")
|
@Column(name = "app_desc")
|
||||||
private String appDesc;
|
private String appDesc;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应用状态
|
||||||
|
*/
|
||||||
@Column(name = "app_status", nullable = false)
|
@Column(name = "app_status", nullable = false)
|
||||||
private String appStatus;
|
private String appStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 代码仓库地址
|
||||||
|
*/
|
||||||
@Column(name = "repo_url")
|
@Column(name = "repo_url")
|
||||||
private String repoUrl;
|
private String repoUrl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 代码分支
|
||||||
|
*/
|
||||||
@Column(name = "repo_branch")
|
@Column(name = "repo_branch")
|
||||||
private String repoBranch;
|
private String repoBranch;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓库类型(如:Git/SVN)
|
||||||
|
*/
|
||||||
@Column(name = "repo_type")
|
@Column(name = "repo_type")
|
||||||
private String repoType;
|
private String repoType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构建类型(如:Maven/Gradle)
|
||||||
|
*/
|
||||||
@Column(name = "build_type")
|
@Column(name = "build_type")
|
||||||
private String buildType;
|
private String buildType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开发语言
|
||||||
|
*/
|
||||||
@Column(name = "dev_language")
|
@Column(name = "dev_language")
|
||||||
private String devLanguage;
|
private String devLanguage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开发框架
|
||||||
|
*/
|
||||||
@Column(name = "dev_framework")
|
@Column(name = "dev_framework")
|
||||||
private String devFramework;
|
private String devFramework;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 排序号
|
||||||
|
*/
|
||||||
@Column(name = "sort", nullable = false)
|
@Column(name = "sort", nullable = false)
|
||||||
private Integer sort;
|
private Integer sort;
|
||||||
}
|
}
|
||||||
@ -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;
|
||||||
|
}
|
||||||
@ -18,7 +18,7 @@ public class Project extends Entity<Long> {
|
|||||||
/**
|
/**
|
||||||
* 租户ID
|
* 租户ID
|
||||||
*/
|
*/
|
||||||
@Column(name = "tenant_id", nullable = false)
|
@Column(name = "tenant_id")
|
||||||
private Long tenantId;
|
private Long tenantId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -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;
|
||||||
|
}
|
||||||
@ -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> {
|
||||||
|
}
|
||||||
@ -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> {
|
||||||
|
}
|
||||||
@ -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 {
|
||||||
|
}
|
||||||
@ -552,7 +552,7 @@ CREATE TABLE deploy_project
|
|||||||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除:0-未删除,1-已删除',
|
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_code VARCHAR(50) NOT NULL COMMENT '项目编码',
|
||||||
project_name VARCHAR(100) NOT NULL COMMENT '项目名称',
|
project_name VARCHAR(100) NOT NULL COMMENT '项目名称',
|
||||||
project_desc VARCHAR(255) NULL COMMENT '项目描述',
|
project_desc VARCHAR(255) NULL COMMENT '项目描述',
|
||||||
@ -603,3 +603,31 @@ CREATE TABLE deploy_application
|
|||||||
REFERENCES deploy_project (id)
|
REFERENCES deploy_project (id)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='应用表';
|
) 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='环境表';
|
||||||
|
|
||||||
|
|||||||
@ -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),
|
(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),
|
||||||
|
|
||||||
-- 项目管理
|
(200, '部署管理', '/deploy', '', 'DeploymentUnitOutlined', 2, 0, 50, 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),
|
|
||||||
|
|
||||||
-- 应用管理
|
(201, '项目组管理', '/deploy/project', '/src/pages/Deploy/Project/List/index', 'ProjectOutlined', 2, 200, 1, 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);
|
|
||||||
|
|
||||||
|
(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)
|
INSERT INTO sys_role (id, create_time, code, name, type, description, sort)
|
||||||
VALUES
|
VALUES
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user