新建文档和解压适配优化

This commit is contained in:
马超 2021-08-01 13:13:20 +08:00
parent 6073aef7c0
commit 271df4be4e
20 changed files with 130 additions and 160 deletions

11
pom.xml
View File

@ -6,12 +6,12 @@
<parent> <parent>
<groupId>com.qiwenshare</groupId> <groupId>com.qiwenshare</groupId>
<artifactId>qiwenshare</artifactId> <artifactId>qiwenshare</artifactId>
<version>1.0.5</version> <version>1.0.6</version>
</parent> </parent>
<groupId>com.qiwenshare</groupId> <groupId>com.qiwenshare</groupId>
<artifactId>qiwen-file</artifactId> <artifactId>qiwen-file</artifactId>
<version>1.0.5-SNAPSHOT</version> <version>1.0.6-SNAPSHOT</version>
<name>qiwen-file</name> <name>qiwen-file</name>
<description>fileos.qiwenshare.com</description> <description>fileos.qiwenshare.com</description>
<packaging>jar</packaging> <packaging>jar</packaging>
@ -98,13 +98,6 @@
<artifactId>ufop-spring-boot-starter</artifactId> <artifactId>ufop-spring-boot-starter</artifactId>
</dependency> </dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId>

View File

@ -1,19 +0,0 @@
package com.qiwenshare.file.anno;
import java.lang.annotation.*;
/**
* 自定义注解类
*/
@Target(ElementType.METHOD) //注解放置的目标位置,METHOD是可注解在方法级别上
@Retention(RetentionPolicy.RUNTIME) //注解在哪个阶段执行
@Documented //生成文档
public @interface MyLog {
String module() default "";
String operation() default "";
String type() default "operation";
String level() default "0"; //0-1-2-
}

View File

@ -1,13 +0,0 @@
package com.qiwenshare.file.anno;
import org.springframework.web.bind.annotation.ResponseBody;
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
@Documented
@ResponseBody
public @interface ResponseResultBody {
}

View File

@ -1,7 +1,7 @@
package com.qiwenshare.file.aop; package com.qiwenshare.file.aop;
import com.qiwenshare.common.anno.MyLog;
import com.qiwenshare.common.result.RestResult; import com.qiwenshare.common.result.RestResult;
import com.qiwenshare.file.anno.MyLog;
import com.qiwenshare.file.api.IOperationLogService; import com.qiwenshare.file.api.IOperationLogService;
import com.qiwenshare.file.api.IUserService; import com.qiwenshare.file.api.IUserService;
import com.qiwenshare.file.domain.UserBean; import com.qiwenshare.file.domain.UserBean;
@ -41,12 +41,11 @@ public class WebLogAcpect {
private String token = ""; private String token = "";
private HttpServletRequest request; private HttpServletRequest request;
private Logger logger = LoggerFactory.getLogger(WebLogAcpect.class);
/** /**
* 定义切入点切入点为com.example.aop下的所有函数 * 定义切入点切入点为com.example.aop下的所有函数
*/ */
@Pointcut("@annotation(com.qiwenshare.file.anno.MyLog)") @Pointcut("@annotation(com.qiwenshare.common.anno.MyLog)")
public void webLog() { public void webLog() {
} }

View File

@ -9,7 +9,6 @@ import com.qiwenshare.file.api.*;
import com.qiwenshare.file.config.es.FileSearch; import com.qiwenshare.file.config.es.FileSearch;
import com.qiwenshare.file.domain.*; import com.qiwenshare.file.domain.*;
import com.qiwenshare.file.mapper.UserFileMapper; import com.qiwenshare.file.mapper.UserFileMapper;
import com.qiwenshare.file.service.UserService;
import com.qiwenshare.file.vo.file.FileListVo; import com.qiwenshare.file.vo.file.FileListVo;
import com.qiwenshare.ufop.factory.UFOPFactory; import com.qiwenshare.ufop.factory.UFOPFactory;
import com.qiwenshare.ufop.operation.read.Reader; import com.qiwenshare.ufop.operation.read.Reader;
@ -297,7 +296,7 @@ public class FileDealComp {
String extractionCode, String extractionCode,
String token, String token,
long userFileId) { long userFileId) {
log.info("权限检查开始shareBatchNum:{}, extractionCode:{}, token:{}, userFileId{}" , shareBatchNum, extractionCode, token, userFileId); log.debug("权限检查开始shareBatchNum:{}, extractionCode:{}, token:{}, userFileId{}" , shareBatchNum, extractionCode, token, userFileId);
UserFile userFile = userFileService.getById(userFileId); UserFile userFile = userFileService.getById(userFileId);
log.debug(JSON.toJSONString(userFile)); log.debug(JSON.toJSONString(userFile));
if ("undefined".equals(shareBatchNum) || StringUtils.isEmpty(shareBatchNum)) { if ("undefined".equals(shareBatchNum) || StringUtils.isEmpty(shareBatchNum)) {
@ -310,7 +309,7 @@ public class FileDealComp {
log.debug("文件所属用户id" + userFile.getUserId()); log.debug("文件所属用户id" + userFile.getUserId());
log.debug("登录用户id:" + sessionUserBean.getUserId()); log.debug("登录用户id:" + sessionUserBean.getUserId());
if (userFile.getUserId().longValue() != sessionUserBean.getUserId().longValue()) { if (userFile.getUserId().longValue() != sessionUserBean.getUserId().longValue()) {
log.debug("用户id不一致权限校验失败"); log.info("用户id不一致权限校验失败");
return false; return false;
} }
} else { } else {
@ -319,18 +318,21 @@ public class FileDealComp {
List<Share> shareList = shareService.listByMap(param); List<Share> shareList = shareService.listByMap(param);
//判断批次号 //判断批次号
if (shareList.size() <= 0) { if (shareList.size() <= 0) {
log.info("分享批次号不存在,权限校验失败");
return false; return false;
} }
Integer shareType = shareList.get(0).getShareType(); Integer shareType = shareList.get(0).getShareType();
if (1 == shareType) { if (1 == shareType) {
//判断提取码 //判断提取码
if (!shareList.get(0).getExtractionCode().equals(extractionCode)) { if (!shareList.get(0).getExtractionCode().equals(extractionCode)) {
log.info("提取码错误,权限校验失败");
return false; return false;
} }
} }
param.put("userFileId", userFileId); param.put("userFileId", userFileId);
List<ShareFile> shareFileList = shareFileService.listByMap(param); List<ShareFile> shareFileList = shareFileService.listByMap(param);
if (shareFileList.size() <= 0) { if (shareFileList.size() <= 0) {
log.info("用户id和分享批次号不匹配权限校验失败");
return false; return false;
} }

View File

@ -4,12 +4,12 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.qiwenshare.common.anno.MyLog;
import com.qiwenshare.common.exception.NotLoginException; import com.qiwenshare.common.exception.NotLoginException;
import com.qiwenshare.common.util.DateUtil; import com.qiwenshare.common.util.DateUtil;
import com.qiwenshare.common.result.RestResult; import com.qiwenshare.common.result.RestResult;
import com.qiwenshare.common.operation.FileOperation; import com.qiwenshare.common.operation.FileOperation;
import com.qiwenshare.common.util.FileUtil; import com.qiwenshare.common.util.FileUtil;
import com.qiwenshare.file.anno.MyLog;
import com.qiwenshare.file.api.*; import com.qiwenshare.file.api.*;
import com.qiwenshare.file.component.FileDealComp; import com.qiwenshare.file.component.FileDealComp;
import com.qiwenshare.file.config.es.FileSearch; import com.qiwenshare.file.config.es.FileSearch;
@ -18,6 +18,9 @@ import com.qiwenshare.file.dto.*;
import com.qiwenshare.file.dto.file.*; import com.qiwenshare.file.dto.file.*;
import com.qiwenshare.file.vo.file.FileListVo; import com.qiwenshare.file.vo.file.FileListVo;
import com.qiwenshare.ufop.factory.UFOPFactory; import com.qiwenshare.ufop.factory.UFOPFactory;
import com.qiwenshare.ufop.operation.copy.domain.CopyFile;
import com.qiwenshare.ufop.operation.download.Downloader;
import com.qiwenshare.ufop.operation.download.domain.DownloadFile;
import com.qiwenshare.ufop.operation.rename.domain.RenameFile; import com.qiwenshare.ufop.operation.rename.domain.RenameFile;
import com.qiwenshare.ufop.util.PathUtil; import com.qiwenshare.ufop.util.PathUtil;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
@ -25,10 +28,12 @@ import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.io.FileUtils;
import org.eclipse.jetty.util.StringUtil; import org.eclipse.jetty.util.StringUtil;
import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder; import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate; import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
@ -37,7 +42,7 @@ import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilde
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.File; import java.io.*;
import java.util.*; import java.util.*;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
@ -50,6 +55,8 @@ import static com.qiwenshare.common.util.FileUtil.getFileExtendsByType;
@RequestMapping("/file") @RequestMapping("/file")
public class FileController { public class FileController {
@Value("${ufop.storage-type}")
private Integer storageType;
@Resource @Resource
IFileService fileService; IFileService fileService;
@Resource @Resource
@ -296,20 +303,33 @@ public class FileController {
if (sessionUserBean == null) { if (sessionUserBean == null) {
throw new NotLoginException(); throw new NotLoginException();
} }
String zipFileUrl = PathUtil.getStaticPath() + unzipFileDto.getFileUrl(); UserFile userFile = userFileService.getById(unzipFileDto.getUserFileId());
File file = FileOperation.newFile(zipFileUrl); FileBean fileBean = fileService.getById(userFile.getFileId());
String extendName = FileUtil.getFileExtendName(zipFileUrl); File destFile = new File(PathUtil.getStaticPath() + "temp" + File.separator + fileBean.getFileUrl());
String unzipUrl = zipFileUrl.replace("." + extendName, "");
String[] arr = unzipFileDto.getFileUrl().split("\\.");
if (arr.length <= 1) { Downloader downloader = ufopFactory.getDownloader(fileBean.getStorageType());
return RestResult.fail().message("文件名格式错误!"); DownloadFile downloadFile = new DownloadFile();
} downloadFile.setFileUrl(fileBean.getFileUrl());
List<String> fileEntryNameList = new ArrayList<>(); downloadFile.setFileSize(fileBean.getFileSize());
if ("zip".equals(arr[1])) { InputStream inputStream = downloader.getInputStream(downloadFile);
fileEntryNameList = FileOperation.unzip(file, unzipUrl);
} else if ("rar".equals(arr[1])) {
try { try {
fileEntryNameList = FileOperation.unrar(file, unzipUrl); FileUtils.copyInputStreamToFile(inputStream, destFile);
} catch (IOException e) {
e.printStackTrace();
}
String extendName = userFile.getExtendName();
String unzipUrl = (PathUtil.getStaticPath() + "temp" + File.separator + fileBean.getFileUrl()).replace("." + extendName, "");
List<String> fileEntryNameList = new ArrayList<>();
if ("zip".equals(extendName)) {
fileEntryNameList = FileOperation.unzip(destFile, unzipUrl);
} else if ("rar".equals(extendName)) {
try {
fileEntryNameList = FileOperation.unrar(destFile, unzipUrl);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
log.error("rar解压失败" + e); log.error("rar解压失败" + e);
@ -320,9 +340,9 @@ public class FileController {
} else { } else {
return RestResult.fail().message("不支持的文件格式!"); return RestResult.fail().message("不支持的文件格式!");
} }
if (destFile.exists()) {
List<FileBean> fileBeanList = new ArrayList<>(); destFile.delete();
}
for (int i = 0; i < fileEntryNameList.size(); i++){ for (int i = 0; i < fileEntryNameList.size(); i++){
String entryName = fileEntryNameList.get(i); String entryName = fileEntryNameList.get(i);
log.info("文件名:"+ entryName); log.info("文件名:"+ entryName);
@ -331,34 +351,61 @@ public class FileController {
File currentFile = FileOperation.newFile(totalFileUrl); File currentFile = FileOperation.newFile(totalFileUrl);
FileBean tempFileBean = new FileBean(); FileBean tempFileBean = new FileBean();
UserFile userFile = new UserFile(); UserFile saveUserFile = new UserFile();
userFile.setUploadTime(DateUtil.getCurrentTime()); saveUserFile.setUploadTime(DateUtil.getCurrentTime());
userFile.setUserId(sessionUserBean.getUserId()); saveUserFile.setUserId(sessionUserBean.getUserId());
userFile.setFilePath(FileUtil.pathSplitFormat(unzipFileDto.getFilePath() + entryName.replace(currentFile.getName(), "")).replace("\\", "/")); saveUserFile.setFilePath(FileUtil.pathSplitFormat(userFile.getFilePath() + entryName.replace(currentFile.getName(), "")).replace("\\", "/"));
if (currentFile.isDirectory()){ if (currentFile.isDirectory()){
saveUserFile.setIsDir(1);
userFile.setIsDir(1); saveUserFile.setFileName(currentFile.getName());
userFile.setFileName(currentFile.getName());
tempFileBean.setTimeStampName(currentFile.getName());
}else{ }else{
String saveFileUrl = "";
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(currentFile);
CopyFile createFile = new CopyFile();
createFile.setExtendName(FileUtil.getFileExtendName(totalFileUrl));
saveFileUrl = ufopFactory.getCopier().copy(fileInputStream, createFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (fileInputStream != null) {
try {
log.info("关闭流");
fileInputStream.close();
userFile.setIsDir(0); System.gc();
userFile.setExtendName(FileUtil.getFileExtendName(totalFileUrl)); try {
userFile.setFileName(FileUtil.getFileNameNotExtend(currentFile.getName())); Thread.sleep(100);
tempFileBean.setFileSize(currentFile.length()); } catch (InterruptedException e) {
tempFileBean.setTimeStampName(FileUtil.getFileNameNotExtend(currentFile.getName())); e.printStackTrace();
tempFileBean.setFileUrl(File.separator + (currentFile.getPath()).replace(PathUtil.getStaticPath(), ""));
tempFileBean.setPointCount(1);
tempFileBean.setStorageType(0);
fileService.save(tempFileBean);
} }
userFile.setFileId(tempFileBean.getFileId()); } catch (IOException e) {
userFile.setDeleteFlag(0); e.printStackTrace();
userFileService.save(userFile); }
}
}
saveUserFile.setIsDir(0);
saveUserFile.setExtendName(FileUtil.getFileExtendName(totalFileUrl));
saveUserFile.setFileName(FileUtil.getFileNameNotExtend(currentFile.getName()));
tempFileBean.setFileSize(currentFile.length());
tempFileBean.setFileUrl(saveFileUrl);
tempFileBean.setPointCount(1);
tempFileBean.setStorageType(storageType);
boolean saveResult = fileService.save(tempFileBean);
if (saveResult) {
boolean result = currentFile.delete();
log.info("删除{}结果:{}",saveFileUrl, result);
}
}
saveUserFile.setFileId(tempFileBean.getFileId());
saveUserFile.setDeleteFlag(0);
userFileService.save(saveUserFile);
}); });
} }

View File

@ -1,11 +1,11 @@
package com.qiwenshare.file.controller; package com.qiwenshare.file.controller;
import com.qiwenshare.common.anno.MyLog;
import com.qiwenshare.common.exception.NotLoginException; import com.qiwenshare.common.exception.NotLoginException;
import com.qiwenshare.common.result.RestResult; import com.qiwenshare.common.result.RestResult;
import com.qiwenshare.common.util.DateUtil; import com.qiwenshare.common.util.DateUtil;
import com.qiwenshare.common.util.FileUtil; import com.qiwenshare.common.util.FileUtil;
import com.qiwenshare.common.util.MimeUtils; import com.qiwenshare.common.util.MimeUtils;
import com.qiwenshare.file.anno.MyLog;
import com.qiwenshare.file.api.IFileService; import com.qiwenshare.file.api.IFileService;
import com.qiwenshare.file.api.IFiletransferService; import com.qiwenshare.file.api.IFiletransferService;
import com.qiwenshare.file.api.IUserFileService; import com.qiwenshare.file.api.IUserFileService;
@ -15,8 +15,6 @@ import com.qiwenshare.file.domain.*;
import com.qiwenshare.file.dto.DownloadFileDTO; import com.qiwenshare.file.dto.DownloadFileDTO;
import com.qiwenshare.file.dto.UploadFileDTO; import com.qiwenshare.file.dto.UploadFileDTO;
import com.qiwenshare.file.dto.file.PreviewDTO; import com.qiwenshare.file.dto.file.PreviewDTO;
import com.qiwenshare.file.service.ShareFileService;
import com.qiwenshare.file.service.ShareService;
import com.qiwenshare.file.service.StorageService; import com.qiwenshare.file.service.StorageService;
import com.qiwenshare.file.vo.file.FileListVo; import com.qiwenshare.file.vo.file.FileListVo;
import com.qiwenshare.file.vo.file.UploadFileVo; import com.qiwenshare.file.vo.file.UploadFileVo;

View File

@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.qiwenshare.common.exception.NotLoginException; import com.qiwenshare.common.exception.NotLoginException;
import com.qiwenshare.common.result.RestResult; import com.qiwenshare.common.result.RestResult;
import com.qiwenshare.common.util.DateUtil; import com.qiwenshare.common.util.DateUtil;
import com.qiwenshare.file.anno.MyLog;
import com.qiwenshare.file.api.IFileService; import com.qiwenshare.file.api.IFileService;
import com.qiwenshare.file.api.IUserFileService; import com.qiwenshare.file.api.IUserFileService;
import com.qiwenshare.file.api.IUserService; import com.qiwenshare.file.api.IUserService;
@ -16,6 +15,8 @@ import com.qiwenshare.file.dto.file.EditOfficeFileDTO;
import com.qiwenshare.file.dto.file.PreviewOfficeFileDTO; import com.qiwenshare.file.dto.file.PreviewOfficeFileDTO;
import com.qiwenshare.file.helper.ConfigManager; import com.qiwenshare.file.helper.ConfigManager;
import com.qiwenshare.ufop.factory.UFOPFactory; import com.qiwenshare.ufop.factory.UFOPFactory;
import com.qiwenshare.ufop.operation.copy.Copier;
import com.qiwenshare.ufop.operation.copy.domain.CopyFile;
import com.qiwenshare.ufop.operation.download.domain.DownloadFile; import com.qiwenshare.ufop.operation.download.domain.DownloadFile;
import com.qiwenshare.ufop.operation.write.Writer; import com.qiwenshare.ufop.operation.write.Writer;
import com.qiwenshare.ufop.operation.write.domain.WriteFile; import com.qiwenshare.ufop.operation.write.domain.WriteFile;
@ -24,9 +25,6 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils; 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.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -81,56 +79,27 @@ public class OfficeController {
} }
String uuid = UUID.randomUUID().toString().replaceAll("-",""); String uuid = UUID.randomUUID().toString().replaceAll("-","");
SimpleDateFormat formater = new SimpleDateFormat("yyyyMMdd"); String templateFilePath = "";
String fileSavePath = PathUtil.getStaticPath() + "/create/" + formater.format(new Date());
File fileSavePathFile = new File(fileSavePath);
if (!fileSavePathFile.exists()) {
fileSavePathFile.mkdirs();
}
String fileUrl = "/create/" + formater.format(new Date()) + "/" + uuid + "." + extendName;
File file = new File(fileSavePath + "/" + uuid + "." + extendName);
if(!file.exists()){
try {
if ("docx".equals(extendName)) { if ("docx".equals(extendName)) {
//创建word文档 templateFilePath = "template/Word.docx";
XWPFDocument document= new XWPFDocument();
//Write the Document in file system
FileOutputStream out = new FileOutputStream(file);
document.write(out);
out.close();
} else if ("xlsx".equals(extendName)) { } else if ("xlsx".equals(extendName)) {
//创建excel表格 templateFilePath = "template/Excel.xlsx";
XSSFWorkbook workbook = new XSSFWorkbook();
//创建工作表
workbook.createSheet("Sheet1");
//Write the Document in file system
FileOutputStream out = new FileOutputStream(file);
workbook.write(out);
out.close();
} else if ("pptx".equals(extendName)) { } else if ("pptx".equals(extendName)) {
//创建pptx演示文稿 templateFilePath = "template/PowerPoint.pptx";
XMLSlideShow pptx = new XMLSlideShow();
//创建工作表
//Write the Document in file system
FileOutputStream out = new FileOutputStream(file);
pptx.write(out);
out.close();
}
} catch (IOException e) {
e.printStackTrace();
}
} }
String templateFileUrl = PathUtil.getStaticPath() + templateFilePath;
FileInputStream fileInputStream = new FileInputStream(templateFileUrl);
Copier copier = ufopFactory.getCopier();
CopyFile copyFile = new CopyFile();
copyFile.setExtendName(extendName);
String fileUrl = copier.copy(fileInputStream, copyFile);
FileBean fileBean = new FileBean(); FileBean fileBean = new FileBean();
fileBean.setFileSize(Long.valueOf(1024 * 3)); fileBean.setFileSize(0L);
fileBean.setFileUrl(fileUrl); fileBean.setFileUrl(fileUrl);
fileBean.setStorageType(0); fileBean.setStorageType(0);
fileBean.setPointCount(1); fileBean.setPointCount(1);
fileBean.setIdentifier(uuid); fileBean.setIdentifier(uuid);
fileBean.setTimeStampName(uuid);
boolean saveFlag = fileService.save(fileBean); boolean saveFlag = fileService.save(fileBean);
UserFile userFile = new UserFile(); UserFile userFile = new UserFile();
if(saveFlag) { if(saveFlag) {
@ -144,19 +113,6 @@ public class OfficeController {
userFile.setFileId(fileBean.getFileId()); userFile.setFileId(fileBean.getFileId());
userFileService.save(userFile); userFileService.save(userFile);
} }
Long newFileSize = file.length();
//更新文件修改信息
LambdaUpdateWrapper<FileBean> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
FileInputStream fins = new FileInputStream(fileSavePath);
String md5Str = DigestUtils.md5Hex(fins);
fins.close();
lambdaUpdateWrapper
.set(FileBean::getIdentifier, md5Str)
.set(FileBean::getTimeStampName, md5Str)
.set(FileBean::getFileSize, newFileSize)
.eq(FileBean::getFileId, fileBean.getFileId());
fileService.update(lambdaUpdateWrapper);
result.success(); result.success();
result.setMessage("文件创建成功!"); result.setMessage("文件创建成功!");

View File

@ -3,10 +3,10 @@ package com.qiwenshare.file.controller;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.qiwenshare.common.anno.MyLog;
import com.qiwenshare.common.exception.NotLoginException; import com.qiwenshare.common.exception.NotLoginException;
import com.qiwenshare.common.util.DateUtil; import com.qiwenshare.common.util.DateUtil;
import com.qiwenshare.common.result.RestResult; import com.qiwenshare.common.result.RestResult;
import com.qiwenshare.file.anno.MyLog;
import com.qiwenshare.file.api.IRecoveryFileService; import com.qiwenshare.file.api.IRecoveryFileService;
import com.qiwenshare.file.api.IUserFileService; import com.qiwenshare.file.api.IUserFileService;
import com.qiwenshare.file.api.IUserService; import com.qiwenshare.file.api.IUserService;

View File

@ -4,10 +4,10 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qiwenshare.common.anno.MyLog;
import com.qiwenshare.common.exception.NotLoginException; import com.qiwenshare.common.exception.NotLoginException;
import com.qiwenshare.common.util.DateUtil; import com.qiwenshare.common.util.DateUtil;
import com.qiwenshare.common.result.RestResult; import com.qiwenshare.common.result.RestResult;
import com.qiwenshare.file.anno.MyLog;
import com.qiwenshare.file.api.*; import com.qiwenshare.file.api.*;
import com.qiwenshare.file.component.FileDealComp; import com.qiwenshare.file.component.FileDealComp;
import com.qiwenshare.file.domain.Share; import com.qiwenshare.file.domain.Share;

View File

@ -69,7 +69,6 @@ public class TaskController {
List<UserFile> userfileList = userFileService.list(); List<UserFile> userfileList = userFileService.list();
for (UserFile userFile : userfileList) { for (UserFile userFile : userfileList) {
log.info(JSON.toJSONString(userFile));
fileDealComp.uploadESByUserFileId(userFile.getUserFileId()); fileDealComp.uploadESByUserFileId(userFile.getUserFileId());
} }

View File

@ -2,9 +2,9 @@ package com.qiwenshare.file.controller;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.qiwenshare.common.anno.MyLog;
import com.qiwenshare.common.result.RestResult; import com.qiwenshare.common.result.RestResult;
import com.qiwenshare.common.util.JjwtUtil; import com.qiwenshare.common.util.JjwtUtil;
import com.qiwenshare.file.anno.MyLog;
import com.qiwenshare.file.api.IUserService; import com.qiwenshare.file.api.IUserService;
import com.qiwenshare.file.domain.UserBean; import com.qiwenshare.file.domain.UserBean;
import com.qiwenshare.file.dto.user.RegisterDTO; import com.qiwenshare.file.dto.user.RegisterDTO;

View File

@ -24,9 +24,6 @@ public class FileBean {
@Column(columnDefinition="bigint(20)") @Column(columnDefinition="bigint(20)")
private Long fileId; private Long fileId;
@Column(columnDefinition="varchar(500)")
private String timeStampName;
@Column(columnDefinition="varchar(500)") @Column(columnDefinition="varchar(500)")
private String fileUrl; private String fileUrl;

View File

@ -7,7 +7,12 @@ import lombok.Data;
@Schema(name = "解压缩文件DTO",required = true) @Schema(name = "解压缩文件DTO",required = true)
public class UnzipFileDTO { public class UnzipFileDTO {
@Schema(description = "文件url", required = true) @Schema(description = "文件url", required = true)
private long userFileId;
@Schema(description = "文件url", required = true)
@Deprecated
private String fileUrl; private String fileUrl;
@Schema(description = "文件路径", required = true) @Schema(description = "文件路径", required = true)
@Deprecated
private String filePath; private String filePath;
} }

View File

@ -91,7 +91,7 @@ public class FiletransferService implements IFiletransferService {
uploadFile = uploadFileList.get(i); uploadFile = uploadFileList.get(i);
FileBean fileBean = new FileBean(); FileBean fileBean = new FileBean();
BeanUtil.copyProperties(uploadFileDto, fileBean); BeanUtil.copyProperties(uploadFileDto, fileBean);
fileBean.setTimeStampName(uploadFile.getTimeStampName()); // fileBean.setTimeStampName(uploadFile.getTimeStampName());
if (uploadFile.getSuccess() == 1){ if (uploadFile.getSuccess() == 1){
fileBean.setFileUrl(uploadFile.getUrl()); fileBean.setFileUrl(uploadFile.getUrl());
fileBean.setFileSize(uploadFile.getFileSize()); fileBean.setFileSize(uploadFile.getFileSize());
@ -262,7 +262,7 @@ public class FiletransferService implements IFiletransferService {
deleter = ufopFactory.getDeleter(fileBean.getStorageType()); deleter = ufopFactory.getDeleter(fileBean.getStorageType());
DeleteFile deleteFile = new DeleteFile(); DeleteFile deleteFile = new DeleteFile();
deleteFile.setFileUrl(fileBean.getFileUrl()); deleteFile.setFileUrl(fileBean.getFileUrl());
deleteFile.setTimeStampName(fileBean.getTimeStampName()); // deleteFile.setTimeStampName(fileBean.getTimeStampName());
deleter.delete(deleteFile); deleter.delete(deleteFile);
} }

View File

@ -63,13 +63,22 @@ ufop.aliyun.oss.access-key-secret=
ufop.aliyun.oss.bucket-name= ufop.aliyun.oss.bucket-name=
#FastDFS配置 #FastDFS配置
fdfs.so-timeout=1501 #读取时间
fdfs.connect-timeout=601 fdfs.so-timeout=15000
#超时连接时间
fdfs.connect-timeout=15000
# 连接池最大数量
fdfs.pool.max-total=200
#单个tracker最大连接数
fdfs.pool.max-total-per-key=50
#连接耗尽最大等待时间 毫秒
fdfs.pool.max-wait-millis=5000
fdfs.tracker-list=127.0.0.1:22122 fdfs.tracker-list=127.0.0.1:22122
# Redis数据库索引默认为0 # Redis数据库索引默认为0
spring.redis.database=0 spring.redis.database=0
# Redis服务器地址 # Redis服务器地址

Binary file not shown.

View File

@ -1,13 +1,10 @@
package com.qiwenshare.file; package com.qiwenshare.file;
//import org.junit.Test;
//import org.junit.runner.RunWith;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest @SpringBootTest
public class ScpApplicationTests { public class ScpApplicationTests {