Рабочая вресия

This commit is contained in:
Mark Struchkov 2020-02-02 18:03:09 +03:00
parent cb0b82045d
commit b33dcd79d2
24 changed files with 59 additions and 58 deletions

View File

@ -24,9 +24,9 @@
<properties> <properties>
<gson.ver>2.8.5</gson.ver> <gson.ver>2.8.5</gson.ver>
<slf4j.ver>1.7.26</slf4j.ver> <slf4j.ver>1.7.29</slf4j.ver>
<mail.ver>1.4</mail.ver> <mail.ver>1.4</mail.ver>
<lombok.ver>1.18.8</lombok.ver> <lombok.ver>1.18.10</lombok.ver>
<spring.data.jpa.ver>2.1.3.RELEASE</spring.data.jpa.ver> <spring.data.jpa.ver>2.1.3.RELEASE</spring.data.jpa.ver>
<javax.persistence.api.ver>2.2</javax.persistence.api.ver> <javax.persistence.api.ver>2.2</javax.persistence.api.ver>
<validation.api.ver>2.0.1.Final</validation.api.ver> <validation.api.ver>2.0.1.Final</validation.api.ver>

View File

@ -19,6 +19,6 @@ public class BasicEntity {
@Id @Id
@GeneratedValue @GeneratedValue
protected Integer id; protected Long id;
} }

View File

@ -14,6 +14,6 @@ import org.sadtech.social.core.utils.Description;
public abstract class Comment extends Message { public abstract class Comment extends Message {
@Description("Идентификатор контента, к которому ставлено сообщение") @Description("Идентификатор контента, к которому ставлено сообщение")
private Integer contentId; private Long contentId;
} }

View File

@ -22,6 +22,6 @@ public class EmptyMessage extends Message {
@Override @Override
public void setText(String text) { public void setText(String text) {
throw new AppBotException(0, "EmptyMessage no setText"); throw new AppBotException("EmptyMessage no setText");
} }
} }

View File

@ -40,7 +40,7 @@ public abstract class Message extends BasicEntity {
@NotNull @NotNull
@Column(name = "person_id") @Column(name = "person_id")
@Description("Идентификатор пользователя, отправившего сообщение") @Description("Идентификатор пользователя, отправившего сообщение")
private Integer personId; private Long personId;
@Column(name = "text") @Column(name = "text")
@Description("Текстовое сообщение") @Description("Текстовое сообщение")

View File

@ -40,7 +40,7 @@ public class Account {
@Column(name = "belongs_person_id") @Column(name = "belongs_person_id")
@Description("Идентификатор пользователя, которому выставлен счет") @Description("Идентификатор пользователя, которому выставлен счет")
private Integer belongsPersonId; private Long belongsPersonId;
@Column(name = "extinguished_person_id") @Column(name = "extinguished_person_id")
@Description("Идентификатор пользователя, который оплатил счет") @Description("Идентификатор пользователя, который оплатил счет")

View File

@ -6,7 +6,7 @@ package org.sadtech.social.core.exception;
* @author upagge [08/07/2019] * @author upagge [08/07/2019]
*/ */
public class AccessException extends AppBotException { public class AccessException extends AppBotException {
public AccessException(Integer code, String message) { public AccessException(String message) {
super(code, message); super(message);
} }
} }

View File

@ -11,12 +11,15 @@ public class AppBotException extends RuntimeException {
private static final String TYPE = "ERROR"; private static final String TYPE = "ERROR";
private final LocalDateTime timeError = LocalDateTime.now(); private final LocalDateTime timeError = LocalDateTime.now();
protected final Integer code; protected String description;
protected final String description;
public AppBotException(Integer code, String message) { public AppBotException(String message) {
this.description = message; super(message);
this.code = code; }
public AppBotException(String message, String description) {
super(message);
this.description = description;
} }
public String getType() { public String getType() {
@ -27,10 +30,6 @@ public class AppBotException extends RuntimeException {
return timeError; return timeError;
} }
public Integer getCode() {
return code;
}
public String getDescription() { public String getDescription() {
return description; return description;
} }

View File

@ -6,7 +6,7 @@ package org.sadtech.social.core.exception;
* @author upagge [11/07/2019] * @author upagge [11/07/2019]
*/ */
public class ConfigAppException extends AppBotException { public class ConfigAppException extends AppBotException {
public ConfigAppException(Integer code, String message) { public ConfigAppException(String message) {
super(code, message); super(message);
} }
} }

View File

@ -8,7 +8,7 @@ package org.sadtech.social.core.exception;
public class MailSendException extends AppBotException { public class MailSendException extends AppBotException {
public MailSendException() { public MailSendException() {
super(1, "Ошибка отправки сообщения"); super("Ошибка отправки сообщения");
} }
} }

View File

@ -6,7 +6,9 @@ package org.sadtech.social.core.exception;
* @author upagge [08/07/2019] * @author upagge [08/07/2019]
*/ */
public class NotFoundException extends AppBotException { public class NotFoundException extends AppBotException {
public NotFoundException(Integer code, String message) {
super(code, message); public NotFoundException(String message) {
super(message);
} }
} }

View File

@ -7,8 +7,8 @@ package org.sadtech.social.core.exception;
*/ */
public class PaymentException extends AppBotException { public class PaymentException extends AppBotException {
public PaymentException(Integer code, String message) { public PaymentException(String message) {
super(code, message); super(message);
} }
} }

View File

@ -8,7 +8,7 @@ package org.sadtech.social.core.exception;
public class TimerSettingException extends AppBotException { public class TimerSettingException extends AppBotException {
public TimerSettingException(String message) { public TimerSettingException(String message) {
super(54, message); super(message);
} }
} }

View File

@ -18,7 +18,7 @@ public interface ContentRepository<T extends Message> {
* @param content Объект сообщени * @param content Объект сообщени
* @return Идентификатор сообщения в хранилище * @return Идентификатор сообщения в хранилище
*/ */
Integer add(T content); T add(T content);
/** /**
* Получить все сообщения за определенный временной диапазон * Получить все сообщения за определенный временной диапазон

View File

@ -19,8 +19,8 @@ public class MailRepositoryJpaImpl implements ContentRepository<Mail> {
private final MailRepositoryJpa mailRepositoryJpa; private final MailRepositoryJpa mailRepositoryJpa;
@Override @Override
public Integer add(Mail content) { public Mail add(Mail content) {
return mailRepositoryJpa.saveAndFlush(content).getId(); return mailRepositoryJpa.saveAndFlush(content);
} }
@Override @Override

View File

@ -22,7 +22,7 @@ public class AccountRepositoryMap implements AccountRepository {
saveMap.put(id, account); saveMap.put(id, account);
return id++; return id++;
} else { } else {
throw new AccessException(312, "Счет " + account.getId() + " уже существует"); throw new AccessException("Счет " + account.getId() + " уже существует");
} }
} }
@ -33,13 +33,13 @@ public class AccountRepositoryMap implements AccountRepository {
account.setId(accountId); account.setId(accountId);
saveMap.put(accountId, account); saveMap.put(accountId, account);
} else { } else {
throw new NotFoundException(491, "Счет " + accountId + " не найден"); throw new NotFoundException("Счет " + accountId + " не найден");
} }
} }
@Override @Override
public Account findById(Integer accountId) { public Account findById(Integer accountId) {
return Optional.ofNullable(saveMap.get(accountId)).orElseThrow(() -> new PaymentException(43, "Счет " + accountId + " не найден")); return Optional.ofNullable(saveMap.get(accountId)).orElseThrow(() -> new PaymentException("Счет " + accountId + " не найден"));
} }
private boolean check(Integer id) { private boolean check(Integer id) {

View File

@ -11,14 +11,14 @@ import java.util.Map;
public class BoardCommentRepositoryMap implements ContentRepository<BoardComment> { public class BoardCommentRepositoryMap implements ContentRepository<BoardComment> {
private final Map<Integer, BoardComment> saveMap = new HashMap<>(); private final Map<Long, BoardComment> saveMap = new HashMap<>();
private Integer count = 0; private Long count = 0L;
@Override @Override
public Integer add(BoardComment comment) { public BoardComment add(BoardComment comment) {
comment.setId(count); comment.setId(count);
saveMap.put(count, comment); saveMap.put(count++, comment);
return count++; return comment;
} }
@Override @Override

View File

@ -17,13 +17,13 @@ import java.util.List;
public class MailRepositoryList implements ContentRepository<Mail> { public class MailRepositoryList implements ContentRepository<Mail> {
private final List<Mail> mails = new ArrayList<>(); private final List<Mail> mails = new ArrayList<>();
private Long count = 0L;
@Override @Override
public Integer add(Mail mail) { public Mail add(Mail mail) {
int id = mails.size(); mail.setId(count++);
mail.setId(id);
mails.add(mail); mails.add(mail);
return id; return mail;
} }
@Override @Override

View File

@ -35,11 +35,8 @@ public interface MessageService<T extends Message> {
List<T> getLastEventByAddDateTime(LocalDateTime timeFrom, LocalDateTime timeTo); List<T> getLastEventByAddDateTime(LocalDateTime timeFrom, LocalDateTime timeTo);
/** /**
* Возвращает новые сообщения пользователей по дате добавления в хранилище. * Возвращает новые сообщения от последнего запроса.
*
* @param now Текущяя дата и время
* @return Последнее сообщение пользователя от последней переданной даты now
*/ */
List<T> getNewMessage(LocalDateTime now); List<T> getNewMessage();
} }

View File

@ -29,10 +29,10 @@ public class AccountServiceImpl implements AccountService {
} else { } else {
account.setAccountStatus(AccountStatus.EXCEPTION); account.setAccountStatus(AccountStatus.EXCEPTION);
accountRepository.edit(accountId, account); accountRepository.edit(accountId, account);
throw new PaymentException(2, "Неверная сумма"); throw new PaymentException("Неверная сумма");
} }
} else { } else {
throw new PaymentException(3, "Счет уже оплачен"); throw new PaymentException("Счет уже оплачен");
} }
return true; return true;
} }

View File

@ -43,12 +43,12 @@ public class BoardCommentServiceImpl implements BoardCommentService {
} }
@Override @Override
public List<BoardComment> getNewMessage(LocalDateTime now) { public List<BoardComment> getNewMessage() {
return null; return null;
} }
private List<BoardComment> getBoardComments(List<BoardComment> mails) { private List<BoardComment> getBoardComments(List<BoardComment> mails) {
Set<Integer> people = new HashSet<>(); Set<Long> people = new HashSet<>();
List<BoardComment> returnMails = new ArrayList<>(); List<BoardComment> returnMails = new ArrayList<>();
for (int i = mails.size() - 1; i >= 0; i--) { for (int i = mails.size() - 1; i >= 0; i--) {
if (!people.contains(mails.get(i).getPersonId())) { if (!people.contains(mails.get(i).getPersonId())) {

View File

@ -59,18 +59,19 @@ public class MailServiceImpl implements MailService {
} }
@Override @Override
public List<Mail> getNewMessage(LocalDateTime now) { public List<Mail> getNewMessage() {
LocalDateTime newData = LocalDateTime.now(Clock.tickSeconds(ZoneId.systemDefault())).plusNanos(999999999);
List<Mail> lastEventByAddDateTime = Collections.emptyList(); List<Mail> lastEventByAddDateTime = Collections.emptyList();
if (newMessage) { if (newMessage) {
lastEventByAddDateTime = getLastEventByAddDateTime(oldDateTime, now); lastEventByAddDateTime = getLastEventByAddDateTime(oldDateTime, newData);
newMessage = false; newMessage = false;
oldDateTime = newData;
} }
oldDateTime = now;
return lastEventByAddDateTime; return lastEventByAddDateTime;
} }
private List<Mail> getReturnMails(List<Mail> mails) { private List<Mail> getReturnMails(List<Mail> mails) {
Set<Integer> people = new HashSet<>(); Set<Long> people = new HashSet<>();
List<Mail> returnMails = new ArrayList<>(); List<Mail> returnMails = new ArrayList<>();
for (int i = mails.size() - 1; i >= 0; i--) { for (int i = mails.size() - 1; i >= 0; i--) {
if (!people.contains(mails.get(i).getPersonId())) { if (!people.contains(mails.get(i).getPersonId())) {

View File

@ -1,5 +1,6 @@
package org.sadtech.social.core.service.sender; package org.sadtech.social.core.service.sender;
import lombok.NonNull;
import org.sadtech.social.core.domain.BoxAnswer; import org.sadtech.social.core.domain.BoxAnswer;
/** /**
@ -15,9 +16,9 @@ public interface Sending {
* @param personId Идентификатор пользователя * @param personId Идентификатор пользователя
* @param boxAnswer Объект с данными, которые необходимо отправить * @param boxAnswer Объект с данными, которые необходимо отправить
*/ */
void send(Integer personId, BoxAnswer boxAnswer); void send(@NonNull Long personId, @NonNull BoxAnswer boxAnswer);
void send(Integer contentId, Integer personId, BoxAnswer boxAnswer); void send(@NonNull Long contentId, @NonNull Long personId, @NonNull BoxAnswer boxAnswer);
/** /**
* Возвращает тип объекта отправляющего ответ пользователя. В зависимости от типа ответ будет отправлен с помощью * Возвращает тип объекта отправляющего ответ пользователя. В зависимости от типа ответ будет отправлен с помощью

View File

@ -1,5 +1,6 @@
package org.sadtech.social.core.service.sender.email; package org.sadtech.social.core.service.sender.email;
import lombok.NonNull;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.sadtech.social.core.domain.BoxAnswer; import org.sadtech.social.core.domain.BoxAnswer;
@ -23,7 +24,7 @@ public class EmailSending implements Sending {
private final EmailConfig emailConfig; private final EmailConfig emailConfig;
@Override @Override
public void send(Integer personId, BoxAnswer boxAnswer) { public void send(@NonNull Long personId, @NonNull BoxAnswer boxAnswer) {
Session session = Session.getDefaultInstance(emailConfig.getProps(), new Authenticator() { Session session = Session.getDefaultInstance(emailConfig.getProps(), new Authenticator() {
@Override @Override
protected PasswordAuthentication getPasswordAuthentication() { protected PasswordAuthentication getPasswordAuthentication() {
@ -44,7 +45,7 @@ public class EmailSending implements Sending {
} }
@Override @Override
public void send(Integer contentId, Integer personId, BoxAnswer boxAnswer) { public void send(@NonNull Long contentId, @NonNull Long personId, @NonNull BoxAnswer boxAnswer) {
throw new MailSendException(); throw new MailSendException();
} }