package cn.iocoder.yudao.module.system.controller.admin.agent; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.system.api.agent.imports.AgentImportCommitReqVO; import cn.iocoder.yudao.module.system.api.agent.imports.AgentImportPreflightReqVO; import cn.iocoder.yudao.module.system.api.agent.imports.AgentImportPreflightRespVO; import cn.iocoder.yudao.module.system.api.agent.imports.AgentImportReceiptRespVO; import cn.iocoder.yudao.module.system.framework.agent.AgentPrincipal; import cn.iocoder.yudao.module.system.framework.agent.SystemAgentBridgeGuard; import cn.iocoder.yudao.module.system.service.agent.imports.SystemAgentGenericImportService; import jakarta.annotation.Resource; import jakarta.validation.Valid; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; /** * 通用业务导入桥接:预检、提交与回执。 * 具体业务规则由各模块的 {@code AgentImportModuleAdapter} 实现,本端只做鉴权与编排入口。 */ @RestController @RequestMapping("/agent/bridge/imports") public class SystemAgentGenericImportBridgeController { @Resource private SystemAgentGenericImportService genericImportService; @Resource private SystemAgentBridgeGuard bridgeGuard; @GetMapping public CommonResult>> modules( @RequestHeader(value = "X-Agent-Service-Token", required = false) String serviceToken) { bridgeGuard.requireAny(serviceToken); return success(genericImportService.modules()); } @PostMapping("/{moduleId}/preflight") public CommonResult preflight( @RequestHeader(value = "X-Agent-Service-Token", required = false) String serviceToken, @PathVariable String moduleId, @Valid @RequestBody AgentImportPreflightReqVO request) { AgentPrincipal principal = bridgeGuard.requireAny(serviceToken); return success(genericImportService.preflight(moduleId, request, principal)); } @PostMapping("/{moduleId}/commit") public CommonResult commit( @RequestHeader(value = "X-Agent-Service-Token", required = false) String serviceToken, @PathVariable String moduleId, @Valid @RequestBody AgentImportCommitReqVO request) { AgentPrincipal principal = bridgeGuard.requireAny(serviceToken); return success(genericImportService.commit(moduleId, request, principal)); } @GetMapping("/{moduleId}/commands/{commandId}") public CommonResult getCommand( @RequestHeader(value = "X-Agent-Service-Token", required = false) String serviceToken, @PathVariable String moduleId, @PathVariable String commandId) { AgentPrincipal principal = bridgeGuard.requireAny(serviceToken); return success(genericImportService.getCommand(moduleId, commandId, principal)); } }