模版编制相关实现
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -8,5 +8,5 @@ public interface OnlyOfficeCallbackService {
|
||||
* 处理OnlyOffice回调
|
||||
* @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;
|
||||
|
||||
@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();
|
||||
|
||||
Reference in New Issue
Block a user