大声道撒旦
This commit is contained in:
parent
dfccf732ab
commit
0b40047fc6
@ -1,6 +1,7 @@
|
||||
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;
|
||||
@ -12,7 +13,10 @@ 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;
|
||||
|
||||
@ -41,4 +45,11 @@ public class DeployAppConfigApiController extends BaseController<DeployAppConfig
|
||||
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();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
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 io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 应用配置DTO
|
||||
*/
|
||||
@Data
|
||||
@Schema(description = "应用配置")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class DeployAppBuildDTO extends BaseDTO {
|
||||
|
||||
@Schema(description = "构建类型")
|
||||
@NotNull(message = "构建类型不能为空")
|
||||
private BuildTypeEnum buildType;
|
||||
|
||||
@NotNull(message = "应用语言不能为空")
|
||||
private DevelopmentLanguageTypeEnum languageType;
|
||||
|
||||
@Schema(description = "表单配置")
|
||||
private JsonNode formVariables;
|
||||
|
||||
@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;
|
||||
|
||||
}
|
||||
@ -33,6 +33,9 @@ public class DeployAppConfigDTO extends BaseDTO {
|
||||
@Schema(description = "已发布的流程定义")
|
||||
private WorkflowDefinitionDTO publishedWorkflowDefinition;
|
||||
|
||||
@Schema(description = "表单配置")
|
||||
private JsonNode formVariablesSchema;
|
||||
|
||||
@Schema(description = "构建配置")
|
||||
@NotNull(message = "构建配置不能为空")
|
||||
private JsonNode buildVariables;
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
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;
|
||||
@ -20,4 +21,6 @@ public interface IDeployAppConfigService extends IBaseService<DeployAppConfig, D
|
||||
* @return Schema定义列表
|
||||
*/
|
||||
List<BuildConfigDefinedDTO> defined();
|
||||
|
||||
void deploy(DeployAppBuildDTO dto);
|
||||
}
|
||||
@ -1,29 +1,32 @@
|
||||
package com.qqchen.deploy.backend.deploy.service.impl;
|
||||
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.qqchen.deploy.backend.deploy.converter.ApplicationConverter;
|
||||
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.Application;
|
||||
import com.qqchen.deploy.backend.deploy.entity.DeployAppConfig;
|
||||
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.IEnvironmentRepository;
|
||||
import com.qqchen.deploy.backend.deploy.service.IDeployAppConfigService;
|
||||
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl;
|
||||
import com.qqchen.deploy.backend.workflow.converter.WorkflowDefinitionConverter;
|
||||
import com.qqchen.deploy.backend.workflow.dto.WorkflowInstanceStartRequest;
|
||||
import com.qqchen.deploy.backend.workflow.entity.WorkflowDefinition;
|
||||
import com.qqchen.deploy.backend.workflow.repository.IWorkflowDefinitionRepository;
|
||||
import com.qqchen.deploy.backend.workflow.util.GenerateSchemaUtils;
|
||||
import com.qqchen.deploy.backend.workflow.service.IWorkflowInstanceService;
|
||||
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.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@ -46,9 +49,16 @@ public class DeployAppConfigServiceImpl extends BaseServiceImpl<DeployAppConfig,
|
||||
@Resource
|
||||
private IWorkflowDefinitionRepository workflowDefinitionRepository;
|
||||
|
||||
@Resource
|
||||
private IWorkflowInstanceService workflowInstanceService;
|
||||
|
||||
@Resource
|
||||
private WorkflowDefinitionConverter workflowDefinitionConverter;
|
||||
|
||||
@Resource
|
||||
private IEnvironmentRepository environmentRepository;
|
||||
|
||||
|
||||
@Override
|
||||
public Page<DeployAppConfigDTO> page(DeployAppConfigQuery query) {
|
||||
Page<DeployAppConfigDTO> page = super.page(query);
|
||||
@ -91,6 +101,19 @@ public class DeployAppConfigServiceImpl extends BaseServiceImpl<DeployAppConfig,
|
||||
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);
|
||||
workflowInstanceService.startWorkflow(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DeployAppConfigDTO create(DeployAppConfigDTO dto) {
|
||||
DeployAppConfig entity = converter.toEntity(dto);
|
||||
|
||||
@ -1,23 +1,14 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto;
|
||||
|
||||
import com.qqchen.deploy.backend.framework.dto.BaseDTO;
|
||||
import com.qqchen.deploy.backend.workflow.enums.WorkflowInstanceStatusEnums;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Schema(description = "工作流实例启动入参")
|
||||
public class WorkflowInstanceStartRequest {
|
||||
|
||||
|
||||
private String processKey;
|
||||
|
||||
|
||||
/**
|
||||
* 业务标识
|
||||
*/
|
||||
private String businessKey;
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user