@@ -912,21 +912,20 @@ public List<ContactIndexDetailedDto> getIndexDetailedList(
912912 }
913913
914914 // Load event count and latest events info per contact
915- List <ContactEventSummaryDetails > eventSummaries =
916- eventService .getEventSummaryDetailsByContacts (dtos .stream ().map (ContactIndexDetailedDto ::getUuid ).collect (Collectors .toList ()));
917- Map <String , Long > eventCounts =
918- eventSummaries .stream ().collect (Collectors .groupingBy (ContactEventSummaryDetails ::getContactUuid , Collectors .counting ()));
915+ Map <String , List <ContactEventSummaryDetails >> eventSummaries =
916+ eventService .getEventSummaryDetailsByContacts (
917+ dtos .stream ().map (ContactIndexDetailedDto ::getUuid ).collect (Collectors .toList ()))
918+ .stream ()
919+ .collect (Collectors .groupingBy (ContactEventSummaryDetails ::getContactUuid , Collectors .toList ()));
919920 for (ContactIndexDetailedDto contact : dtos ) {
920921
921- contact .setEventCount (eventCounts .getOrDefault (contact .getUuid (), 0L ));
922+ List <ContactEventSummaryDetails > contactEvents = eventSummaries .getOrDefault (contact .getUuid (), Collections .emptyList ());
923+ contact .setEventCount ((long ) contactEvents .size ());
922924
923- eventSummaries .stream ()
924- .filter (v -> v .getContactUuid ().equals (contact .getUuid ()))
925- .max (Comparator .comparing (ContactEventSummaryDetails ::getEventDate ))
926- .ifPresent (eventSummary -> {
927- contact .setLatestEventId (eventSummary .getEventUuid ());
928- contact .setLatestEventTitle (eventSummary .getEventTitle ());
929- });
925+ contactEvents .stream ().max (Comparator .comparing (ContactEventSummaryDetails ::getEventDate )).ifPresent (eventSummary -> {
926+ contact .setLatestEventId (eventSummary .getEventUuid ());
927+ contact .setLatestEventTitle (eventSummary .getEventTitle ());
928+ });
930929 }
931930
932931 Pseudonymizer pseudonymizer = Pseudonymizer .getDefault (userService ::hasRight , I18nProperties .getCaption (Captions .inaccessibleValue ));
0 commit comments