Общее количество не добавлено в существующий список - PullRequest
1 голос
/ 27 апреля 2020

Я использую весеннюю загрузку с Rest API в java. Я пытался получить весь список событий между startDate и endDate и order By startDate, но с каждой даты только 6 записей получают не больше. если каждая дата записи> 6, то я хочу добавить количество к этой конкретной дате записи.

Предположим, в этом месяце мудрая дата -n нет. события там. Но я хочу, чтобы в каждой дате было только шесть записей, не требуется больше записей, если доступно больше записей, то я хочу добавить общее количество этой даты записи. В этом объекте eventsListTwoDates у меня есть Список всех событий.

Я получаю каждую дату 6 записей из списка eventsListTwoDates, но счет не добавляется, если каждая дата записи> 6.

1.JPA пользовательский запрос

  @Query("SELECT new com.techavidus.networkingPhoniex.model.Events(e.id, e.eventImg , e.multipleDays , e.startDate, e.endDate, e.startTime, e.endTime, e.eventStatus, e.paid, e.fee, e.passportTickets, e.location, e.city, e.myFavourite, e.remainingTickets, e.eventName, e.passport, e.typesOfEvents, e.eventPassportOptions, e.promoCode, e.subTitle, e.expectedAttendance)" +
            " from Events e WHERE e.startDate BETWEEN :startDate AND :endDate AND e.endDate BETWEEN :startDate AND :endDate ORDER BY e.startDate")
    List<Events> findAllListOfEventsWithoutEventTypeIdWithOnlyTwoDateTest(String startDate, String endDate);

Код
public GenericResponse getListEvent()
{
   List<Events> eventsListTwoDates = eventsDao.findAllListOfEventsWithoutEventTypeIdWithOnlyTwoDateTest(firstMondayCurrentMonth, lastDateCurrentMonth);
   Events events = new Events();
   List<Events> eventsList = new ArrayList<>();
   for (int i=0; i<eventsListTwoDates.size(); i++){
       int count = 1;
       for (int j=i+1; j<eventsListTwoDates.size(); j++) {
          if (eventsListTwoDates.get(i).getStartDate().equals(eventsListTwoDates.get(j).getStartDate())){
              count++;
          }
       }
       if (count<=6) {
          events.setCount(count);
          eventsList.add(i,events);
          eventsList.add(eventsListTwoDates.get(i));
          System.out.println(count + " : " +eventsListTwoDates.get(i).getStartDate());
       }
   }
     return APIResponseBuilder.build(true, eventsList, commonMessages.findAllTrue);
}

1 Ответ

0 голосов
/ 27 апреля 2020

Похоже, что вы вообще никогда не возвращаете count, поэтому, возможно, у вас его нет. Кроме того, при оценке даты я обычно забываю принимать во внимание часть времени, поэтому некоторые функции даты не оцениваются должным образом, и мы получаем ошибки, подобные этой.

Я бы медленно отладил ваш код, просто чтобы быть уверенным в том, что делает ваша функция. Кроме того, не хотите ли вы повторять каждый диапазон дат вместо всего списка дважды? Вы можете использовать классы Calendar / LocalDateTime, чтобы довольно легко получить счет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...