diff --git a/src/main/java/ru/soune/nocopy/configuration/HandlerConfig.java b/src/main/java/ru/soune/nocopy/configuration/HandlerConfig.java index 0939be6..5c83aa6 100644 --- a/src/main/java/ru/soune/nocopy/configuration/HandlerConfig.java +++ b/src/main/java/ru/soune/nocopy/configuration/HandlerConfig.java @@ -48,7 +48,8 @@ public class HandlerConfig { StatisticTokenHandler statisticTokenHandler, StatisticIncomeHandler statisticIncomeHandler, MonitoringStatisticHandler monitoringStatisticHandler, - DockViewFileHandler dockViewFileHandler + DockViewFileHandler dockViewFileHandler, + StatisticComplaintHandler statisticComplaintHandler ) { Map map = new HashMap<>(); @@ -89,6 +90,7 @@ public class HandlerConfig { map.put(30026, statisticIncomeHandler); map.put(30027, monitoringStatisticHandler); map.put(30028, dockViewFileHandler); + map.put(30029, statisticComplaintHandler); return map; } diff --git a/src/main/java/ru/soune/nocopy/dto/statistic/ComplaintStatisticRequest.java b/src/main/java/ru/soune/nocopy/dto/statistic/ComplaintStatisticRequest.java new file mode 100644 index 0000000..11a4f6b --- /dev/null +++ b/src/main/java/ru/soune/nocopy/dto/statistic/ComplaintStatisticRequest.java @@ -0,0 +1,7 @@ +package ru.soune.nocopy.dto.statistic; + +import lombok.Data; + +@Data +public class ComplaintStatisticRequest { +} diff --git a/src/main/java/ru/soune/nocopy/dto/statistic/ComplaintStatisticResponse.java b/src/main/java/ru/soune/nocopy/dto/statistic/ComplaintStatisticResponse.java new file mode 100644 index 0000000..759dd16 --- /dev/null +++ b/src/main/java/ru/soune/nocopy/dto/statistic/ComplaintStatisticResponse.java @@ -0,0 +1,29 @@ +package ru.soune.nocopy.dto.statistic; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ComplaintStatisticResponse { + + @JsonProperty("total_complaint") + private Long totalComplaints; + + @JsonProperty("total_created") + private Long totalCreated; + + @JsonProperty("total_in_work") + private Long totalInWork; + + @JsonProperty("total_completed") + private Long totalCompleted; + + @JsonProperty("total_cancelled") + private Long totalCancelled; +} diff --git a/src/main/java/ru/soune/nocopy/handler/StatisticComplaintHandler.java b/src/main/java/ru/soune/nocopy/handler/StatisticComplaintHandler.java new file mode 100644 index 0000000..7c2f05a --- /dev/null +++ b/src/main/java/ru/soune/nocopy/handler/StatisticComplaintHandler.java @@ -0,0 +1,29 @@ +package ru.soune.nocopy.handler; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; +import ru.soune.nocopy.dto.BaseRequest; +import ru.soune.nocopy.dto.BaseResponse; +import ru.soune.nocopy.dto.MessageCode; +import ru.soune.nocopy.dto.statistic.ComplaintStatisticResponse; +import ru.soune.nocopy.service.statistic.ComplaintStatisticService; + +@Component +@RequiredArgsConstructor +@Slf4j +public class StatisticComplaintHandler implements RequestHandler { + + private final ComplaintStatisticService complaintStatisticService; + + @Override + public BaseResponse handle(BaseRequest request) throws Exception { + ComplaintStatisticResponse complaintStatisticResponse = complaintStatisticService.complaintStatistic(); + + return new BaseResponse( + request.getMsgId(), + MessageCode.SUCCESS.getCode(), + MessageCode.SUCCESS.getDescription(), + complaintStatisticResponse); + } +} diff --git a/src/main/java/ru/soune/nocopy/repository/ComplaintEntityRepository.java b/src/main/java/ru/soune/nocopy/repository/ComplaintEntityRepository.java index abfdb78..17474a8 100644 --- a/src/main/java/ru/soune/nocopy/repository/ComplaintEntityRepository.java +++ b/src/main/java/ru/soune/nocopy/repository/ComplaintEntityRepository.java @@ -33,6 +33,9 @@ public interface ComplaintEntityRepository extends JpaRepository