From cb0b82045d0a53b5dbcddb5f0330f37f07c043d1 Mon Sep 17 00:00:00 2001 From: Mark Struchkov Date: Sat, 17 Aug 2019 23:27:50 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=D0=B8=D0=BA=D1=83=20=D0=BF=D0=BE=D0=BB=D1=83?= =?UTF-8?q?=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BD=D0=BE=D0=B2=D1=8B=D1=85?= =?UTF-8?q?=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../social/core/service/MessageService.java | 14 ++++++++++++-- .../service/impl/BoardCommentServiceImpl.java | 5 +++++ .../core/service/impl/MailServiceImpl.java | 16 ++++++++++++++++ 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/sadtech/social/core/service/MessageService.java b/src/main/java/org/sadtech/social/core/service/MessageService.java index a5ca63e..9ffaf9c 100644 --- a/src/main/java/org/sadtech/social/core/service/MessageService.java +++ b/src/main/java/org/sadtech/social/core/service/MessageService.java @@ -16,20 +16,30 @@ public interface MessageService { /** * Получить список сообщений за заданный временной интервал + * * @param timeFrom Начало интервала - * @param timeTo Конец интервала + * @param timeTo Конец интервала * @return Список сообщений */ List getByAddDateTime(LocalDateTime timeFrom, LocalDateTime timeTo); /** * Получить список ПОСЛЕДНИХ сообщений для каждого пользователя за заданных временной интервал + * * @param timeFrom Начало интервала - * @param timeTo Конец интервала + * @param timeTo Конец интервала * @return Список сообщений */ List getLastEventByCreateDateTime(LocalDateTime timeFrom, LocalDateTime timeTo); List getLastEventByAddDateTime(LocalDateTime timeFrom, LocalDateTime timeTo); + /** + * Возвращает новые сообщения пользователей по дате добавления в хранилище. + * + * @param now Текущяя дата и время + * @return Последнее сообщение пользователя от последней переданной даты now + */ + List getNewMessage(LocalDateTime now); + } diff --git a/src/main/java/org/sadtech/social/core/service/impl/BoardCommentServiceImpl.java b/src/main/java/org/sadtech/social/core/service/impl/BoardCommentServiceImpl.java index b004d96..d0f2fe5 100644 --- a/src/main/java/org/sadtech/social/core/service/impl/BoardCommentServiceImpl.java +++ b/src/main/java/org/sadtech/social/core/service/impl/BoardCommentServiceImpl.java @@ -42,6 +42,11 @@ public class BoardCommentServiceImpl implements BoardCommentService { return getBoardComments(mails); } + @Override + public List getNewMessage(LocalDateTime now) { + return null; + } + private List getBoardComments(List mails) { Set people = new HashSet<>(); List returnMails = new ArrayList<>(); diff --git a/src/main/java/org/sadtech/social/core/service/impl/MailServiceImpl.java b/src/main/java/org/sadtech/social/core/service/impl/MailServiceImpl.java index 561d6fd..3e9f35f 100644 --- a/src/main/java/org/sadtech/social/core/service/impl/MailServiceImpl.java +++ b/src/main/java/org/sadtech/social/core/service/impl/MailServiceImpl.java @@ -6,7 +6,9 @@ import org.sadtech.social.core.domain.content.Mail; import org.sadtech.social.core.repository.ContentRepository; import org.sadtech.social.core.service.MailService; +import java.time.Clock; import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; @@ -18,10 +20,13 @@ import java.util.Set; public class MailServiceImpl implements MailService { private final ContentRepository mailRepository; + private boolean newMessage = false; + private LocalDateTime oldDateTime = LocalDateTime.now(Clock.tickSeconds(ZoneId.systemDefault())); @Override public void add(Mail mail) { mailRepository.add(mail); + newMessage = true; log.info("Сообщение добавлено в репозиторий | {}", mail); } @@ -53,6 +58,17 @@ public class MailServiceImpl implements MailService { } } + @Override + public List getNewMessage(LocalDateTime now) { + List lastEventByAddDateTime = Collections.emptyList(); + if (newMessage) { + lastEventByAddDateTime = getLastEventByAddDateTime(oldDateTime, now); + newMessage = false; + } + oldDateTime = now; + return lastEventByAddDateTime; + } + private List getReturnMails(List mails) { Set people = new HashSet<>(); List returnMails = new ArrayList<>();