This commit is contained in:
@@ -41,6 +41,13 @@ public class UserService {
|
||||
return userRepository.save(user);
|
||||
}
|
||||
|
||||
public String userEmailById(Long userId) {
|
||||
User user = userRepository.findById(userId)
|
||||
.orElseThrow(() -> new UserNotFoundException("User not found with id: " + userId));
|
||||
|
||||
return user.getEmail();
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public UserDTO updateUser(UserRequest userRequest, User currentUser) {
|
||||
User user = userRepository.findById(currentUser.getId())
|
||||
|
||||
@@ -12,13 +12,17 @@ import ru.soune.nocopy.dto.violation.ViolationStatisticsResponse;
|
||||
import ru.soune.nocopy.entity.file.FileEntity;
|
||||
import ru.soune.nocopy.entity.file.FileStatus;
|
||||
import ru.soune.nocopy.entity.search.GlobalSearchResult;
|
||||
import ru.soune.nocopy.entity.user.User;
|
||||
import ru.soune.nocopy.entity.violation.Violation;
|
||||
import ru.soune.nocopy.exception.UserNotHavePermission;
|
||||
import ru.soune.nocopy.repository.ComplaintEntityRepository;
|
||||
import ru.soune.nocopy.repository.FileEntityRepository;
|
||||
import ru.soune.nocopy.repository.LawCaseRepository;
|
||||
import ru.soune.nocopy.repository.ViolationRepository;
|
||||
import ru.soune.nocopy.service.file.FileEntityService;
|
||||
import ru.soune.nocopy.service.user.UserService;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.format.DateTimeParseException;
|
||||
@@ -40,6 +44,8 @@ public class ViolationService {
|
||||
|
||||
private final LawCaseRepository lawCaseRepository;
|
||||
|
||||
private final UserService userService;
|
||||
|
||||
public void processViolation(YandexSearchResponse.ImageResult imageResult, FileEntity file,
|
||||
GlobalSearchResult result) {
|
||||
String url = imageResult.getUrl();
|
||||
@@ -287,16 +293,16 @@ public class ViolationService {
|
||||
}
|
||||
|
||||
public ViolationStatisticsResponse getViolationStatistics(Long userId, String fileId,
|
||||
LocalDateTime startDate, LocalDateTime endDate) {
|
||||
LocalDateTime startDate, LocalDateTime endDate) throws FileNotFoundException {
|
||||
|
||||
List<FileEntity> userFiles;
|
||||
|
||||
if (fileId != null && !fileId.isEmpty()) {
|
||||
FileEntity file = fileEntityRepository.findById(fileId)
|
||||
.orElseThrow(() -> new IllegalArgumentException("File not found with id: " + fileId));
|
||||
.orElseThrow(() -> new FileNotFoundException("File not found with id: " + fileId));
|
||||
|
||||
if (!file.getUserId().equals(userId)) {
|
||||
throw new IllegalArgumentException("File does not belong to user");
|
||||
throw new UserNotHavePermission("File does not belong to user");
|
||||
}
|
||||
|
||||
userFiles = List.of(file);
|
||||
@@ -345,7 +351,13 @@ public class ViolationService {
|
||||
Long totalComplaints = 0L;
|
||||
Long totalLawCases = 0L;
|
||||
|
||||
if (!violationIds.isEmpty()) {
|
||||
if (startDate != null && endDate != null) {
|
||||
totalLawCases = lawCaseRepository.countLawCasesByUserAndDateRange(userId, startDate, endDate);
|
||||
totalComplaints = complaintRepository.countComplaintEntityByEmailAndCreatedAtBetween(
|
||||
userService.userEmailById(userId),
|
||||
startDate,
|
||||
endDate);
|
||||
} else if (!violationIds.isEmpty()) {
|
||||
totalComplaints = complaintRepository.countComplaintByViolations(violationIds);
|
||||
totalLawCases = lawCaseRepository.countLawCaseByViolationIds(violationIds);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user