Рабочая вресия
This commit is contained in:
parent
cb0b82045d
commit
b33dcd79d2
4
pom.xml
4
pom.xml
@ -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>
|
||||||
|
@ -19,6 +19,6 @@ public class BasicEntity {
|
|||||||
|
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue
|
@GeneratedValue
|
||||||
protected Integer id;
|
protected Long id;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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("Текстовое сообщение")
|
||||||
|
@ -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("Идентификатор пользователя, который оплатил счет")
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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("Ошибка отправки сообщения");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ public interface ContentRepository<T extends Message> {
|
|||||||
* @param content Объект сообщени
|
* @param content Объект сообщени
|
||||||
* @return Идентификатор сообщения в хранилище
|
* @return Идентификатор сообщения в хранилище
|
||||||
*/
|
*/
|
||||||
Integer add(T content);
|
T add(T content);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Получить все сообщения за определенный временной диапазон
|
* Получить все сообщения за определенный временной диапазон
|
||||||
|
@ -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
|
||||||
|
@ -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) {
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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())) {
|
||||||
|
@ -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())) {
|
||||||
|
@ -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);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Возвращает тип объекта отправляющего ответ пользователя. В зависимости от типа ответ будет отправлен с помощью
|
* Возвращает тип объекта отправляющего ответ пользователя. В зависимости от типа ответ будет отправлен с помощью
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user