From 2520f39d4f5489b0091c89b8497217484bb8ea22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=87=A4=E5=90=89?= Date: Sat, 26 Apr 2025 20:33:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E8=B0=83=E8=AF=95=E6=8C=87=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gd/app/controller/CmdDebugController.java | 55 ++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/main/java/com/iflytop/gd/app/controller/CmdDebugController.java diff --git a/src/main/java/com/iflytop/gd/app/controller/CmdDebugController.java b/src/main/java/com/iflytop/gd/app/controller/CmdDebugController.java new file mode 100644 index 0000000..fe6afb2 --- /dev/null +++ b/src/main/java/com/iflytop/gd/app/controller/CmdDebugController.java @@ -0,0 +1,55 @@ +package com.iflytop.gd.app.controller; + +import com.iflytop.gd.app.model.dto.CmdDTO; +import com.iflytop.gd.system.common.result.Result; +import com.iflytop.gd.system.core.cmd.CommandHandler; +import com.iflytop.gd.system.core.cmd.CommandHandlerRegistry; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +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.concurrent.CompletableFuture; + +@Tag(name = "前端调试指令") +@RestController +@RequestMapping("/api/debug/cmd") +@RequiredArgsConstructor +@Slf4j +public class CmdDebugController { + private final CommandHandlerRegistry registry; + + @Operation(summary = "前端调试指令") + @PostMapping + public Result controlMethod(@RequestBody CmdDTO cmdDTO) { + String cmdId = cmdDTO.getCmdId(); + String cmdCode = cmdDTO.getCmdCode(); + try { + CommandHandler commandHandler = registry.getHandler(cmdCode); + if (commandHandler == null) { + log.error("未找到对应的业务指令"); + return Result.failed(); + } + log.info("业务指令开始执行"); + CompletableFuture future = commandHandler.handle(cmdDTO); + future.whenComplete((v, ex) -> { + if (ex != null) { + log.error("执行业务指令发生异常: {}", cmdDTO, ex); + } else { + log.info("业务指令执行成功"); + } + log.info("业务指令执行结束"); + }); + } catch (Exception e) { + log.error("执行业务指令发生异常: {}", cmdDTO, e); + return Result.failed(e.getMessage()); + } + return Result.success(); + } + + +}