From 0047cfd4f690585e7c834436199b99c552c626fd Mon Sep 17 00:00:00 2001 From: backdev-1 Date: Fri, 24 Apr 2026 13:11:49 +0700 Subject: [PATCH] dev fix sort --- .../soune/nocopy/handler/ViolationHandler.java | 3 +-- .../nocopy/repository/ViolationRepository.java | 9 +++++++++ .../service/violation/ViolationService.java | 17 ++++++++++++----- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/main/java/ru/soune/nocopy/handler/ViolationHandler.java b/src/main/java/ru/soune/nocopy/handler/ViolationHandler.java index 1ffb63b..8a97838 100644 --- a/src/main/java/ru/soune/nocopy/handler/ViolationHandler.java +++ b/src/main/java/ru/soune/nocopy/handler/ViolationHandler.java @@ -129,8 +129,7 @@ public class ViolationHandler implements RequestHandler { } for (Violation violation : content) { - if (violation.getStatus().equals(ViolationStatus.NOT_OWNER_FILE.name()) || - firstShowViolation != null && Objects.equals(firstShowViolation.getId(), violation.getId())) continue; + if (firstShowViolation != null && Objects.equals(firstShowViolation.getId(), violation.getId())) continue; ViolationResponse.ViolationDto violationDto = ViolationResponse.ViolationDto.fromEntity(violation); violationDto.setCountry(geoCountryService.getCountryName(violation.getPageUrl())); diff --git a/src/main/java/ru/soune/nocopy/repository/ViolationRepository.java b/src/main/java/ru/soune/nocopy/repository/ViolationRepository.java index 250f50d..75a0382 100644 --- a/src/main/java/ru/soune/nocopy/repository/ViolationRepository.java +++ b/src/main/java/ru/soune/nocopy/repository/ViolationRepository.java @@ -58,6 +58,15 @@ public interface ViolationRepository extends JpaRepository { LocalDateTime startDate, LocalDateTime endDate); + Page findByFileEntityInAndStatusNot(List files, String excludeStatus, Pageable pageable); + + Page findByFileEntityInAndStatusNotAndStatus(List files, String excludeStatus, + String includeStatus, Pageable pageable); + + Page findByFileEntityInAndStatusNotAndCreatedDateBetween(List files, String excludeStatus, + LocalDateTime startDate, LocalDateTime endDate, + Pageable pageable); + @Query("SELECT COUNT(v) FROM Violation v WHERE v.fileEntity.id IN :fileIds") long countByFileEntityIdIn(@Param("fileIds") List fileIds); diff --git a/src/main/java/ru/soune/nocopy/service/violation/ViolationService.java b/src/main/java/ru/soune/nocopy/service/violation/ViolationService.java index 8654b68..12d4e19 100644 --- a/src/main/java/ru/soune/nocopy/service/violation/ViolationService.java +++ b/src/main/java/ru/soune/nocopy/service/violation/ViolationService.java @@ -106,22 +106,29 @@ public class ViolationService { } public Page getViolationsByFiles(List files, int page, int size, String sortDirection) { - Sort sort = Sort.by(sortDirection.equalsIgnoreCase("desc") ? Sort.Direction.DESC : Sort.Direction.ASC, "createdDate"); + Sort sort = Sort.by(sortDirection.equalsIgnoreCase("desc") ? Sort.Direction.DESC : Sort.Direction.ASC, + "createdDate"); Pageable pageable = PageRequest.of(page, size, sort); - return violationRepository.findByFileEntityIn(files, pageable); + + return violationRepository.findByFileEntityInAndStatusNot(files, ViolationStatus.NOT_OWNER_FILE.name(), pageable); } public Page getViolationsByFilesAndStatus(List files, String status, int page, int size, String sortDirection) { - Sort sort = Sort.by(sortDirection.equalsIgnoreCase("desc") ? Sort.Direction.DESC : Sort.Direction.ASC, "createdDate"); + Sort sort = Sort.by(sortDirection.equalsIgnoreCase("desc") ? Sort.Direction.DESC : Sort.Direction.ASC, + "createdDate"); Pageable pageable = PageRequest.of(page, size, sort); + return violationRepository.findByFileEntityInAndStatus(files, status, pageable); } public Page getViolationsByFilesAndDateRange(List files, LocalDateTime startDate, LocalDateTime endDate, int page, int size, String sortDirection) { - Sort sort = Sort.by(sortDirection.equalsIgnoreCase("desc") ? Sort.Direction.DESC : Sort.Direction.ASC, "createdDate"); + Sort sort = Sort.by(sortDirection.equalsIgnoreCase("desc") ? Sort.Direction.DESC : Sort.Direction.ASC, + "createdDate"); Pageable pageable = PageRequest.of(page, size, sort); - return violationRepository.findByFileEntityInAndCreatedDateBetween(files, startDate, endDate, pageable); + + return violationRepository.findByFileEntityInAndStatusNotAndCreatedDateBetween(files, + ViolationStatus.NOT_OWNER_FILE.name(), startDate, endDate, pageable); } public Map getGroupedViolations(List files, String groupBy, String status,