From 3578ec5f7f43f3444ef4bf31b8ba5aa35768dff0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=A9=AC=E8=B6=85?= <1162714483@qq.com>
Date: Thu, 8 Jul 2021 19:50:14 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Eoffice=E6=96=87=E6=A1=A3?=
=?UTF-8?q?=E5=88=9B=E5=BB=BA=EF=BC=8C=E5=9C=A8=E7=BA=BF=E9=A2=84=E8=A7=88?=
=?UTF-8?q?=EF=BC=8C=E7=BC=96=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 10 +-
.../qiwenshare/file/api/IUserFileService.java | 1 +
.../qiwenshare/file/config/WebMvcConfig.java | 10 +-
.../file/controller/OfficeController.java | 331 ++++++++++++++
.../com/qiwenshare/file/domain/FileModel.java | 315 +++++++++++++
.../com/qiwenshare/file/domain/FileType.java | 26 ++
.../file/dto/file/CreateOfficeFileDTO.java | 10 +
.../file/dto/file/EditOfficeFileDTO.java | 12 +
.../file/dto/file/OnlyofficeDTO.java | 15 +
.../file/dto/file/PreviewOfficeFileDTO.java | 12 +
.../qiwenshare/file/helper/ConfigManager.java | 61 +++
.../file/helper/DocumentManager.java | 414 ++++++++++++++++++
.../qiwenshare/file/helper/FileUtility.java | 121 +++++
.../file/helper/ServiceConverter.java | 242 ++++++++++
.../qiwenshare/file/helper/TrackManager.java | 301 +++++++++++++
.../file/mapper/UserFileMapper.java | 2 +-
.../file/service/UserFileService.java | 11 +
.../resources/config/application.properties | 5 +
src/main/resources/config/settings.properties | 18 +
19 files changed, 1908 insertions(+), 9 deletions(-)
create mode 100644 src/main/java/com/qiwenshare/file/controller/OfficeController.java
create mode 100644 src/main/java/com/qiwenshare/file/domain/FileModel.java
create mode 100644 src/main/java/com/qiwenshare/file/domain/FileType.java
create mode 100644 src/main/java/com/qiwenshare/file/dto/file/CreateOfficeFileDTO.java
create mode 100644 src/main/java/com/qiwenshare/file/dto/file/EditOfficeFileDTO.java
create mode 100644 src/main/java/com/qiwenshare/file/dto/file/OnlyofficeDTO.java
create mode 100644 src/main/java/com/qiwenshare/file/dto/file/PreviewOfficeFileDTO.java
create mode 100644 src/main/java/com/qiwenshare/file/helper/ConfigManager.java
create mode 100644 src/main/java/com/qiwenshare/file/helper/DocumentManager.java
create mode 100644 src/main/java/com/qiwenshare/file/helper/FileUtility.java
create mode 100644 src/main/java/com/qiwenshare/file/helper/ServiceConverter.java
create mode 100644 src/main/java/com/qiwenshare/file/helper/TrackManager.java
create mode 100644 src/main/resources/config/settings.properties
diff --git a/pom.xml b/pom.xml
index d24d6fd..260f25c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,12 +6,12 @@
com.qiwenshare
qiwenshare
- 1.0.3
+ 1.0.4
com.qiwenshare
qiwen-file
- 1.0.3-SNAPSHOT
+ 1.0.4-SNAPSHOT
qiwen-file
fileos.qiwenshare.com
jar
@@ -110,6 +110,12 @@
spring-boot-starter-data-elasticsearch
+
+ com.inversoft
+ prime-jwt
+ 1.3.1
+
+
diff --git a/src/main/java/com/qiwenshare/file/api/IUserFileService.java b/src/main/java/com/qiwenshare/file/api/IUserFileService.java
index 1f5d2ee..b6500f0 100644
--- a/src/main/java/com/qiwenshare/file/api/IUserFileService.java
+++ b/src/main/java/com/qiwenshare/file/api/IUserFileService.java
@@ -11,6 +11,7 @@ import java.util.Map;
public interface IUserFileService extends IService {
List selectUserFileByNameAndPath(String fileName, String filePath, Long userId);
+ List selectSameUserFile(String fileName, String filePath, String extendName, Long userId);
void replaceUserFilePath(String filePath, String oldFilePath, Long userId);
List userFileList(UserFile userFile, Long beginCount, Long pageCount);
void updateFilepathByFilepath(String oldfilePath, String newfilePath, String fileName, String extendName, long userId);
diff --git a/src/main/java/com/qiwenshare/file/config/WebMvcConfig.java b/src/main/java/com/qiwenshare/file/config/WebMvcConfig.java
index bfd7a38..76d8f60 100644
--- a/src/main/java/com/qiwenshare/file/config/WebMvcConfig.java
+++ b/src/main/java/com/qiwenshare/file/config/WebMvcConfig.java
@@ -44,16 +44,14 @@ public class WebMvcConfig implements WebMvcConfigurer {
list.add("/file/**");
list.add("/filetransfer/**");
list.add("/recoveryfile/**");
- list.add("/share/**");
+ list.add("/share/sharefile");
+ list.add("/share/savesharefile");
+ list.add("/share/shareList");
registry.addInterceptor(authenticationInterceptor)
.addPathPatterns(list)
.excludePathPatterns("/file",
"/filetransfer/downloadfile",
- "/filetransfer/preview",
- "/share/sharefileList",
- "/share/sharetype",
- "/share/checkextractioncode",
- "/share/checkendtime");
+ "/filetransfer/preview");
}
}
\ No newline at end of file
diff --git a/src/main/java/com/qiwenshare/file/controller/OfficeController.java b/src/main/java/com/qiwenshare/file/controller/OfficeController.java
new file mode 100644
index 0000000..6cf6243
--- /dev/null
+++ b/src/main/java/com/qiwenshare/file/controller/OfficeController.java
@@ -0,0 +1,331 @@
+package com.qiwenshare.file.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.qiwenshare.common.exception.NotLoginException;
+import com.qiwenshare.common.result.RestResult;
+import com.qiwenshare.common.util.DateUtil;
+import com.qiwenshare.file.anno.MyLog;
+import com.qiwenshare.file.api.IFileService;
+import com.qiwenshare.file.api.IFiletransferService;
+import com.qiwenshare.file.api.IUserFileService;
+import com.qiwenshare.file.api.IUserService;
+import com.qiwenshare.file.domain.*;
+import com.qiwenshare.file.dto.file.CreateOfficeFileDTO;
+import com.qiwenshare.file.dto.file.EditOfficeFileDTO;
+import com.qiwenshare.file.dto.file.PreviewOfficeFileDTO;
+import com.qiwenshare.file.helper.ConfigManager;
+import com.qiwenshare.ufo.factory.UFOFactory;
+import com.qiwenshare.ufo.operation.write.Writer;
+import com.qiwenshare.ufo.operation.write.domain.WriteFile;
+import com.qiwenshare.ufo.util.PathUtil;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.poi.xslf.usermodel.XMLSlideShow;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.*;
+import java.net.*;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.Scanner;
+import java.util.UUID;
+
+@Tag(name = "office", description = "该接口为Onlyoffice文件操作接口,主要用来做一些文档的编辑,浏览等。")
+@RestController
+@Slf4j
+@RequestMapping({"/office"})
+public class OfficeController {
+ public static final String CURRENT_MODULE = "Onlyoffice文件操作接口";
+ @Resource
+ IUserService userService;
+ @Resource
+ UFOFactory ufoFactory;
+
+ @Value("${deployment.host}")
+ private String deploymentHost;
+
+
+ @Resource
+ IFileService fileService;
+ @Resource
+ IUserFileService userFileService;
+
+ @ResponseBody
+ @RequestMapping(value = "/createofficefile", method = RequestMethod.POST)
+ public RestResult