动态路由
This commit is contained in:
parent
8a9c7113e9
commit
99cc4f3e7e
@ -1,55 +0,0 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.api;
|
|
||||||
|
|
||||||
import com.qqchen.deploy.backend.deploy.dto.BuildConfigDefinedDTO;
|
|
||||||
import com.qqchen.deploy.backend.deploy.dto.DeployAppBuildDTO;
|
|
||||||
import com.qqchen.deploy.backend.deploy.dto.DeployAppConfigDTO;
|
|
||||||
import com.qqchen.deploy.backend.deploy.entity.DeployAppConfig;
|
|
||||||
import com.qqchen.deploy.backend.deploy.query.DeployAppConfigQuery;
|
|
||||||
import com.qqchen.deploy.backend.deploy.service.IDeployAppConfigService;
|
|
||||||
import com.qqchen.deploy.backend.framework.api.Response;
|
|
||||||
import com.qqchen.deploy.backend.framework.controller.BaseController;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 应用配置控制器
|
|
||||||
*/
|
|
||||||
@Slf4j
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("/api/v1/deploy-app-config")
|
|
||||||
@Tag(name = "应用配置管理", description = "应用配置管理相关接口")
|
|
||||||
public class DeployAppConfigApiController extends BaseController<DeployAppConfig, DeployAppConfigDTO, Long, DeployAppConfigQuery> {
|
|
||||||
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private IDeployAppConfigService deployAppConfigService;
|
|
||||||
|
|
||||||
@Operation(summary = "获取构建类型Schema定义")
|
|
||||||
@GetMapping("/defined")
|
|
||||||
public Response<List<BuildConfigDefinedDTO>> defined() {
|
|
||||||
return Response.success(deployAppConfigService.defined());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void exportData(HttpServletResponse response, List<DeployAppConfigDTO> data) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Operation(summary = "部署服务")
|
|
||||||
@PostMapping("/deploy")
|
|
||||||
public Response<Void> deploy(@Validated @RequestBody DeployAppBuildDTO dto) {
|
|
||||||
deployAppConfigService.deploy(dto);
|
|
||||||
return Response.success();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,29 +0,0 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.api;
|
|
||||||
|
|
||||||
import com.qqchen.deploy.backend.framework.controller.BaseController;
|
|
||||||
import com.qqchen.deploy.backend.deploy.entity.DeployLog;
|
|
||||||
import com.qqchen.deploy.backend.deploy.dto.DeployLogDTO;
|
|
||||||
import com.qqchen.deploy.backend.deploy.query.DeployLogQuery;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 部署日志 Controller
|
|
||||||
*/
|
|
||||||
@Slf4j
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("/api/v1/deploy-log")
|
|
||||||
@Tag(name = "部署日志管理", description = "部署日志管理相关接口")
|
|
||||||
public class DeployLogApiController extends BaseController<DeployLog, DeployLogDTO, Long, DeployLogQuery> {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void exportData(HttpServletResponse response, List<DeployLogDTO> data) {
|
|
||||||
// TODO: 实现导出逻辑
|
|
||||||
log.info("导出部署日志数据,数据量:{}", data.size());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,20 +0,0 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.converter;
|
|
||||||
|
|
||||||
import com.qqchen.deploy.backend.deploy.dto.DeployAppConfigDTO;
|
|
||||||
import com.qqchen.deploy.backend.deploy.entity.DeployAppConfig;
|
|
||||||
import com.qqchen.deploy.backend.framework.converter.BaseConverter;
|
|
||||||
import org.mapstruct.Mapper;
|
|
||||||
import org.mapstruct.Mapping;
|
|
||||||
import org.mapstruct.MappingTarget;
|
|
||||||
import org.mapstruct.NullValuePropertyMappingStrategy;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 应用配置转换器
|
|
||||||
*/
|
|
||||||
@Mapper(config = BaseConverter.class, nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE)
|
|
||||||
public interface DeployAppConfigConverter extends BaseConverter<DeployAppConfig, DeployAppConfigDTO> {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Mapping(target = "formVariablesSchema", nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE)
|
|
||||||
void updateEntity(@MappingTarget DeployAppConfig entity, DeployAppConfigDTO dto);
|
|
||||||
}
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.converter;
|
|
||||||
|
|
||||||
import com.qqchen.deploy.backend.framework.converter.BaseConverter;
|
|
||||||
import com.qqchen.deploy.backend.deploy.entity.DeployLog;
|
|
||||||
import com.qqchen.deploy.backend.deploy.dto.DeployLogDTO;
|
|
||||||
import org.mapstruct.Mapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 部署日志 Converter
|
|
||||||
*/
|
|
||||||
@Mapper(config = BaseConverter.class)
|
|
||||||
public interface DeployLogConverter extends BaseConverter<DeployLog, DeployLogDTO> {
|
|
||||||
}
|
|
||||||
@ -1,67 +0,0 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.dto;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
|
||||||
import com.qqchen.deploy.backend.deploy.enums.BuildTypeEnum;
|
|
||||||
import com.qqchen.deploy.backend.deploy.enums.DevelopmentLanguageTypeEnum;
|
|
||||||
import com.qqchen.deploy.backend.framework.dto.BaseDTO;
|
|
||||||
import com.qqchen.deploy.backend.workflow.dto.WorkflowDefinitionDTO;
|
|
||||||
import com.qqchen.deploy.backend.workflow.enums.WorkflowInstanceStatusEnums;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 应用配置DTO
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@Schema(description = "应用配置")
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
public class DeployAppConfigDTO extends BaseDTO {
|
|
||||||
|
|
||||||
@Schema(description = "应用")
|
|
||||||
private ApplicationDTO application;
|
|
||||||
|
|
||||||
@Schema(description = "构建类型")
|
|
||||||
@NotNull(message = "构建类型不能为空")
|
|
||||||
private BuildTypeEnum buildType;
|
|
||||||
|
|
||||||
@NotNull(message = "应用语言不能为空")
|
|
||||||
private DevelopmentLanguageTypeEnum languageType;
|
|
||||||
|
|
||||||
@Schema(description = "已发布的流程定义")
|
|
||||||
private WorkflowDefinitionDTO publishedWorkflowDefinition;
|
|
||||||
|
|
||||||
@Schema(description = "最后一次部署状态")
|
|
||||||
private WorkflowInstanceStatusEnums lastBuildStatus;
|
|
||||||
|
|
||||||
@Schema(description = "最后一次部署开始时间")
|
|
||||||
private LocalDateTime lastBuildStartTime;
|
|
||||||
|
|
||||||
@Schema(description = "最后一次部署结束时间")
|
|
||||||
private LocalDateTime LastBuildEndTime;
|
|
||||||
|
|
||||||
@Schema(description = "表单配置")
|
|
||||||
private JsonNode formVariablesSchema;
|
|
||||||
|
|
||||||
@Schema(description = "构建配置")
|
|
||||||
@NotNull(message = "构建配置不能为空")
|
|
||||||
private JsonNode buildVariables;
|
|
||||||
|
|
||||||
@Schema(description = "环境ID")
|
|
||||||
@NotNull(message = "环境ID不能为空")
|
|
||||||
private Long environmentId;
|
|
||||||
|
|
||||||
@Schema(description = "应用ID")
|
|
||||||
@NotNull(message = "应用ID不能为空")
|
|
||||||
private Long applicationId;
|
|
||||||
|
|
||||||
@NotNull(message = "已发布的流程定义ID")
|
|
||||||
private Long workflowDefinitionId;
|
|
||||||
|
|
||||||
@NotNull(message = "启用字段不能为空")
|
|
||||||
private Boolean enabled = true;
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,49 +0,0 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.dto;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
|
||||||
import com.qqchen.deploy.backend.deploy.enums.DeployStatusEnum;
|
|
||||||
import com.qqchen.deploy.backend.framework.dto.BaseDTO;
|
|
||||||
import com.vladmihalcea.hibernate.type.json.JsonType;
|
|
||||||
import jakarta.persistence.Column;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
import org.hibernate.annotations.Type;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 部署日志 DTO
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
public class DeployLogDTO extends BaseDTO {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 环境ID
|
|
||||||
*/
|
|
||||||
private Long workflowInstanceId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 环境ID
|
|
||||||
*/
|
|
||||||
private Long environmentId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 应用ID
|
|
||||||
*/
|
|
||||||
private Long applicationId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 部署版本号
|
|
||||||
*/
|
|
||||||
private String deployVersion;
|
|
||||||
|
|
||||||
private JsonNode variables;
|
|
||||||
|
|
||||||
private JsonNode formVariables;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 部署参数(JSON)
|
|
||||||
*/
|
|
||||||
private JsonNode deployVariables;
|
|
||||||
}
|
|
||||||
@ -1,51 +0,0 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.entity;
|
|
||||||
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
|
||||||
import com.qqchen.deploy.backend.deploy.enums.BuildTypeEnum;
|
|
||||||
import com.qqchen.deploy.backend.deploy.enums.DevelopmentLanguageTypeEnum;
|
|
||||||
import com.qqchen.deploy.backend.framework.annotation.LogicDelete;
|
|
||||||
import com.qqchen.deploy.backend.framework.domain.Entity;
|
|
||||||
import com.vladmihalcea.hibernate.type.json.JsonType;
|
|
||||||
import jakarta.persistence.Column;
|
|
||||||
import jakarta.persistence.EnumType;
|
|
||||||
import jakarta.persistence.Enumerated;
|
|
||||||
import jakarta.persistence.Table;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
import org.hibernate.annotations.Type;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@jakarta.persistence.Entity
|
|
||||||
@Table(name = "deploy_app_config")
|
|
||||||
public class DeployAppConfig extends Entity<Long> {
|
|
||||||
|
|
||||||
@Column(name = "build_type", nullable = false)
|
|
||||||
@Enumerated(EnumType.STRING)
|
|
||||||
private BuildTypeEnum buildType;
|
|
||||||
|
|
||||||
@Column(name = "language_type", nullable = false)
|
|
||||||
@Enumerated(EnumType.STRING)
|
|
||||||
private DevelopmentLanguageTypeEnum languageType;
|
|
||||||
|
|
||||||
@Type(JsonType.class)
|
|
||||||
@Column(name = "form_variables_schema", columnDefinition = "text")
|
|
||||||
private JsonNode formVariablesSchema;
|
|
||||||
|
|
||||||
@Type(JsonType.class)
|
|
||||||
@Column(name = "build_variables", columnDefinition = "text", nullable = false)
|
|
||||||
private JsonNode buildVariables;
|
|
||||||
|
|
||||||
@Column(name = "environment_id", nullable = false)
|
|
||||||
private Long environmentId;
|
|
||||||
|
|
||||||
@Column(name = "application_id", nullable = false)
|
|
||||||
private Long applicationId;
|
|
||||||
|
|
||||||
@Column(name = "workflow_definition_id", nullable = false)
|
|
||||||
private Long workflowDefinitionId;
|
|
||||||
|
|
||||||
@Column(name = "enabled", nullable = false)
|
|
||||||
private Boolean enabled;
|
|
||||||
}
|
|
||||||
@ -1,59 +0,0 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.entity;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
|
||||||
import com.qqchen.deploy.backend.deploy.enums.DeployStatusEnum;
|
|
||||||
import com.qqchen.deploy.backend.framework.domain.Entity;
|
|
||||||
import com.vladmihalcea.hibernate.type.json.JsonType;
|
|
||||||
import jakarta.persistence.*;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
import org.hibernate.annotations.Type;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 部署日志实体
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@jakarta.persistence.Entity
|
|
||||||
@Table(name = "deploy_log")
|
|
||||||
public class DeployLog extends Entity<Long> {
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 环境ID
|
|
||||||
*/
|
|
||||||
@Column(name = "workflow_instance_id", nullable = false)
|
|
||||||
private Long workflowInstanceId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 环境ID
|
|
||||||
*/
|
|
||||||
@Column(name = "environment_id", nullable = false)
|
|
||||||
private Long environmentId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 应用ID
|
|
||||||
*/
|
|
||||||
@Column(name = "application_id", nullable = false)
|
|
||||||
private Long applicationId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 部署版本号
|
|
||||||
*/
|
|
||||||
@Column(name = "deploy_version", nullable = false)
|
|
||||||
private String deployVersion;
|
|
||||||
|
|
||||||
@Type(JsonType.class)
|
|
||||||
@Column(name = "form_variables", columnDefinition = "text", nullable = false)
|
|
||||||
private JsonNode formVariables;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 部署参数(JSON)
|
|
||||||
*/
|
|
||||||
@Type(JsonType.class)
|
|
||||||
@Column(name = "deploy_variables", columnDefinition = "text", nullable = false)
|
|
||||||
private JsonNode deployVariables;
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,34 +0,0 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.query;
|
|
||||||
|
|
||||||
import com.qqchen.deploy.backend.deploy.enums.BuildTypeEnum;
|
|
||||||
import com.qqchen.deploy.backend.deploy.enums.DevelopmentLanguageTypeEnum;
|
|
||||||
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
|
|
||||||
@Schema(description = "应用配置查询")
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
public class DeployAppConfigQuery extends BaseQuery {
|
|
||||||
|
|
||||||
@Schema(description = "环境ID")
|
|
||||||
@QueryField(field = "environmentId")
|
|
||||||
private Long environmentId;
|
|
||||||
|
|
||||||
@Schema(description = "应用ID")
|
|
||||||
@QueryField(field = "applicationId")
|
|
||||||
private Long applicationId;
|
|
||||||
|
|
||||||
@Schema(description = "构建类型")
|
|
||||||
@QueryField(field = "buildType")
|
|
||||||
private BuildTypeEnum buildType;
|
|
||||||
|
|
||||||
@QueryField(field = "languageType", type = QueryType.EQUAL)
|
|
||||||
private DevelopmentLanguageTypeEnum languageType;
|
|
||||||
}
|
|
||||||
@ -1,18 +0,0 @@
|
|||||||
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 lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 部署日志查询对象
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
public class DeployLogQuery extends BaseQuery {
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.repository;
|
|
||||||
|
|
||||||
import com.qqchen.deploy.backend.deploy.entity.DeployAppConfig;
|
|
||||||
import com.qqchen.deploy.backend.framework.repository.IBaseRepository;
|
|
||||||
import org.springframework.stereotype.Repository;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 应用配置仓库接口
|
|
||||||
*/
|
|
||||||
@Repository
|
|
||||||
public interface IDeployAppConfigRepository extends IBaseRepository<DeployAppConfig, Long> {
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.repository;
|
|
||||||
|
|
||||||
import com.qqchen.deploy.backend.framework.repository.IBaseRepository;
|
|
||||||
import com.qqchen.deploy.backend.deploy.entity.DeployLog;
|
|
||||||
import org.springframework.stereotype.Repository;
|
|
||||||
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 部署日志 Repository
|
|
||||||
*/
|
|
||||||
@Repository
|
|
||||||
public interface IDeployLogRepository extends IBaseRepository<DeployLog, Long> {
|
|
||||||
Optional<DeployLog> findTop1ByApplicationIdOrderByCreateTimeDesc(Long id);
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,26 +0,0 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.service;
|
|
||||||
|
|
||||||
import com.qqchen.deploy.backend.deploy.dto.BuildConfigDefinedDTO;
|
|
||||||
import com.qqchen.deploy.backend.deploy.dto.DeployAppBuildDTO;
|
|
||||||
import com.qqchen.deploy.backend.deploy.dto.DeployAppConfigDTO;
|
|
||||||
import com.qqchen.deploy.backend.deploy.entity.DeployAppConfig;
|
|
||||||
import com.qqchen.deploy.backend.deploy.query.DeployAppConfigQuery;
|
|
||||||
import com.qqchen.deploy.backend.framework.service.IBaseService;
|
|
||||||
import com.qqchen.deploy.backend.workflow.dto.WorkflowNodeTypeDefinedDTO;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 应用配置服务接口
|
|
||||||
*/
|
|
||||||
public interface IDeployAppConfigService extends IBaseService<DeployAppConfig, DeployAppConfigDTO, DeployAppConfigQuery, Long> {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取构建类型Schema定义
|
|
||||||
*
|
|
||||||
* @return Schema定义列表
|
|
||||||
*/
|
|
||||||
List<BuildConfigDefinedDTO> defined();
|
|
||||||
|
|
||||||
void deploy(DeployAppBuildDTO dto);
|
|
||||||
}
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.service;
|
|
||||||
|
|
||||||
import com.qqchen.deploy.backend.framework.service.IBaseService;
|
|
||||||
import com.qqchen.deploy.backend.deploy.entity.DeployLog;
|
|
||||||
import com.qqchen.deploy.backend.deploy.dto.DeployLogDTO;
|
|
||||||
import com.qqchen.deploy.backend.deploy.query.DeployLogQuery;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 部署日志 Service接口
|
|
||||||
*/
|
|
||||||
public interface IDeployLogService extends IBaseService<DeployLog, DeployLogDTO, DeployLogQuery, Long> {
|
|
||||||
}
|
|
||||||
@ -1,183 +0,0 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.service.impl;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
||||||
import com.qqchen.deploy.backend.deploy.converter.ApplicationConverter;
|
|
||||||
import com.qqchen.deploy.backend.deploy.converter.DeployLogConverter;
|
|
||||||
import com.qqchen.deploy.backend.deploy.dto.BuildConfigDefinedDTO;
|
|
||||||
import com.qqchen.deploy.backend.deploy.dto.DeployAppBuildDTO;
|
|
||||||
import com.qqchen.deploy.backend.deploy.dto.DeployAppConfigDTO;
|
|
||||||
import com.qqchen.deploy.backend.deploy.dto.DeployLogDTO;
|
|
||||||
import com.qqchen.deploy.backend.deploy.entity.Application;
|
|
||||||
import com.qqchen.deploy.backend.deploy.entity.DeployAppConfig;
|
|
||||||
import com.qqchen.deploy.backend.deploy.entity.DeployLog;
|
|
||||||
import com.qqchen.deploy.backend.deploy.entity.Environment;
|
|
||||||
import com.qqchen.deploy.backend.deploy.enums.BuildTypeEnum;
|
|
||||||
import com.qqchen.deploy.backend.deploy.enums.DevelopmentLanguageTypeEnum;
|
|
||||||
import com.qqchen.deploy.backend.deploy.query.DeployAppConfigQuery;
|
|
||||||
import com.qqchen.deploy.backend.deploy.repository.IApplicationRepository;
|
|
||||||
import com.qqchen.deploy.backend.deploy.repository.IDeployLogRepository;
|
|
||||||
import com.qqchen.deploy.backend.deploy.repository.IEnvironmentRepository;
|
|
||||||
import com.qqchen.deploy.backend.deploy.service.IDeployAppConfigService;
|
|
||||||
import com.qqchen.deploy.backend.deploy.service.IDeployLogService;
|
|
||||||
import com.qqchen.deploy.backend.framework.annotation.formily.FormilySchemaFactory;
|
|
||||||
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
|
|
||||||
import com.qqchen.deploy.backend.workflow.converter.WorkflowDefinitionConverter;
|
|
||||||
import com.qqchen.deploy.backend.workflow.dto.WorkflowInstanceDTO;
|
|
||||||
import com.qqchen.deploy.backend.workflow.dto.WorkflowInstanceStartRequest;
|
|
||||||
import com.qqchen.deploy.backend.workflow.entity.WorkflowDefinition;
|
|
||||||
import com.qqchen.deploy.backend.workflow.entity.WorkflowInstance;
|
|
||||||
import com.qqchen.deploy.backend.workflow.repository.IWorkflowDefinitionRepository;
|
|
||||||
import com.qqchen.deploy.backend.workflow.repository.IWorkflowInstanceRepository;
|
|
||||||
import com.qqchen.deploy.backend.workflow.service.IWorkflowInstanceService;
|
|
||||||
import com.qqchen.deploy.backend.workflow.util.GenerateSchemaUtils;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.data.domain.Page;
|
|
||||||
import org.springframework.data.domain.PageImpl;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
import static java.util.stream.Collectors.toList;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 应用配置服务实现类
|
|
||||||
*/
|
|
||||||
@Slf4j
|
|
||||||
@Service
|
|
||||||
public class DeployAppConfigServiceImpl extends BaseServiceImpl<DeployAppConfig, DeployAppConfigDTO, DeployAppConfigQuery, Long> implements IDeployAppConfigService {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private IApplicationRepository applicationRepository;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ApplicationConverter applicationConverter;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private IWorkflowDefinitionRepository workflowDefinitionRepository;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private IWorkflowInstanceService workflowInstanceService;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private WorkflowDefinitionConverter workflowDefinitionConverter;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private IEnvironmentRepository environmentRepository;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private IDeployLogService deployLogService;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private IDeployLogRepository deployLogRepository;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private DeployLogConverter deployLogConverter;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private IWorkflowInstanceRepository workflowInstanceRepository;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ObjectMapper objectMapper;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Page<DeployAppConfigDTO> page(DeployAppConfigQuery query) {
|
|
||||||
Page<DeployAppConfigDTO> page = super.page(query);
|
|
||||||
List<DeployAppConfigDTO> result = page.getContent().stream().peek(deployAppConfig -> {
|
|
||||||
Optional<WorkflowDefinition> optionalWorkflowDefinition = workflowDefinitionRepository.findById(deployAppConfig.getWorkflowDefinitionId());
|
|
||||||
optionalWorkflowDefinition.ifPresent(workflowDefinition -> deployAppConfig.setPublishedWorkflowDefinition(workflowDefinitionConverter.toDto(workflowDefinition)));
|
|
||||||
Optional<Application> optionalApplication = applicationRepository.findById(deployAppConfig.getApplicationId());
|
|
||||||
if (optionalApplication.isPresent()) {
|
|
||||||
Application application = optionalApplication.get();
|
|
||||||
deployAppConfig.setApplication(applicationConverter.toDto(application));
|
|
||||||
Optional<DeployLog> lastDeployLogOptional = deployLogRepository.findTop1ByApplicationIdOrderByCreateTimeDesc(application.getId());
|
|
||||||
if (lastDeployLogOptional.isEmpty()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
DeployLog lastDeployLog = lastDeployLogOptional.get();
|
|
||||||
Optional<WorkflowInstance> optionalWorkflowInstance = workflowInstanceRepository.findById(lastDeployLog.getWorkflowInstanceId());
|
|
||||||
if (optionalWorkflowInstance.isEmpty()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
WorkflowInstance workflowInstance = optionalWorkflowInstance.get();
|
|
||||||
deployAppConfig.setLastBuildStatus(workflowInstance.getStatus());
|
|
||||||
deployAppConfig.setLastBuildStartTime(workflowInstance.getStartTime());
|
|
||||||
deployAppConfig.setLastBuildEndTime(workflowInstance.getEndTime());
|
|
||||||
}
|
|
||||||
}).collect(toList());
|
|
||||||
return new PageImpl<>(result, page.getPageable(), page.getTotalElements());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<BuildConfigDefinedDTO> defined() {
|
|
||||||
List<BuildConfigDefinedDTO> result = new ArrayList<>();
|
|
||||||
|
|
||||||
for (BuildTypeEnum buildType : BuildTypeEnum.values()) {
|
|
||||||
try {
|
|
||||||
// 获取支持的语言和对应的构建变量类
|
|
||||||
DevelopmentLanguageTypeEnum[] languages = buildType.getSupportedLanguages();
|
|
||||||
Class<?>[] buildVariablesClasses = buildType.getBuildVariables();
|
|
||||||
// 如果支持的语言不为空,则处理每种语言对应的Schema
|
|
||||||
if (languages != null && buildVariablesClasses != null) {
|
|
||||||
for (int i = 0; i < languages.length; i++) {
|
|
||||||
if (buildVariablesClasses[i] != null) {
|
|
||||||
BuildConfigDefinedDTO definedDTO = new BuildConfigDefinedDTO();
|
|
||||||
definedDTO.setCode(buildType.getCode());
|
|
||||||
definedDTO.setName(buildType.getName());
|
|
||||||
definedDTO.setBuildType(buildType);
|
|
||||||
definedDTO.setLanguageType(languages[i]);
|
|
||||||
// 使用新的FormilySchemaFactory生成Schema
|
|
||||||
JsonNode schema = FormilySchemaFactory.generateSchema(buildVariablesClasses[i]);
|
|
||||||
definedDTO.setBuildVariablesSchema(schema);
|
|
||||||
result.add(definedDTO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("Error processing build type: " + buildType, e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Transactional
|
|
||||||
public void deploy(DeployAppBuildDTO dto) {
|
|
||||||
WorkflowDefinition workflowDefinition = workflowDefinitionRepository.findById(dto.getWorkflowDefinitionId()).orElseThrow(() -> new RuntimeException("Workflow definition not found: " + dto.getWorkflowDefinitionId()));
|
|
||||||
Environment environment = environmentRepository.findById(dto.getEnvironmentId()).orElseThrow(() -> new RuntimeException("Environment not found: " + dto.getEnvironmentId()));
|
|
||||||
Application application = applicationRepository.findById(dto.getApplicationId()).orElseThrow(() -> new RuntimeException("Application not found: " + dto.getApplicationId()));
|
|
||||||
WorkflowInstanceStartRequest request = new WorkflowInstanceStartRequest();
|
|
||||||
request.setProcessKey(workflowDefinition.getKey());
|
|
||||||
request.setBusinessKey(environment.getEnvCode() + "_" + application.getAppCode() + "_" + System.currentTimeMillis() / 1000);
|
|
||||||
request.setFormData(objectMapper.convertValue(dto.getBuildVariables(), new TypeReference<>() {
|
|
||||||
}));
|
|
||||||
WorkflowInstanceDTO workflowInstanceDTO = workflowInstanceService.startWorkflow(request);
|
|
||||||
buildAndSaveDeployLog(dto, environment, application, workflowInstanceDTO);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void buildAndSaveDeployLog(DeployAppBuildDTO deployAppBuild, Environment environment, Application application, WorkflowInstanceDTO workflowInstance) {
|
|
||||||
DeployLogDTO deployLog = new DeployLogDTO();
|
|
||||||
deployLog.setEnvironmentId(environment.getId());
|
|
||||||
deployLog.setApplicationId(application.getId());
|
|
||||||
deployLog.setWorkflowInstanceId(workflowInstance.getId());
|
|
||||||
deployLog.setVariables(deployAppBuild.getBuildVariables());
|
|
||||||
deployLog.setDeployVersion(application.getAppCode() + "_" + System.currentTimeMillis() / 1000);
|
|
||||||
deployLog.setDeployVariables(deployAppBuild.getBuildVariables());
|
|
||||||
deployLog.setFormVariables(deployAppBuild.getFormVariables());
|
|
||||||
deployLogService.create(deployLog);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DeployAppConfigDTO create(DeployAppConfigDTO dto) {
|
|
||||||
DeployAppConfig entity = converter.toEntity(dto);
|
|
||||||
// 使用新的FormilySchemaFactory生成Schema
|
|
||||||
entity.setFormVariablesSchema(GenerateSchemaUtils.generateSchema(dto.getBuildType().getFormVariablesSchema()));
|
|
||||||
this.repository.save(entity);
|
|
||||||
return converter.toDto(entity);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,17 +0,0 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.service.impl;
|
|
||||||
|
|
||||||
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
|
|
||||||
import com.qqchen.deploy.backend.deploy.entity.DeployLog;
|
|
||||||
import com.qqchen.deploy.backend.deploy.dto.DeployLogDTO;
|
|
||||||
import com.qqchen.deploy.backend.deploy.query.DeployLogQuery;
|
|
||||||
import com.qqchen.deploy.backend.deploy.service.IDeployLogService;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 部署日志 Service实现
|
|
||||||
*/
|
|
||||||
@Slf4j
|
|
||||||
@Service
|
|
||||||
public class DeployLogServiceImpl extends BaseServiceImpl<DeployLog, DeployLogDTO, DeployLogQuery, Long> implements IDeployLogService {
|
|
||||||
}
|
|
||||||
@ -49,48 +49,48 @@ DELETE FROM sys_menu;
|
|||||||
INSERT INTO sys_menu (id, name, path, component, icon, type, parent_id, sort, hidden, enabled, create_by, create_time, version, deleted)
|
INSERT INTO sys_menu (id, name, path, component, icon, type, parent_id, sort, hidden, enabled, create_by, create_time, version, deleted)
|
||||||
VALUES
|
VALUES
|
||||||
-- 首页
|
-- 首页
|
||||||
(99, '工作台', '/dashboard', '/src/pages/dashboard/index', 'DashboardOutlined', 2, NULL, 0, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(99, '工作台', '/dashboard', 'Dashboard', 'DashboardOutlined', 2, NULL, 0, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
|
|
||||||
-- 工作流管理
|
-- 工作流管理
|
||||||
(100, '工作流管理', '/workflow', 'Layout', 'DeploymentUnitOutlined', 1, NULL, 1, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(100, '工作流管理', '/workflow', NULL, 'DeploymentUnitOutlined', 1, NULL, 1, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
-- 工作流设计
|
-- 工作流设计
|
||||||
(101, '工作流设计', '/workflow/definition', '/src/pages/workflow/definition/index', 'EditOutlined', 2, 100, 10, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(101, '工作流设计', '/workflow/definitions', 'Workflow/Definition', 'EditOutlined', 2, 100, 10, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
-- 工作流实例
|
-- 工作流实例
|
||||||
(102, '工作流实例', '/workflow/instance', '/src/pages/workflow/instance/index', 'BranchesOutlined', 2, 100, 20, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(102, '工作流实例', '/workflow/instances', 'Workflow/Instance', 'BranchesOutlined', 2, 100, 20, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
-- 表单管理
|
-- 表单管理
|
||||||
(104, '表单管理', '/workflow/form', '/src/pages/workflow/form/index', 'FormOutlined', 2, 100, 30, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(104, '表单管理', '/workflow/form', 'Form/Definition', 'FormOutlined', 2, 100, 30, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
-- 运维管理
|
-- 运维管理
|
||||||
(200, '运维管理', '/deploy', 'Layout', 'DeploymentUnitOutlined', 1, NULL, 2, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(200, '运维管理', '/deploy', NULL, 'DeploymentUnitOutlined', 1, NULL, 2, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
-- 团队管理
|
-- 团队管理
|
||||||
(201, '团队管理', '/deploy/teams', '/src/pages/Deploy/Team/List/index', 'TeamOutlined', 2, 200, 1, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(201, '团队管理', '/deploy/teams', 'Deploy/Team/List', 'TeamOutlined', 2, 200, 1, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
-- 应用管理
|
-- 应用管理
|
||||||
(202, '应用管理', '/deploy/applications', '/src/pages/Deploy/Application/List/index', 'AppstoreOutlined', 2, 200, 2, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(202, '应用管理', '/deploy/applications', 'Deploy/Application/List', 'AppstoreOutlined', 2, 200, 2, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
-- 定时任务管理
|
-- 定时任务管理
|
||||||
(203, '定时任务管理', '/deploy/schedule-jobs', '/src/pages/Deploy/ScheduleJob/List/index', 'ClockCircleOutlined', 2, 200, 3, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(203, '定时任务管理', '/deploy/schedule-jobs', 'Deploy/ScheduleJob/List', 'ClockCircleOutlined', 2, 200, 3, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
-- 服务器管理
|
-- 环境管理
|
||||||
(204, '服务器管理', '/deploy/servers', '/src/pages/Deploy/Server/List/index', 'CloudServerOutlined', 2, 200, 4, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(204, '环境管理', '/deploy/environments', 'Deploy/Environment/List', 'CloudOutlined', 2, 200, 4, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
|
|
||||||
-- 资源管理
|
-- 资源管理
|
||||||
(300, '资源管理', '/resource', 'Layout', 'DatabaseOutlined', 1, NULL, 3, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(300, '资源管理', '/resource', NULL, 'DatabaseOutlined', 1, NULL, 3, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
-- 环境管理
|
-- 服务器管理
|
||||||
(301, '环境管理', '/resource/environments', '/src/pages/Deploy/Environment/List/index', 'CloudOutlined', 2, 300, 1, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(301, '服务器管理', '/resource/servers', 'Deploy/Server/List', 'CloudServerOutlined', 2, 300, 1, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
-- Jenkins管理
|
-- Jenkins管理
|
||||||
(302, 'Jenkins管理', '/resource/jenkins-manager', '/src/pages/Deploy/JenkinsManager/List', 'BuildOutlined', 2, 300, 2, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(302, 'Jenkins管理', '/resource/jenkins', 'Deploy/JenkinsManager/List', 'BuildOutlined', 2, 300, 2, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
-- Git管理
|
-- Git管理
|
||||||
(303, 'Git管理', '/resource/git-manager', '/src/pages/Deploy/GitManager/List', 'GithubOutlined', 2, 300, 3, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(303, 'Git管理', '/resource/git', 'Deploy/GitManager/List', 'GithubOutlined', 2, 300, 3, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
-- 三方系统管理
|
-- 三方系统管理
|
||||||
(304, '三方系统管理', '/resource/external', '/src/pages/Deploy/external/index', 'ApiOutlined', 2, 300, 4, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(304, '三方系统管理', '/resource/external', 'Deploy/External', 'ApiOutlined', 2, 300, 4, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
|
|
||||||
-- 系统管理
|
-- 系统管理
|
||||||
(1, '系统管理', '/system', 'Layout', 'SettingOutlined', 1, NULL, 99, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(1, '系统管理', '/system', NULL, 'SettingOutlined', 1, NULL, 99, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
-- 用户管理
|
-- 用户管理
|
||||||
(2, '用户管理', '/system/user', '/src/pages/system/user/index', 'UserOutlined', 2, 1, 10, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(2, '用户管理', '/system/users', 'System/User', 'UserOutlined', 2, 1, 10, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
-- 角色管理
|
-- 角色管理
|
||||||
(3, '角色管理', '/system/role', '/src/pages/system/role/index', 'TeamOutlined', 2, 1, 20, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(3, '角色管理', '/system/roles', 'System/Role', 'TeamOutlined', 2, 1, 20, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
-- 菜单管理
|
-- 菜单管理
|
||||||
(4, '菜单管理', '/system/menu', '/src/pages/system/menu/index', 'MenuOutlined', 2, 1, 30, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(4, '菜单管理', '/system/menus', 'System/Menu', 'MenuOutlined', 2, 1, 30, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
-- 部门管理
|
-- 部门管理
|
||||||
(5, '部门管理', '/system/department', '/src/pages/system/department/index', 'ApartmentOutlined', 2, 1, 40, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE);
|
(5, '部门管理', '/system/departments', 'System/Department', 'ApartmentOutlined', 2, 1, 40, 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)
|
||||||
|
|||||||
@ -851,49 +851,6 @@ CREATE TABLE deploy_team_config
|
|||||||
CONSTRAINT fk_team_config_team FOREIGN KEY (team_id) REFERENCES deploy_team(id)
|
CONSTRAINT fk_team_config_team FOREIGN KEY (team_id) REFERENCES deploy_team(id)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='团队配置表';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='团队配置表';
|
||||||
|
|
||||||
CREATE TABLE deploy_log
|
|
||||||
(
|
|
||||||
-- 基础字段
|
|
||||||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
|
||||||
-- 业务字段
|
|
||||||
workflow_instance_id BIGINT NULL COMMENT '工作流实例ID',
|
|
||||||
environment_id BIGINT NOT NULL COMMENT '环境ID',
|
|
||||||
application_id BIGINT NOT NULL COMMENT '应用ID',
|
|
||||||
deploy_version VARCHAR(100) NOT NULL COMMENT '部署版本号',
|
|
||||||
form_variables TEXT NULL COMMENT '部署参数(JSON)',
|
|
||||||
deploy_variables TEXT NULL COMMENT '部署参数(JSON)',
|
|
||||||
|
|
||||||
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-已删除'
|
|
||||||
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT ='部署日志表';
|
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE deploy_app_config
|
|
||||||
(
|
|
||||||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
|
||||||
|
|
||||||
build_type VARCHAR(50) NOT NULL,
|
|
||||||
build_variables TEXT NOT NULL,
|
|
||||||
form_variables_schema TEXT NULL,
|
|
||||||
language_type VARCHAR(50) NOT NULL,
|
|
||||||
workflow_definition_id BIGINT NOT NULL,
|
|
||||||
|
|
||||||
environment_id BIGINT NOT NULL,
|
|
||||||
application_id BIGINT NOT NULL,
|
|
||||||
enabled BIT NOT NULL,
|
|
||||||
|
|
||||||
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-已删除'
|
|
||||||
);
|
|
||||||
|
|
||||||
-- --------------------------------------------------------------------------------------
|
-- --------------------------------------------------------------------------------------
|
||||||
-- 通知渠道表
|
-- 通知渠道表
|
||||||
-- --------------------------------------------------------------------------------------
|
-- --------------------------------------------------------------------------------------
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user