模版编制相关实现
This commit is contained in:
@@ -31,9 +31,9 @@ public class OnlyOfficeCallbackController {
|
|||||||
@PostMapping("/callback/{id}")
|
@PostMapping("/callback/{id}")
|
||||||
@PermitAll
|
@PermitAll
|
||||||
@TenantIgnore
|
@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会显示错误
|
// 返回必须的响应,否则OnlyOffice会显示错误
|
||||||
Map<String, Integer> response = new HashMap<>();
|
Map<String, Integer> response = new HashMap<>();
|
||||||
response.put("error", 0);
|
response.put("error", 0);
|
||||||
|
|||||||
@@ -8,5 +8,5 @@ public interface OnlyOfficeCallbackService {
|
|||||||
* 处理OnlyOffice回调
|
* 处理OnlyOffice回调
|
||||||
* @param callback 回调数据
|
* @param callback 回调数据
|
||||||
*/
|
*/
|
||||||
void processCallback(OnlyOfficeCallback callback,String id);
|
void processCallback(OnlyOfficeCallback callback,String id,String fileName);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,29 +31,29 @@ public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService
|
|||||||
private final TemplateInstanceService templateInstanceService;
|
private final TemplateInstanceService templateInstanceService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void processCallback(OnlyOfficeCallback callback, String id) {
|
public void processCallback(OnlyOfficeCallback callback, String id,String fileName) {
|
||||||
log.info("收到OnlyOffice文档回调: {}", callback.getKey());
|
log.info("收到OnlyOffice文档回调: {}", callback.getKey());
|
||||||
log.info("回调状态: {}", callback.getStatus());
|
log.info("回调状态: {}", callback.getStatus());
|
||||||
|
|
||||||
// 根据不同的状态处理回调
|
// 根据不同的状态处理回调
|
||||||
switch (callback.getStatus()) {
|
switch (callback.getStatus()) {
|
||||||
case 1:
|
case 1:
|
||||||
handleEditingStatus(callback, id);
|
handleEditingStatus(callback, id,fileName);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
handleDocumentSaved(callback, id);
|
handleDocumentSaved(callback, id,fileName);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
handleSaveError(callback, id);
|
handleSaveError(callback, id,fileName);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
handleDocumentClosedWithoutChanges(callback, id);
|
handleDocumentClosedWithoutChanges(callback, id,fileName);
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
handleForcedSave(callback, id);
|
handleForcedSave(callback, id,fileName);
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
handleForcedSaveError(callback, id);
|
handleForcedSaveError(callback, id,fileName);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
log.warn("收到未知的回调状态: {}", callback.getStatus());
|
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("文档 {} 正在被以下用户编辑: {}",
|
log.info("文档 {} 正在被以下用户编辑: {}",
|
||||||
callback.getKey(), callback.getUsers());
|
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());
|
log.info("文档 {} 已准备好保存", callback.getKey());
|
||||||
saveDocument(callback, id);
|
saveDocument(callback, id,fileName);
|
||||||
|
|
||||||
// 处理历史记录
|
// 处理历史记录
|
||||||
// handleHistoryChanges(callback,id);
|
// 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());
|
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());
|
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("文档 {} 执行强制保存。类型: {}",
|
log.info("文档 {} 执行强制保存。类型: {}",
|
||||||
callback.getKey(), callback.getForceSaveType());
|
callback.getKey(), callback.getForceSaveType());
|
||||||
saveDocument(callback, id);
|
saveDocument(callback, id,fileName);
|
||||||
|
|
||||||
// 处理历史记录
|
// 处理历史记录
|
||||||
handleHistoryChanges(callback, id);
|
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());
|
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) {
|
if (callback.getUrl() == null) {
|
||||||
log.error("文件路径为空");
|
log.error("文件路径为空");
|
||||||
return;
|
return;
|
||||||
@@ -147,8 +147,6 @@ public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService
|
|||||||
// 1. 验证文件是否为空
|
// 1. 验证文件是否为空
|
||||||
|
|
||||||
|
|
||||||
// 2. 获取并验证文件名
|
|
||||||
String fileName = file.getOriginalFilename();
|
|
||||||
|
|
||||||
String directory = "模版实例";
|
String directory = "模版实例";
|
||||||
FileCreateReqDTO fileCreateReqDTO = new FileCreateReqDTO();
|
FileCreateReqDTO fileCreateReqDTO = new FileCreateReqDTO();
|
||||||
@@ -161,6 +159,7 @@ public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService
|
|||||||
CommonResult<FileRespDTO> result = fileApi.createFileWithReturn(fileCreateReqDTO);
|
CommonResult<FileRespDTO> result = fileApi.createFileWithReturn(fileCreateReqDTO);
|
||||||
if (result.isSuccess()) {
|
if (result.isSuccess()) {
|
||||||
// 创建文件成功,处理结果
|
// 创建文件成功,处理结果
|
||||||
|
result.getData().setContent(null);
|
||||||
log.info("文件创建成功,文件ID:{}", result.getData());
|
log.info("文件创建成功,文件ID:{}", result.getData());
|
||||||
// 创建文件成功,处理结果
|
// 创建文件成功,处理结果
|
||||||
FileRespDTO fileRespDTO = result.getData();
|
FileRespDTO fileRespDTO = result.getData();
|
||||||
|
|||||||
Reference in New Issue
Block a user