@@ -18,6 +18,7 @@ import ru.soune.nocopy.exception.DuplicateImageException;
|
|||||||
import ru.soune.nocopy.repository.*;
|
import ru.soune.nocopy.repository.*;
|
||||||
import ru.soune.nocopy.util.FileUtil;
|
import ru.soune.nocopy.util.FileUtil;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
@@ -113,6 +114,7 @@ public class FileSimilarityService {
|
|||||||
|
|
||||||
public FileEntity findDuplicateByHash(String path, String mimeType, Long userId) throws Exception {
|
public FileEntity findDuplicateByHash(String path, String mimeType, Long userId) throws Exception {
|
||||||
String hash = calculateFileHash(path);
|
String hash = calculateFileHash(path);
|
||||||
|
|
||||||
User user = userRepository.findById(userId).orElseThrow();
|
User user = userRepository.findById(userId).orElseThrow();
|
||||||
Company company = user.getCompany();
|
Company company = user.getCompany();
|
||||||
List<Long> userIds = new ArrayList<>();
|
List<Long> userIds = new ArrayList<>();
|
||||||
@@ -126,10 +128,15 @@ public class FileSimilarityService {
|
|||||||
List<FileEntity> fileEntityList = fileEntityRepository.findByMimeTypeAndUserIds(mimeType, userIds);
|
List<FileEntity> fileEntityList = fileEntityRepository.findByMimeTypeAndUserIds(mimeType, userIds);
|
||||||
|
|
||||||
for (FileEntity file : fileEntityList) {
|
for (FileEntity file : fileEntityList) {
|
||||||
if (calculateFileHash(file.getFilePath()).equals(hash)) {
|
File existingFile = new File(file.getProtectedFilePath());
|
||||||
|
File newFile = new File(path);
|
||||||
|
|
||||||
|
if (existingFile.length() == newFile.length()) {
|
||||||
|
if (calculateFileHash(file.getProtectedFilePath()).equals(hash)) {
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ public class AudioLocalSearchImpl implements AudioLocalSearch {
|
|||||||
|
|
||||||
if (fileEntity == null) return null;
|
if (fileEntity == null) return null;
|
||||||
|
|
||||||
return fileUtil.createFileInfo(fileEntity, fileEntity.getFileExtension());
|
return fileUtil.createFileInfo(fileEntity, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ public class DocumentLocalSearchImpl implements DocumentLocalSearch {
|
|||||||
@Override
|
@Override
|
||||||
public @Nullable FileProtector.FileInfo findByIds(@NotNull String ownerId, @NotNull String fileId) {
|
public @Nullable FileProtector.FileInfo findByIds(@NotNull String ownerId, @NotNull String fileId) {
|
||||||
FileEntity fileEntity = fileEntityRepository.findByIdAndUserId(fileId, Long.valueOf(ownerId));
|
FileEntity fileEntity = fileEntityRepository.findByIdAndUserId(fileId, Long.valueOf(ownerId));
|
||||||
FileProtector.FileInfo fileInfo = fileUtil.createFileInfo(fileEntity, fileEntity.getFileExtension());
|
FileProtector.FileInfo fileInfo = fileUtil.createFileInfo(fileEntity, null);
|
||||||
log.info("fileInfo: {}", fileInfo);
|
log.info("fileInfo: {}", fileInfo);
|
||||||
|
|
||||||
return fileInfo;
|
return fileInfo;
|
||||||
|
|||||||
Reference in New Issue
Block a user