This commit is contained in:
@@ -10,6 +10,9 @@ public class ViolationRequest {
|
|||||||
@JsonProperty("file_id")
|
@JsonProperty("file_id")
|
||||||
private String fileId;
|
private String fileId;
|
||||||
|
|
||||||
|
@JsonProperty("violation_id")
|
||||||
|
private Long violationId;
|
||||||
|
|
||||||
@JsonProperty("page")
|
@JsonProperty("page")
|
||||||
private Integer page = 0;
|
private Integer page = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package ru.soune.nocopy.entity.complaint;
|
package ru.soune.nocopy.entity.complaint;
|
||||||
|
|
||||||
public enum ComplaintStatus {
|
public enum ComplaintStatus {
|
||||||
//NEW , SHOWED, LEGAL_IN_WORK, ЖАЛОБА, 3 + 4 , САНКЦАНИРОВАННОЕ ИСПОЛЬЗОВАНИЕ
|
|
||||||
CREATED, SHOWED, IN_WORK, COMPLETED, CANCELLED
|
CREATED, SHOWED, IN_WORK, COMPLETED, CANCELLED
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import ru.soune.nocopy.repository.FileEntityRepository;
|
|||||||
import ru.soune.nocopy.service.file.FileEntityService;
|
import ru.soune.nocopy.service.file.FileEntityService;
|
||||||
import ru.soune.nocopy.service.register.AuthService;
|
import ru.soune.nocopy.service.register.AuthService;
|
||||||
import ru.soune.nocopy.service.violation.ViolationService;
|
import ru.soune.nocopy.service.violation.ViolationService;
|
||||||
|
import ru.soune.nocopy.service.violation.ViolationStatus;
|
||||||
|
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@@ -66,6 +67,18 @@ public class ViolationHandler implements RequestHandler {
|
|||||||
endDate = parseDate(violationRequest.getEndDate());
|
endDate = parseDate(violationRequest.getEndDate());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ("updateStatus".equals(violationRequest.getAction())) {
|
||||||
|
String status = violationRequest.getStatus();
|
||||||
|
Long violationId = violationRequest.getViolationId();
|
||||||
|
|
||||||
|
violationService.changeStatus(ViolationStatus.valueOf(status), violationId);
|
||||||
|
|
||||||
|
return BaseResponse.builder()
|
||||||
|
.msgId(request.getMsgId())
|
||||||
|
.messageBody(Map.of("status", status))
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
if ("group".equalsIgnoreCase(violationRequest.getAction())) {
|
if ("group".equalsIgnoreCase(violationRequest.getAction())) {
|
||||||
Map<String, Long> groupedData = violationService.getGroupedViolations(
|
Map<String, Long> groupedData = violationService.getGroupedViolations(
|
||||||
targetFiles,
|
targetFiles,
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ import ru.soune.nocopy.exception.DuplicateComplaintException;
|
|||||||
import ru.soune.nocopy.exception.ViolationNotFoundException;
|
import ru.soune.nocopy.exception.ViolationNotFoundException;
|
||||||
import ru.soune.nocopy.repository.ComplaintEntityRepository;
|
import ru.soune.nocopy.repository.ComplaintEntityRepository;
|
||||||
import ru.soune.nocopy.repository.ViolationRepository;
|
import ru.soune.nocopy.repository.ViolationRepository;
|
||||||
|
import ru.soune.nocopy.service.violation.ViolationService;
|
||||||
|
import ru.soune.nocopy.service.violation.ViolationStatus;
|
||||||
|
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -33,6 +35,8 @@ public class ComplaintEntityService {
|
|||||||
|
|
||||||
private final ViolationRepository violationRepository;
|
private final ViolationRepository violationRepository;
|
||||||
|
|
||||||
|
private final ViolationService violationService;
|
||||||
|
|
||||||
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
|
|
||||||
public ComplaintResponse createComplaint(ComplaintRequest request) {
|
public ComplaintResponse createComplaint(ComplaintRequest request) {
|
||||||
@@ -51,6 +55,8 @@ public class ComplaintEntityService {
|
|||||||
.not_moderated_file(violation.getFileEntity().getStatus().equals(FileStatus.MODERATION))
|
.not_moderated_file(violation.getFileEntity().getStatus().equals(FileStatus.MODERATION))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
violationService.changeStatus(ViolationStatus.COMPLAINT_IN_WORK, request.getViolationId());
|
||||||
|
|
||||||
return mapToResponse(complaintRepository.save(complaint));
|
return mapToResponse(complaintRepository.save(complaint));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,6 +101,7 @@ public class ComplaintEntityService {
|
|||||||
}
|
}
|
||||||
if (request.getComplaintText() != null) complaint.setComplaintText(request.getComplaintText());
|
if (request.getComplaintText() != null) complaint.setComplaintText(request.getComplaintText());
|
||||||
if (request.getEmail() != null) complaint.setEmail(request.getEmail());
|
if (request.getEmail() != null) complaint.setEmail(request.getEmail());
|
||||||
|
if (request.getStatus() != null) complaint.setStatus(ComplaintStatus.valueOf(request.getStatus()));
|
||||||
|
|
||||||
return mapToResponse(complaintRepository.save(complaint));
|
return mapToResponse(complaintRepository.save(complaint));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import org.springframework.data.domain.PageRequest;
|
|||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.data.domain.Sort;
|
import org.springframework.data.domain.Sort;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import ru.soune.nocopy.dto.file.YandexSearchResponse;
|
import ru.soune.nocopy.dto.file.YandexSearchResponse;
|
||||||
import ru.soune.nocopy.dto.violation.FileViolationSummaryDTO;
|
import ru.soune.nocopy.dto.violation.FileViolationSummaryDTO;
|
||||||
import ru.soune.nocopy.dto.violation.ViolationInfoDTO;
|
import ru.soune.nocopy.dto.violation.ViolationInfoDTO;
|
||||||
@@ -51,7 +52,7 @@ public class ViolationService {
|
|||||||
violation.setPageUrl(imageResult.getPageUrl());
|
violation.setPageUrl(imageResult.getPageUrl());
|
||||||
violation.setPageTitle(imageResult.getPageTitle());
|
violation.setPageTitle(imageResult.getPageTitle());
|
||||||
violation.setFileEntity(file);
|
violation.setFileEntity(file);
|
||||||
violation.setStatus("CREATED");
|
violation.setStatus(ViolationStatus.NEW.name());
|
||||||
|
|
||||||
violationRepository.save(violation);
|
violationRepository.save(violation);
|
||||||
}
|
}
|
||||||
@@ -94,6 +95,14 @@ public class ViolationService {
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public void changeStatus(ViolationStatus status, Long violationId) {
|
||||||
|
Violation violation = violationRepository.findById(violationId).orElseThrow();
|
||||||
|
violation.setStatus(status.name());
|
||||||
|
|
||||||
|
violationRepository.save(violation);
|
||||||
|
}
|
||||||
|
|
||||||
public Page<Violation> getViolationsByFiles(List<FileEntity> files, int page, int size, String sortDirection) {
|
public Page<Violation> getViolationsByFiles(List<FileEntity> 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);
|
Pageable pageable = PageRequest.of(page, size, sort);
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package ru.soune.nocopy.service.violation;
|
||||||
|
|
||||||
|
public enum ViolationStatus {
|
||||||
|
NEW , SHOWED, LEGAL_IN_WORK, COMPLAINT_IN_WORK, COMPLAINT_AND_LEGAL_IN_WORK , AUTHORIZED_USE
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user