Изменил логику получения новых сообщений
This commit is contained in:
parent
a9f329271b
commit
cb0b82045d
@ -16,20 +16,30 @@ public interface MessageService<T extends Message> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Получить список сообщений за заданный временной интервал
|
* Получить список сообщений за заданный временной интервал
|
||||||
|
*
|
||||||
* @param timeFrom Начало интервала
|
* @param timeFrom Начало интервала
|
||||||
* @param timeTo Конец интервала
|
* @param timeTo Конец интервала
|
||||||
* @return Список сообщений
|
* @return Список сообщений
|
||||||
*/
|
*/
|
||||||
List<T> getByAddDateTime(LocalDateTime timeFrom, LocalDateTime timeTo);
|
List<T> getByAddDateTime(LocalDateTime timeFrom, LocalDateTime timeTo);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Получить список ПОСЛЕДНИХ сообщений для каждого пользователя за заданных временной интервал
|
* Получить список ПОСЛЕДНИХ сообщений для каждого пользователя за заданных временной интервал
|
||||||
|
*
|
||||||
* @param timeFrom Начало интервала
|
* @param timeFrom Начало интервала
|
||||||
* @param timeTo Конец интервала
|
* @param timeTo Конец интервала
|
||||||
* @return Список сообщений
|
* @return Список сообщений
|
||||||
*/
|
*/
|
||||||
List<T> getLastEventByCreateDateTime(LocalDateTime timeFrom, LocalDateTime timeTo);
|
List<T> getLastEventByCreateDateTime(LocalDateTime timeFrom, LocalDateTime timeTo);
|
||||||
|
|
||||||
List<T> getLastEventByAddDateTime(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);
|
return getBoardComments(mails);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BoardComment> getNewMessage(LocalDateTime now) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
private List<BoardComment> getBoardComments(List<BoardComment> mails) {
|
private List<BoardComment> getBoardComments(List<BoardComment> mails) {
|
||||||
Set<Integer> people = new HashSet<>();
|
Set<Integer> people = new HashSet<>();
|
||||||
List<BoardComment> returnMails = new ArrayList<>();
|
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.repository.ContentRepository;
|
||||||
import org.sadtech.social.core.service.MailService;
|
import org.sadtech.social.core.service.MailService;
|
||||||
|
|
||||||
|
import java.time.Clock;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.ZoneId;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@ -18,10 +20,13 @@ import java.util.Set;
|
|||||||
public class MailServiceImpl implements MailService {
|
public class MailServiceImpl implements MailService {
|
||||||
|
|
||||||
private final ContentRepository<Mail> mailRepository;
|
private final ContentRepository<Mail> mailRepository;
|
||||||
|
private boolean newMessage = false;
|
||||||
|
private LocalDateTime oldDateTime = LocalDateTime.now(Clock.tickSeconds(ZoneId.systemDefault()));
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void add(Mail mail) {
|
public void add(Mail mail) {
|
||||||
mailRepository.add(mail);
|
mailRepository.add(mail);
|
||||||
|
newMessage = true;
|
||||||
log.info("Сообщение добавлено в репозиторий | {}", mail);
|
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) {
|
private List<Mail> getReturnMails(List<Mail> mails) {
|
||||||
Set<Integer> people = new HashSet<>();
|
Set<Integer> people = new HashSet<>();
|
||||||
List<Mail> returnMails = new ArrayList<>();
|
List<Mail> returnMails = new ArrayList<>();
|
||||||
|
Loading…
Reference in New Issue
Block a user