Изменил логику получения новых сообщений
This commit is contained in:
parent
a9f329271b
commit
cb0b82045d
@ -16,20 +16,30 @@ public interface MessageService<T extends Message> {
|
||||
|
||||
/**
|
||||
* Получить список сообщений за заданный временной интервал
|
||||
*
|
||||
* @param timeFrom Начало интервала
|
||||
* @param timeTo Конец интервала
|
||||
* @param timeTo Конец интервала
|
||||
* @return Список сообщений
|
||||
*/
|
||||
List<T> getByAddDateTime(LocalDateTime timeFrom, LocalDateTime timeTo);
|
||||
|
||||
/**
|
||||
* Получить список ПОСЛЕДНИХ сообщений для каждого пользователя за заданных временной интервал
|
||||
*
|
||||
* @param timeFrom Начало интервала
|
||||
* @param timeTo Конец интервала
|
||||
* @param timeTo Конец интервала
|
||||
* @return Список сообщений
|
||||
*/
|
||||
List<T> getLastEventByCreateDateTime(LocalDateTime timeFrom, LocalDateTime timeTo);
|
||||
|
||||
List<T> getLastEventByAddDateTime(LocalDateTime timeFrom, LocalDateTime timeTo);
|
||||
|
||||
/**
|
||||
* Возвращает новые сообщения пользователей по дате добавления в хранилище.
|
||||
*
|
||||
* @param now Текущяя дата и время
|
||||
* @return Последнее сообщение пользователя от последней переданной даты now
|
||||
*/
|
||||
List<T> getNewMessage(LocalDateTime now);
|
||||
|
||||
}
|
||||
|
@ -42,6 +42,11 @@ public class BoardCommentServiceImpl implements BoardCommentService {
|
||||
return getBoardComments(mails);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BoardComment> getNewMessage(LocalDateTime now) {
|
||||
return null;
|
||||
}
|
||||
|
||||
private List<BoardComment> getBoardComments(List<BoardComment> mails) {
|
||||
Set<Integer> people = new HashSet<>();
|
||||
List<BoardComment> returnMails = new ArrayList<>();
|
||||
|
@ -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<Mail> 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<Mail> getNewMessage(LocalDateTime now) {
|
||||
List<Mail> lastEventByAddDateTime = Collections.emptyList();
|
||||
if (newMessage) {
|
||||
lastEventByAddDateTime = getLastEventByAddDateTime(oldDateTime, now);
|
||||
newMessage = false;
|
||||
}
|
||||
oldDateTime = now;
|
||||
return lastEventByAddDateTime;
|
||||
}
|
||||
|
||||
private List<Mail> getReturnMails(List<Mail> mails) {
|
||||
Set<Integer> people = new HashSet<>();
|
||||
List<Mail> returnMails = new ArrayList<>();
|
||||
|
Loading…
Reference in New Issue
Block a user