package com.example.fms.controller; import com.example.fms.common.model.dto.ForceSaveDTO; import com.example.fms.common.model.dto.QueryFileVersionDTO; import com.example.fms.common.model.dto.RestoreFileVersionDTO; import com.example.fms.common.model.vo.FileVersionInfoVO; import com.example.fms.common.model.vo.ForceSaveVO; import com.example.fms.common.model.vo.QueryFileVersionHistoryVO; import com.example.fms.common.utils.Response; import com.example.fms.service.FileVersionService; 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.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.io.IOException; import java.util.HashMap; import java.util.Map; @Tag(name = "文件版本模块") @Slf4j @RestController @RequiredArgsConstructor @RequestMapping("/onlyOffice") public class FileVersionController { @Autowired private FileVersionService fileVersionService; @PostMapping("/callback") @Operation(summary = "onlyoffice回调函数(文件保存)") public Map callback(@RequestBody Map params, @RequestParam String guid, @RequestParam String fileName, @RequestParam String user, @RequestParam Integer previousVersion) throws IOException { Integer code = fileVersionService.callback(params, guid, fileName, user, previousVersion); Map map = new HashMap<>(); map.put("error", code); return map; } @PostMapping("/restoreVersion") @Operation(summary = "onlyoffice版本恢复") public String restoreFileVersion(@RequestBody RestoreFileVersionDTO vo) { fileVersionService.restoreFileVersion(vo); return Response.success(); } @PostMapping("/forceSave") @Operation(summary = "onlyoffice强制保存") public String forceSave(@RequestBody ForceSaveDTO vo) throws IOException { ForceSaveVO saveVO = fileVersionService.forceSave(vo); if (saveVO.getNum() != null) { return Response.success(saveVO.getNum(), saveVO.getMessage()); } else { return Response.success("", saveVO.getMessage()); } } @PostMapping("/getCurrentVersionData") @Operation(summary = "获取当前显示版本数据") public String getCurrentVersionData(@RequestBody QueryFileVersionDTO vo) { FileVersionInfoVO versionData = fileVersionService.getCurrentVersionData(vo); return Response.success(versionData); } @PostMapping("/queryFileVersionHistory") @Operation(summary = "onlyoffice查询文件版本历史") public String queryFileVersionHistory(@RequestBody QueryFileVersionDTO vo) { QueryFileVersionHistoryVO historyVO = fileVersionService.queryFileVersionHistory(vo); return Response.success(historyVO); } }