dev add new status fo file
Test Workflow / test (push) Successful in 4s

This commit is contained in:
vladp
2026-03-25 15:55:16 +07:00
parent 8eb0772196
commit 17aa52d4ac
13 changed files with 83 additions and 18 deletions
@@ -12,6 +12,7 @@ import org.springframework.stereotype.Service;
import ru.soune.nocopy.dto.file.SimilarFileDTO;
import ru.soune.nocopy.entity.company.Company;
import ru.soune.nocopy.entity.file.FileEntity;
import ru.soune.nocopy.entity.file.FileStatus;
import ru.soune.nocopy.entity.file.ImageHashEntity;
import ru.soune.nocopy.entity.user.User;
import ru.soune.nocopy.exception.DuplicateImageException;
@@ -154,22 +155,19 @@ public class FileSimilarityService {
var imageHashEntity = hashRepository.findById(fileId)
.orElseThrow(() -> new RuntimeException("Hash not found for file: " + fileId));
List<SimilarImageProjection> candidates;
List<Long> userIds;
// if (authToken == null || "all".equals(authToken)) {
candidates = repository.findCandidates(fileId);
// } else {
Long userId = authTokenRepository.findUserIdByToken(authToken);
User user = userRepository.findById(userId).orElseThrow(() -> new RuntimeException("User not found"));
Company company = user.getCompany();
if (company != null) {
userIds = company.getUsers().stream().map(User::getId).collect(Collectors.toList());
// candidates = repository.findCandidatesFromUserFiles(fileId, userIds);
} else {
userIds = List.of(userId);
// candidates = repository.findCandidatesFromUserFiles(fileId, userId);
}
// }
List<SimilarImageProjection> candidates = repository.findCandidates(fileId);
Long userId = authTokenRepository.findUserIdByToken(authToken);
User user = userRepository.findById(userId).orElseThrow(() -> new RuntimeException("User not found"));
Company company = user.getCompany();
if (company != null) {
userIds = company.getUsers().stream().map(User::getId).collect(Collectors.toList());
} else {
userIds = List.of(userId);
}
List<String> levels = (similarityLevels != null && !similarityLevels.isEmpty())
? similarityLevels
@@ -180,6 +178,7 @@ public class FileSimilarityService {
imageHashEntity.getHash64Hi(),
imageHashEntity.getHash64Lo(), userIds))
.filter(dto -> levels.contains(dto.getSimilarityLevel()))
.filter(dto -> dto.getFileStatus().equals(FileStatus.ACTIVE.name()))
.sorted(Comparator.comparingInt(SimilarFileDTO::getHammingDistance))
.collect(Collectors.toList());
@@ -243,6 +242,7 @@ public class FileSimilarityService {
.owner(userIds.contains(similarImageProjection.getUserId()))
// .url(baseUrl + "/api/files/protected/" + similarImageProjection.getId())
.url(baseUrl + "/api/files/protected/" + similarImageProjection.getId() + "/thumbnail")
.fileStatus(similarImageProjection.getFileStatus())
.build();
}
@@ -12,6 +12,7 @@ import ru.soune.nocopy.dto.complaint.ComplaintRequest;
import ru.soune.nocopy.dto.complaint.ComplaintResponse;
import ru.soune.nocopy.entity.complaint.ComplaintEntity;
import ru.soune.nocopy.entity.complaint.ComplaintStatus;
import ru.soune.nocopy.entity.file.FileStatus;
import ru.soune.nocopy.entity.violation.Violation;
import ru.soune.nocopy.exception.ComplaintNotFoundException;
import ru.soune.nocopy.exception.DuplicateComplaintException;
@@ -32,8 +33,6 @@ public class ComplaintEntityService {
private final ViolationRepository violationRepository;
private final ObjectMapper objectMapper;
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
public ComplaintResponse createComplaint(ComplaintRequest request) {
@@ -49,6 +48,7 @@ public class ComplaintEntityService {
.complaintText(request.getComplaintText())
.email(request.getEmail())
.violation(violation)
.not_moderated_file(violation.getFileEntity().getStatus().equals(FileStatus.MODERATION))
.build();
return mapToResponse(complaintRepository.save(complaint));
@@ -116,6 +116,7 @@ public class ComplaintEntityService {
.violationId(entity.getViolation() != null ? entity.getViolation().getId() : null)
.createdAt(entity.getCreatedAt() != null ? entity.getCreatedAt().format(DATE_FORMATTER) : null)
.updatedAt(entity.getUpdatedAt() != null ? entity.getUpdatedAt().format(DATE_FORMATTER) : null)
.notModerated(entity.getNot_moderated_file() != null ? entity.getNot_moderated_file() : null)
.build();
}
}