|
@@ -9,6 +9,7 @@ import com.caimei.model.vo.FileTreeVo;
|
|
|
import com.caimei.service.data.DatabaseService;
|
|
|
import com.caimei.utils.FileZipUtils;
|
|
|
import com.caimei.utils.OSSUtils;
|
|
|
+import com.sun.org.apache.regexp.internal.RE;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -39,20 +40,19 @@ public class DatabaseServiceImpl implements DatabaseService {
|
|
|
private String active;
|
|
|
|
|
|
@Override
|
|
|
- public ResponseJson<FileTreeVo> getFileById(Integer fileId) {
|
|
|
- FileTreeVo fileTree = fileMapper.findFileById(fileId);
|
|
|
- fileTree.setChildList(fileMapper.findFileChild(fileId));
|
|
|
+ public ResponseJson<List<FileTreeVo>> getFileById(Integer fileId, Integer authUserId) {
|
|
|
+ List<FileTreeVo> fileTree = fileMapper.findFileTree(fileId, authUserId, null);
|
|
|
return ResponseJson.success(fileTree);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public ResponseJson createPackage(Integer fileId, String packageName) {
|
|
|
- fileMapper.creatPackage(fileId, packageName);
|
|
|
+ public ResponseJson createPackage(Integer authUserId, Integer fileId, String packageName) {
|
|
|
+ fileMapper.creatPackage(authUserId, fileId, packageName);
|
|
|
return ResponseJson.success();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void downLoadZip(Integer fileId, String packageName, HttpServletResponse response) {
|
|
|
+ public ResponseJson downLoadZip(Integer fileId, String packageName, Integer authUserId, HttpServletResponse response) {
|
|
|
//有package则在服务器固定路径new file.mkdir
|
|
|
UUID uuid = UUID.randomUUID();
|
|
|
String filePath = "/mnt/newdatadrive/data/runtime/jar-instance/zplma/tempFile/" + uuid + "/";
|
|
@@ -68,7 +68,8 @@ public class DatabaseServiceImpl implements DatabaseService {
|
|
|
boolean mkdirs = new File(filePath).mkdirs();
|
|
|
Assert.isTrue(mkdirs, "文件夹创建失败");
|
|
|
|
|
|
- recursion(fileId, filePath);
|
|
|
+ String param = fileId + "," + authUserId;
|
|
|
+ recursion(param, filePath);
|
|
|
//压缩
|
|
|
FileZipUtils.compress(zipPath, "", true);
|
|
|
String s = zipPath + ".zip";
|
|
@@ -96,10 +97,11 @@ public class DatabaseServiceImpl implements DatabaseService {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
FileZipUtils.deleteFile(new File(delPath));
|
|
|
+ return ResponseJson.success();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void insertNewFile(String fileName, String filePath, String previewUrl,Integer parentId,String fileType) {
|
|
|
+ public ResponseJson insertNewFile(String fileName, String filePath, String previewUrl, Integer parentId, String fileType) {
|
|
|
FileTreeVo fileTreeVo = new FileTreeVo();
|
|
|
fileTreeVo.setFileName(fileName);
|
|
|
fileTreeVo.setOssName(filePath);
|
|
@@ -107,6 +109,7 @@ public class DatabaseServiceImpl implements DatabaseService {
|
|
|
fileTreeVo.setParentId(parentId);
|
|
|
fileTreeVo.setFileType(fileType);
|
|
|
fileMapper.insertNewFile(fileTreeVo);
|
|
|
+ return ResponseJson.success();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -115,22 +118,120 @@ public class DatabaseServiceImpl implements DatabaseService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public ResponseJson getOssUploadResult(String fileName, String ossName, String ossUrl, String fileSize,Integer parentId) {
|
|
|
+ public ResponseJson getOssUploadResult(Integer authUserId, String fileName, String ossName, String ossUrl, String fileSize, Integer parentId) {
|
|
|
FileTreeVo fileTreeVo = new FileTreeVo();
|
|
|
fileTreeVo.setFileName(fileName);
|
|
|
fileTreeVo.setOssName(ossName);
|
|
|
fileTreeVo.setOssUrl(ossUrl);
|
|
|
fileTreeVo.setParentId(parentId);
|
|
|
- fileTreeVo.setFileType(fileName.substring(fileName.indexOf(".")+1));
|
|
|
+ if (fileName.contains(".")) {
|
|
|
+ fileTreeVo.setFileType(fileName.substring(fileName.lastIndexOf(".") + 1));
|
|
|
+ }
|
|
|
fileTreeVo.setFileSize(fileSize);
|
|
|
+ fileTreeVo.setPackageType(1);
|
|
|
+ fileTreeVo.setAuthUserId(authUserId);
|
|
|
fileMapper.insertNewFile(fileTreeVo);
|
|
|
return ResponseJson.success();
|
|
|
}
|
|
|
|
|
|
- private void recursion(Integer fileId, String filePath) {
|
|
|
+ @Override
|
|
|
+ public ResponseJson updatePackage(Integer fileId, String packageName, Integer packageType) {
|
|
|
+ FileTreeVo fileTreeVo = new FileTreeVo();
|
|
|
+ fileTreeVo.setId(fileId);
|
|
|
+ fileTreeVo.setPackageType(packageType);
|
|
|
+ fileTreeVo.setFileName(packageName);
|
|
|
+ fileMapper.updateFile(fileTreeVo);
|
|
|
+ return ResponseJson.success();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseJson movePackage(Integer fileId, Integer parentId) {
|
|
|
+ FileTreeVo fileTreeVo = new FileTreeVo();
|
|
|
+ fileTreeVo.setId(fileId);
|
|
|
+ fileTreeVo.setParentId(parentId);
|
|
|
+ fileMapper.updateFile(fileTreeVo);
|
|
|
+ return ResponseJson.success();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseJson deleteFiles(String fileId) {
|
|
|
+ if (fileId.contains(",")) {
|
|
|
+ String[] split = fileId.split(",");
|
|
|
+ for (String s : split) {
|
|
|
+ deleteFilesById(Integer.valueOf(s));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ deleteFilesById(Integer.valueOf(fileId));
|
|
|
+ }
|
|
|
+ return ResponseJson.success();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void deleteFilesById(Integer fileId) {
|
|
|
+ FileTreeVo file = fileMapper.findFile(fileId, null, null);
|
|
|
+ if (0 == file.getPackageType()) {
|
|
|
+ //文件夹
|
|
|
+ List<FileTreeVo> fileTree = fileMapper.findFileTree(fileId, null, null);
|
|
|
+ fileTree.forEach(f -> {
|
|
|
+ OSSUtils.deleteSingleFile(f.getOssName());
|
|
|
+ fileMapper.deleteFileTreeById(f.getId());
|
|
|
+ });
|
|
|
+ fileMapper.deleteFileTreeById(fileId);
|
|
|
+ } else {
|
|
|
+ //单文件
|
|
|
+ OSSUtils.deleteSingleFile(file.getOssName());
|
|
|
+ fileMapper.deleteFileTreeById(fileId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseJson<FileTreeVo> getCrumbs(Integer fileId, Integer authUserId) {
|
|
|
+ if (fileId > 0) {
|
|
|
+ FileTreeVo file = fileMapper.findFile(fileId, authUserId, null);
|
|
|
+ FileTreeVo crumbsParent = getCrumbsParent(file, authUserId);
|
|
|
+ return ResponseJson.success(crumbsParent);
|
|
|
+ } else {
|
|
|
+ return ResponseJson.success();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseJson<FileTreeVo> getPackageTree(Integer authUserId) {
|
|
|
+ FileTreeVo fileTreeVo = new FileTreeVo();
|
|
|
+ fileTreeVo.setId(0);
|
|
|
+ fileTreeVo.setAuthUserId(authUserId);
|
|
|
+ fileTreeVo.setPackageType(0);
|
|
|
+ PackageTree(fileTreeVo);
|
|
|
+ return ResponseJson.success(fileTreeVo);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void PackageTree(FileTreeVo fileTreeVo) {
|
|
|
+ if (null == fileTreeVo) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<FileTreeVo> fileList = fileMapper.findFileTree(fileTreeVo.getId(), fileTreeVo.getAuthUserId(), fileTreeVo.getPackageType());
|
|
|
+ if (null != fileList && fileList.size() > 0) {
|
|
|
+ fileTreeVo.setChildList(fileList);
|
|
|
+ }
|
|
|
+ fileList.forEach(this::PackageTree);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private FileTreeVo getCrumbsParent(FileTreeVo file, Integer authUserId) {
|
|
|
+ if (null != file && 0 == file.getParentId()) {
|
|
|
+ return file;
|
|
|
+ }
|
|
|
+ FileTreeVo fil = fileMapper.findFile(file.getParentId(), authUserId, null);
|
|
|
+ fil.setChildNode(file);
|
|
|
+ return getCrumbsParent(fil, authUserId);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void recursion(String param, String filePath) {
|
|
|
+ String[] split = param.split(",");
|
|
|
+ Integer fileId = Integer.valueOf(split[0]);
|
|
|
+ Integer authUserId = Integer.valueOf(split[1]);
|
|
|
//1.如果当前目录存在普通文件,下载当前目录下的文件到文件夹中
|
|
|
String finalFilePath = filePath;
|
|
|
- List<FileTreeVo> commonFile = existsPackageOrCommonFile(fileId, 2);
|
|
|
+ List<FileTreeVo> commonFile = existsPackageOrCommonFile(fileId, authUserId, 2);
|
|
|
if (null != commonFile && commonFile.size() > 0) {
|
|
|
commonFile.forEach(c -> {
|
|
|
String fileName = "";
|
|
@@ -143,8 +244,8 @@ public class DatabaseServiceImpl implements DatabaseService {
|
|
|
});
|
|
|
}
|
|
|
//2.如果存在文件夹循环文件夹,递归本方法
|
|
|
- List<FileTreeVo> packages = existsPackageOrCommonFile(fileId, 1);
|
|
|
- HashMap<Integer, String> sonPackage = new HashMap<Integer, String>();
|
|
|
+ List<FileTreeVo> packages = existsPackageOrCommonFile(fileId, authUserId, 1);
|
|
|
+ HashMap<String, String> sonPackage = new HashMap<String, String>();
|
|
|
if (null != packages && packages.size() > 0) {
|
|
|
for (FileTreeVo aPackage : packages) {
|
|
|
if ("dev".equals(active)) {
|
|
@@ -154,7 +255,8 @@ public class DatabaseServiceImpl implements DatabaseService {
|
|
|
}
|
|
|
File fil = new File(filePath.toString());
|
|
|
fil.mkdirs();
|
|
|
- sonPackage.put(aPackage.getId(), filePath);
|
|
|
+ String params = aPackage.getId() + "," + authUserId;
|
|
|
+ sonPackage.put(params, filePath);
|
|
|
}
|
|
|
}
|
|
|
sonPackage.forEach(this::recursion);
|
|
@@ -167,7 +269,7 @@ public class DatabaseServiceImpl implements DatabaseService {
|
|
|
* @param selectFor
|
|
|
* @return
|
|
|
*/
|
|
|
- private List<FileTreeVo> existsPackageOrCommonFile(Integer fileId, Integer selectFor) {
|
|
|
- return fileMapper.findSonPackage(fileId, selectFor);
|
|
|
+ private List<FileTreeVo> existsPackageOrCommonFile(Integer fileId, Integer authUserId, Integer selectFor) {
|
|
|
+ return fileMapper.findSonPackage(fileId, authUserId, selectFor);
|
|
|
}
|
|
|
}
|