模版编制相关实现

This commit is contained in:
潘荣晟
2025-09-26 17:13:10 +08:00
parent abf9607c43
commit fa7c08a493
3 changed files with 20 additions and 21 deletions

View File

@@ -31,9 +31,9 @@ public class OnlyOfficeCallbackController {
@PostMapping("/callback/{id}")
@PermitAll
@TenantIgnore
public ResponseEntity<Map<String, Integer>> handleCallback(@RequestBody OnlyOfficeCallback callback, @PathVariable String id) {
public ResponseEntity<Map<String, Integer>> handleCallback(@RequestBody OnlyOfficeCallback callback, @PathVariable String id,@RequestParam("fileName") String fileName) {
// 处理回调逻辑
callbackService.processCallback(callback,id);
callbackService.processCallback(callback,id,fileName);
// 返回必须的响应否则OnlyOffice会显示错误
Map<String, Integer> response = new HashMap<>();
response.put("error", 0);

View File

@@ -8,5 +8,5 @@ public interface OnlyOfficeCallbackService {
* 处理OnlyOffice回调
* @param callback 回调数据
*/
void processCallback(OnlyOfficeCallback callback,String id);
void processCallback(OnlyOfficeCallback callback,String id,String fileName);
}

View File

@@ -31,29 +31,29 @@ public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService
private final TemplateInstanceService templateInstanceService;
@Override
public void processCallback(OnlyOfficeCallback callback, String id) {
public void processCallback(OnlyOfficeCallback callback, String id,String fileName) {
log.info("收到OnlyOffice文档回调: {}", callback.getKey());
log.info("回调状态: {}", callback.getStatus());
// 根据不同的状态处理回调
switch (callback.getStatus()) {
case 1:
handleEditingStatus(callback, id);
handleEditingStatus(callback, id,fileName);
break;
case 2:
handleDocumentSaved(callback, id);
handleDocumentSaved(callback, id,fileName);
break;
case 3:
handleSaveError(callback, id);
handleSaveError(callback, id,fileName);
break;
case 4:
handleDocumentClosedWithoutChanges(callback, id);
handleDocumentClosedWithoutChanges(callback, id,fileName);
break;
case 6:
handleForcedSave(callback, id);
handleForcedSave(callback, id,fileName);
break;
case 7:
handleForcedSaveError(callback, id);
handleForcedSaveError(callback, id,fileName);
break;
default:
log.warn("收到未知的回调状态: {}", callback.getStatus());
@@ -63,7 +63,7 @@ public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService
/**
* 处理文档正在编辑的状态
*/
private void handleEditingStatus(OnlyOfficeCallback callback, String id) {
private void handleEditingStatus(OnlyOfficeCallback callback, String id,String fileName) {
log.info("文档 {} 正在被以下用户编辑: {}",
callback.getKey(), callback.getUsers());
@@ -84,9 +84,9 @@ public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService
/**
* 处理文档已保存的状态
*/
private void handleDocumentSaved(OnlyOfficeCallback callback, String id) {
private void handleDocumentSaved(OnlyOfficeCallback callback, String id,String fileName) {
log.info("文档 {} 已准备好保存", callback.getKey());
saveDocument(callback, id);
saveDocument(callback, id,fileName);
// 处理历史记录
// handleHistoryChanges(callback,id);
@@ -95,7 +95,7 @@ public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService
/**
* 处理保存错误的状态
*/
private void handleSaveError(OnlyOfficeCallback callback, String id) {
private void handleSaveError(OnlyOfficeCallback callback, String id,String fileName) {
log.error("保存文档 {} 时出错", callback.getKey());
// 可以在这里添加错误处理逻辑,如发送通知等
}
@@ -103,7 +103,7 @@ public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService
/**
* 处理文档关闭且无更改的状态
*/
private void handleDocumentClosedWithoutChanges(OnlyOfficeCallback callback, String id) {
private void handleDocumentClosedWithoutChanges(OnlyOfficeCallback callback, String id,String fileName) {
log.info("文档 {} 已关闭,未做任何更改", callback.getKey());
// 可以在这里添加清理资源等逻辑
}
@@ -111,10 +111,10 @@ public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService
/**
* 处理强制保存的状态
*/
private void handleForcedSave(OnlyOfficeCallback callback, String id) {
private void handleForcedSave(OnlyOfficeCallback callback, String id,String fileName) {
log.info("文档 {} 执行强制保存。类型: {}",
callback.getKey(), callback.getForceSaveType());
saveDocument(callback, id);
saveDocument(callback, id,fileName);
// 处理历史记录
handleHistoryChanges(callback, id);
@@ -128,7 +128,7 @@ public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService
/**
* 处理强制保存错误的状态
*/
private void handleForcedSaveError(OnlyOfficeCallback callback, String id) {
private void handleForcedSaveError(OnlyOfficeCallback callback, String id,String fileName) {
log.error("文档 {} 强制保存时出错", callback.getKey());
// 可以在这里添加错误处理逻辑
}
@@ -136,7 +136,7 @@ public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService
/**
* 保存文档到存储
*/
private void saveDocument(OnlyOfficeCallback callback, String id) {
private void saveDocument(OnlyOfficeCallback callback, String id,String fileName) {
if (callback.getUrl() == null) {
log.error("文件路径为空");
return;
@@ -147,8 +147,6 @@ public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService
// 1. 验证文件是否为空
// 2. 获取并验证文件名
String fileName = file.getOriginalFilename();
String directory = "模版实例";
FileCreateReqDTO fileCreateReqDTO = new FileCreateReqDTO();
@@ -161,6 +159,7 @@ public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService
CommonResult<FileRespDTO> result = fileApi.createFileWithReturn(fileCreateReqDTO);
if (result.isSuccess()) {
// 创建文件成功,处理结果
result.getData().setContent(null);
log.info("文件创建成功文件ID{}", result.getData());
// 创建文件成功,处理结果
FileRespDTO fileRespDTO = result.getData();