package com.superbiz.agent.controller; import com.superbiz.agent.dto.DocumentUploadRequest; import com.superbiz.agent.dto.Result; import com.superbiz.agent.service.DocumentManagementService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; /** * 文档管理控制器 */ @Slf4j @RestController @RequestMapping("/api/documents") public class DocumentController { @Autowired private DocumentManagementService documentManagementService; /** * 上传文档 */ @PostMapping("/upload") public Result uploadDocument( @RequestParam("file") MultipartFile file, @RequestParam(value = "faultCategory", required = false) String faultCategory, @RequestParam(value = "faultSource", required = false) String faultSource, @RequestParam(value = "apiName", required = false) String apiName, @RequestParam(value = "version", required = false) String version, @RequestParam(value = "chunkSize", required = false, defaultValue = "500") Integer chunkSize, @RequestParam(value = "chunkOverlap", required = false, defaultValue = "50") Integer chunkOverlap ) { try { DocumentUploadRequest request = DocumentUploadRequest.builder() .file(file) .faultCategory(faultCategory) .faultSource(faultSource) .apiName(apiName) .version(version) .chunkSize(chunkSize) .chunkOverlap(chunkOverlap) .build(); String docId = documentManagementService.uploadDocument(request); log.info("文档上传成功,docId: {}", docId); return Result.success(docId); } catch (Exception e) { log.error("文档上传失败", e); return Result.error(500, "文档上传失败: " + e.getMessage()); } } }