From a0074078ae09ff1f9f8a64c7ddf51feb2b489130 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 24 Sep 2025 00:53:58 +0500 Subject: [PATCH] . --- .../parser/controller/ReportController.java | 14 +++- .../kz/konturai/parser/dto/PageResponse.java | 73 +++++++++++++++++++ .../service/ReportGenerationService.java | 6 +- 3 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 src/main/java/kz/konturai/parser/dto/PageResponse.java diff --git a/src/main/java/kz/konturai/parser/controller/ReportController.java b/src/main/java/kz/konturai/parser/controller/ReportController.java index 97e6380..781bb69 100644 --- a/src/main/java/kz/konturai/parser/controller/ReportController.java +++ b/src/main/java/kz/konturai/parser/controller/ReportController.java @@ -18,6 +18,8 @@ import org.springframework.web.bind.annotation.*; import java.util.Optional; +import kz.konturai.parser.dto.PageResponse; + @RestController @RequestMapping("/api/parser/report") public class ReportController { @@ -44,7 +46,8 @@ public class ReportController { } @GetMapping("/history") - public ResponseEntity> history(@RequestParam(name = "page", defaultValue = "0") int page, + public ResponseEntity> history( + @RequestParam(name = "page", defaultValue = "0") int page, @RequestParam(name = "size", defaultValue = "20") int size, @RequestParam(name = "sort", defaultValue = "createdAt,desc") String sort) { String[] parts = sort.split(","); @@ -53,7 +56,14 @@ public class ReportController { : Sort.Direction.DESC; Pageable pageable = PageRequest.of(page, size, Sort.by(dir, sortField)); Page res = reportHistoryRepository.findAll(pageable); - return ResponseEntity.ok(res); + PageResponse dto = new PageResponse<>( + res.getContent(), + res.getNumber(), + res.getSize(), + res.getTotalElements(), + res.getTotalPages(), + sort); + return ResponseEntity.ok(dto); } @GetMapping("/history/{id}") diff --git a/src/main/java/kz/konturai/parser/dto/PageResponse.java b/src/main/java/kz/konturai/parser/dto/PageResponse.java new file mode 100644 index 0000000..2439b20 --- /dev/null +++ b/src/main/java/kz/konturai/parser/dto/PageResponse.java @@ -0,0 +1,73 @@ +package kz.konturai.parser.dto; + +import java.util.List; + +public class PageResponse { + + private List content; + private int page; + private int size; + private long totalElements; + private int totalPages; + private String sort; + + public PageResponse() { + } + + public PageResponse(List content, int page, int size, long totalElements, int totalPages, String sort) { + this.content = content; + this.page = page; + this.size = size; + this.totalElements = totalElements; + this.totalPages = totalPages; + this.sort = sort; + } + + public List getContent() { + return content; + } + + public void setContent(List content) { + this.content = content; + } + + public int getPage() { + return page; + } + + public void setPage(int page) { + this.page = page; + } + + public int getSize() { + return size; + } + + public void setSize(int size) { + this.size = size; + } + + public long getTotalElements() { + return totalElements; + } + + public void setTotalElements(long totalElements) { + this.totalElements = totalElements; + } + + public int getTotalPages() { + return totalPages; + } + + public void setTotalPages(int totalPages) { + this.totalPages = totalPages; + } + + public String getSort() { + return sort; + } + + public void setSort(String sort) { + this.sort = sort; + } +} diff --git a/src/main/java/kz/konturai/parser/service/ReportGenerationService.java b/src/main/java/kz/konturai/parser/service/ReportGenerationService.java index 18dca36..984b3db 100644 --- a/src/main/java/kz/konturai/parser/service/ReportGenerationService.java +++ b/src/main/java/kz/konturai/parser/service/ReportGenerationService.java @@ -180,10 +180,14 @@ public class ReportGenerationService { } private String getCombinedSummaries(List items) { - return items.stream() + String combined = items.stream() .map(i -> i.getAnalytics() != null ? i.getAnalytics().getSummary() : null) .filter(Objects::nonNull) .collect(Collectors.joining("\n\n")); + if (combined.length() > 8000) { + combined = combined.substring(0, 8000); + } + return combined; } private String buildAnnotation(List items) {