Skip to content

Commit 68b9bbd

Browse files
committed
fix38
1 parent b015926 commit 68b9bbd

2 files changed

Lines changed: 13 additions & 3 deletions

File tree

ewm-service/src/main/java/ru/practicum/ewm/event/repository/EventRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ Page<Event> searchEventsPublic(@Param("text") String text,
6565
Long countConfirmedRequests(@Param("eventId") Long eventId);
6666

6767
@Query("SELECT r.event.id, COUNT(r) FROM Request r WHERE r.event.id IN :eventIds AND r.status = 'CONFIRMED' GROUP BY r.event.id")
68-
Map<Long, Long> countConfirmedRequestsBatch(@Param("eventIds") List<Long> eventIds);
68+
List<Object[]> countConfirmedRequestsBatch(@Param("eventIds") List<Long> eventIds);
6969

7070
@Query("SELECT e FROM Event e " +
7171
"LEFT JOIN FETCH e.category " +

ewm-service/src/main/java/ru/practicum/ewm/event/service/EventServiceImpl.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,12 @@ public List<EventFullDto> getEventsForAdmin(AdminEventSearchParams params) {
207207

208208
List<Event> events = page.getContent();
209209
List<Long> eventIds = events.stream().map(Event::getId).collect(Collectors.toList());
210-
Map<Long, Long> confirmedRequestsMap = eventRepository.countConfirmedRequestsBatch(eventIds);
210+
List<Object[]> batchResult = eventRepository.countConfirmedRequestsBatch(eventIds);
211+
Map<Long, Long> confirmedRequestsMap = batchResult.stream()
212+
.collect(Collectors.toMap(
213+
row -> (Long) row[0],
214+
row -> (Long) row[1]
215+
));
211216

212217
return events.stream()
213218
.map(event -> EventMapper.toEventFullDto(event, 0L, confirmedRequestsMap.getOrDefault(event.getId(), 0L)))
@@ -381,6 +386,11 @@ private Map<Long, Long> getViewsMap(List<Event> events) {
381386
private Map<Long, Long> getConfirmedRequestsMap(List<Event> events) {
382387
if (events.isEmpty()) return Map.of();
383388
List<Long> eventIds = events.stream().map(Event::getId).collect(Collectors.toList());
384-
return eventRepository.countConfirmedRequestsBatch(eventIds);
389+
List<Object[]> batchResult = eventRepository.countConfirmedRequestsBatch(eventIds);
390+
return batchResult.stream()
391+
.collect(Collectors.toMap(
392+
row -> (Long) row[0],
393+
row -> (Long) row[1]
394+
));
385395
}
386396
}

0 commit comments

Comments
 (0)