feat: 将项目改为Starter的结构, 为后续开发做扩展准备

This commit is contained in:
2025-04-21 21:59:31 +08:00
parent bd4c374952
commit 2b2864b8df
111 changed files with 162 additions and 177 deletions

View File

@@ -0,0 +1,14 @@
package com.metisapp;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MetisApplication {
public static void main(String[] args) {
SpringApplication.run(MetisApplication.class, args);
}
}

View File

@@ -0,0 +1,30 @@
package com.metisapp.config;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SwaggerConfig {
@Bean
public OpenAPI customOpenAPI() {
// Contact contact = new Contact();
// contact.setEmail("wlddhj@163.com");
// contact.setName("huangjian");
// contact.setUrl("http://doc.xiaominfo.com");
return new OpenAPI()
// 增加swagger授权请求头配置
// .components(new Components().addSecuritySchemes(CommonConstant.X_ACCESS_TOKEN,
// new SecurityScheme().type(SecurityScheme.Type.HTTP).scheme(CommonConstant.X_ACCESS_TOKEN)))
.info(new Info()
.title("metis 后台服务API接口文档")
.version("1.0")
// .contact(contact)
.description("metis 接口文档")
// .termsOfService("http://doc.xiaominfo.com")
.license(new License().name("Apache 2.0")
.url("http://www.apache.org/licenses/LICENSE-2.0.html")));
}
}

View File

@@ -0,0 +1,43 @@
package com.metisapp.controller;
import com.metis.domain.bo.ProcessBo;
import com.metis.facade.ProcessDefinitionFacade;
import com.metis.flow.domain.entity.App;
import com.metis.result.Result;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
@RestController
@RequiredArgsConstructor
@RequestMapping("/process/definition")
public class ProcessDefinitionController {
private final ProcessDefinitionFacade processDefinitionFacade;
@PostMapping("/create")
public Result<Long> create(@RequestBody ProcessBo processBo) {
Long workflowId = processDefinitionFacade.create(processBo);
return Result.ok(workflowId);
}
@PutMapping("/update")
public Result<String> update(@RequestBody ProcessBo processBo) {
processDefinitionFacade.update(processBo);
return Result.ok();
}
@GetMapping("/{deploymentId}")
public Result<App> getByDeploymentId(@PathVariable Long deploymentId) {
App app = processDefinitionFacade.getByDeploymentId(deploymentId);
return Result.ok(app);
}
@DeleteMapping("/{appId}")
public Result<String> delete(@PathVariable Long appId) {
processDefinitionFacade.delete(appId);
return Result.ok();
}
}

View File

@@ -0,0 +1,38 @@
package com.metisapp.controller;
import com.metis.flow.domain.bo.BuildApp;
import com.metis.flow.engine.AppFlowEngineRunnerService;
import com.metis.flow.runner.FlowRunningContext;
import com.metis.flow.runner.RunnerResult;
import com.metis.flow.validator.ValidatorService;
import com.metis.result.Result;
import lombok.RequiredArgsConstructor;
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;
@RestController
@RequestMapping("/test")
@RequiredArgsConstructor
public class TestController {
private final ValidatorService validatorService;
private final AppFlowEngineRunnerService engineRunnerService;
@PostMapping
public Result<String> test(@RequestBody BuildApp app) {
validatorService.validate(app);
return Result.ok("测试成功");
}
@PostMapping("/run")
public Result<RunnerResult> run(@RequestBody FlowRunningContext context) {
RunnerResult running = engineRunnerService.running(context);
return Result.ok(running);
}
}