diff --git a/pom.xml b/pom.xml
index 60d7819..e00f490 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
org.sadtech.bot
bot-core
- 0.6.1-RELEASE
+ 0.6.2-RELEASE
jar
@@ -57,6 +57,7 @@
uPagge
+ SADTECH
Struchkov Mark
upagge@mail.ru
diff --git a/src/main/java/org/sadtech/bot/core/domain/BoxAnswer.java b/src/main/java/org/sadtech/bot/core/domain/BoxAnswer.java
index 1345258..1cc6246 100644
--- a/src/main/java/org/sadtech/bot/core/domain/BoxAnswer.java
+++ b/src/main/java/org/sadtech/bot/core/domain/BoxAnswer.java
@@ -38,10 +38,6 @@ public class BoxAnswer {
return keyboard;
}
- public void setKeyboard(KeyBoard keyboard) {
- this.keyboard = keyboard;
- }
-
public GeoCoordinate getCoordinates() {
return coordinates;
}
@@ -50,10 +46,6 @@ public class BoxAnswer {
return stickerId;
}
- public void setStickerId(Integer stickerId) {
- this.stickerId = stickerId;
- }
-
public BoxAnswer prototype() {
return new BoxAnswer(this);
}
diff --git a/src/main/java/org/sadtech/bot/core/domain/content/BoardComment.java b/src/main/java/org/sadtech/bot/core/domain/content/BoardComment.java
new file mode 100644
index 0000000..9ca069b
--- /dev/null
+++ b/src/main/java/org/sadtech/bot/core/domain/content/BoardComment.java
@@ -0,0 +1,9 @@
+package org.sadtech.bot.core.domain.content;
+
+public class BoardComment extends Comment {
+
+ public BoardComment() {
+ type = ContentType.BOARD_COMMENT;
+ }
+
+}
diff --git a/src/main/java/org/sadtech/bot/core/domain/content/Comment.java b/src/main/java/org/sadtech/bot/core/domain/content/Comment.java
new file mode 100644
index 0000000..ca32e31
--- /dev/null
+++ b/src/main/java/org/sadtech/bot/core/domain/content/Comment.java
@@ -0,0 +1,30 @@
+package org.sadtech.bot.core.domain.content;
+
+import java.util.Objects;
+
+public abstract class Comment extends Message {
+
+ private Integer contentId;
+
+ public Integer getContentId() {
+ return contentId;
+ }
+
+ public void setContentId(Integer contentId) {
+ this.contentId = contentId;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof Comment)) return false;
+ if (!super.equals(o)) return false;
+ Comment that = (Comment) o;
+ return Objects.equals(contentId, that.contentId);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(super.hashCode(), contentId);
+ }
+}
diff --git a/src/main/java/org/sadtech/bot/core/domain/content/Content.java b/src/main/java/org/sadtech/bot/core/domain/content/Content.java
deleted file mode 100644
index 5e0c5b3..0000000
--- a/src/main/java/org/sadtech/bot/core/domain/content/Content.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package org.sadtech.bot.core.domain.content;
-
-import java.util.Objects;
-
-public abstract class Content {
-
- private Integer personId;
- private String message;
-
- public Content() {
-
- }
-
- public Content(Content source) {
- this.personId = source.getPersonId();
- this.message = source.getMessage();
- }
-
- public Integer getPersonId() {
- return personId;
- }
-
- public void setPersonId(Integer personId) {
- this.personId = personId;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (!(o instanceof Content)) return false;
- Content content = (Content) o;
- return Objects.equals(personId, content.personId) &&
- Objects.equals(message, content.message);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(personId, message);
- }
-}
diff --git a/src/main/java/org/sadtech/bot/core/domain/content/ContentType.java b/src/main/java/org/sadtech/bot/core/domain/content/ContentType.java
new file mode 100644
index 0000000..89e1d4e
--- /dev/null
+++ b/src/main/java/org/sadtech/bot/core/domain/content/ContentType.java
@@ -0,0 +1,7 @@
+package org.sadtech.bot.core.domain.content;
+
+public enum ContentType {
+
+ MAIL, BOARD_COMMENT, EMPTY
+
+}
diff --git a/src/main/java/org/sadtech/bot/core/domain/content/EmptyContent.java b/src/main/java/org/sadtech/bot/core/domain/content/EmptyMessage.java
similarity index 58%
rename from src/main/java/org/sadtech/bot/core/domain/content/EmptyContent.java
rename to src/main/java/org/sadtech/bot/core/domain/content/EmptyMessage.java
index 2400a1e..16498c3 100644
--- a/src/main/java/org/sadtech/bot/core/domain/content/EmptyContent.java
+++ b/src/main/java/org/sadtech/bot/core/domain/content/EmptyMessage.java
@@ -2,7 +2,11 @@ package org.sadtech.bot.core.domain.content;
import org.sadtech.bot.core.exception.AppBotException;
-public class EmptyContent extends Content {
+public class EmptyMessage extends Message {
+
+ public EmptyMessage() {
+ type = ContentType.EMPTY;
+ }
@Override
public String getMessage() {
@@ -11,6 +15,6 @@ public class EmptyContent extends Content {
@Override
public void setMessage(String message) {
- throw new AppBotException(0, "EmptyContent no setMessage");
+ throw new AppBotException(0, "EmptyMessage no setMessage");
}
}
diff --git a/src/main/java/org/sadtech/bot/core/domain/content/Mail.java b/src/main/java/org/sadtech/bot/core/domain/content/Mail.java
index 0e4e720..f09e4a3 100644
--- a/src/main/java/org/sadtech/bot/core/domain/content/Mail.java
+++ b/src/main/java/org/sadtech/bot/core/domain/content/Mail.java
@@ -2,40 +2,20 @@ package org.sadtech.bot.core.domain.content;
import org.sadtech.bot.core.domain.content.attachment.Attachment;
-import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
-public class Mail extends Content {
+public class Mail extends Message {
- private Integer id;
- private LocalDateTime date;
private List attachments;
public Mail() {
-
+ type = ContentType.MAIL;
}
public Mail(Mail source) {
super(source);
- this.id = source.getId();
- this.date = source.getDate();
- }
-
- public Integer getId() {
- return id;
- }
-
- public void setId(Integer id) {
- this.id = id;
- }
-
- public LocalDateTime getDate() {
- return date;
- }
-
- public void setDate(LocalDateTime date) {
- this.date = date;
+ this.attachments = source.getAttachments();
}
@@ -51,28 +31,26 @@ public class Mail extends Content {
this.attachments = attachments;
}
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Mail)) return false;
if (!super.equals(o)) return false;
Mail mail = (Mail) o;
- return Objects.equals(id, mail.id) &&
- Objects.equals(date, mail.date) &&
- Objects.equals(attachments, mail.attachments);
+ return Objects.equals(attachments, mail.attachments);
}
@Override
public int hashCode() {
- return Objects.hash(super.hashCode(), id, date, attachments);
+ return Objects.hash(super.hashCode(), attachments);
}
@Override
public String toString() {
return "Mail{" +
- "id=" + id +
- ", date=" + date +
- ", attachments=" + attachments +
+ "attachments=" + attachments +
+ ", type=" + type +
'}';
}
}
diff --git a/src/main/java/org/sadtech/bot/core/domain/content/Message.java b/src/main/java/org/sadtech/bot/core/domain/content/Message.java
new file mode 100644
index 0000000..ecaf204
--- /dev/null
+++ b/src/main/java/org/sadtech/bot/core/domain/content/Message.java
@@ -0,0 +1,93 @@
+package org.sadtech.bot.core.domain.content;
+
+import java.time.LocalDateTime;
+import java.util.Objects;
+
+public abstract class Message {
+
+ private Integer id;
+ protected ContentType type;
+ private LocalDateTime createDate;
+ private Integer personId;
+ private String message;
+
+ public Message() {
+
+ }
+
+ public Message(Message source) {
+ this.personId = source.getPersonId();
+ this.message = source.getMessage();
+ this.createDate = source.getCreateDate();
+ this.id = source.getPersonId();
+ this.type = source.getType();
+ }
+
+ public Integer getPersonId() {
+ return personId;
+ }
+
+ public void setPersonId(Integer personId) {
+ this.personId = personId;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public LocalDateTime getCreateDate() {
+ return createDate;
+ }
+
+ public void setCreateDate(LocalDateTime createDate) {
+ this.createDate = createDate;
+ }
+
+ public ContentType getType() {
+ return type;
+ }
+
+ public void setType(ContentType type) {
+ this.type = type;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof Message)) return false;
+ Message message = (Message) o;
+ return Objects.equals(id, message.id) &&
+ type == message.type &&
+ Objects.equals(createDate, message.createDate) &&
+ Objects.equals(personId, message.personId) &&
+ Objects.equals(this.message, message.message);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, type, createDate, personId, message);
+ }
+
+ @Override
+ public String toString() {
+ return "Message{" +
+ "id=" + id +
+ ", type=" + type +
+ ", createDate=" + createDate +
+ ", personId=" + personId +
+ ", message='" + message + '\'' +
+ '}';
+ }
+}
diff --git a/src/main/java/org/sadtech/bot/core/domain/keyboard/ButtonType.java b/src/main/java/org/sadtech/bot/core/domain/keyboard/ButtonType.java
new file mode 100644
index 0000000..5a253e4
--- /dev/null
+++ b/src/main/java/org/sadtech/bot/core/domain/keyboard/ButtonType.java
@@ -0,0 +1,7 @@
+package org.sadtech.bot.core.domain.keyboard;
+
+public enum ButtonType {
+
+ TEXT, ACCOUNT
+
+}
diff --git a/src/main/java/org/sadtech/bot/core/domain/keyboard/KeyBoardButton.java b/src/main/java/org/sadtech/bot/core/domain/keyboard/KeyBoardButton.java
index e5c0d80..b783a13 100644
--- a/src/main/java/org/sadtech/bot/core/domain/keyboard/KeyBoardButton.java
+++ b/src/main/java/org/sadtech/bot/core/domain/keyboard/KeyBoardButton.java
@@ -2,80 +2,38 @@ package org.sadtech.bot.core.domain.keyboard;
import java.util.Objects;
-public class KeyBoardButton {
+public abstract class KeyBoardButton {
- private String payload;
- private String label;
- private ButtonColor color = ButtonColor.DEFAULT;
-
- private KeyBoardButton() {
-
- }
+ protected String payload;
+ protected ButtonType type = ButtonType.TEXT;
public String getPayload() {
return payload;
}
- public String getLabel() {
- return label;
+ public void setPayload(String payload) {
+ this.payload = payload;
}
- public ButtonColor getColor() {
- return color;
+ public ButtonType getType() {
+ return type;
}
- public static Builder builder() {
- return new KeyBoardButton().new Builder();
- }
-
- public class Builder {
-
- private Builder() {
-
- }
-
- public Builder color(ButtonColor color) {
- KeyBoardButton.this.color = color;
- return this;
- }
-
- public Builder label(String label) {
- KeyBoardButton.this.label = label;
- return this;
- }
-
- public Builder payload(String payload) {
- KeyBoardButton.this.payload = payload;
- return this;
- }
-
- public KeyBoardButton build() {
- return KeyBoardButton.this;
- }
-
+ public void setType(ButtonType type) {
+ this.type = type;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof KeyBoardButton)) return false;
- KeyBoardButton button = (KeyBoardButton) o;
- return Objects.equals(payload, button.payload) &&
- Objects.equals(label, button.label) &&
- color == button.color;
+ KeyBoardButton that = (KeyBoardButton) o;
+ return Objects.equals(payload, that.payload) &&
+ type == that.type;
}
@Override
public int hashCode() {
- return Objects.hash(payload, label, color);
- }
-
- @Override
- public String toString() {
- return "KeyBoardButton{" +
- "payload='" + payload + '\'' +
- ", label='" + label + '\'' +
- ", color=" + color +
- '}';
+ return Objects.hash(payload, type);
}
}
diff --git a/src/main/java/org/sadtech/bot/core/domain/keyboard/button/KeyBoardButtonAccount.java b/src/main/java/org/sadtech/bot/core/domain/keyboard/button/KeyBoardButtonAccount.java
new file mode 100644
index 0000000..49fce62
--- /dev/null
+++ b/src/main/java/org/sadtech/bot/core/domain/keyboard/button/KeyBoardButtonAccount.java
@@ -0,0 +1,75 @@
+package org.sadtech.bot.core.domain.keyboard.button;
+
+import org.sadtech.bot.core.domain.keyboard.ButtonType;
+import org.sadtech.bot.core.domain.keyboard.KeyBoardButton;
+
+import java.util.Objects;
+
+public class KeyBoardButtonAccount extends KeyBoardButton {
+
+ private Integer amount;
+ private Integer accountId;
+ private String description;
+
+ private KeyBoardButtonAccount() {
+ type = ButtonType.ACCOUNT;
+ }
+
+ public Integer getAmount() {
+ return amount;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public Integer getAccountId() {
+ return accountId;
+ }
+
+ public static Builder builder() {
+ return new KeyBoardButtonAccount().new Builder();
+ }
+
+ public class Builder {
+ private Builder() {
+
+ }
+
+ public Builder amount(Integer amount) {
+ KeyBoardButtonAccount.this.amount = amount;
+ return this;
+ }
+
+ public Builder description(String description) {
+ KeyBoardButtonAccount.this.description = description;
+ return this;
+ }
+
+ public Builder accountId(Integer accountId) {
+ KeyBoardButtonAccount.this.accountId = accountId;
+ return this;
+ }
+
+
+ public KeyBoardButtonAccount build() {
+ return KeyBoardButtonAccount.this;
+ }
+
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof KeyBoardButtonAccount)) return false;
+ if (!super.equals(o)) return false;
+ KeyBoardButtonAccount that = (KeyBoardButtonAccount) o;
+ return Objects.equals(amount, that.amount) &&
+ Objects.equals(description, that.description);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(super.hashCode(), amount, description);
+ }
+}
diff --git a/src/main/java/org/sadtech/bot/core/domain/keyboard/button/KeyBoardButtonText.java b/src/main/java/org/sadtech/bot/core/domain/keyboard/button/KeyBoardButtonText.java
new file mode 100644
index 0000000..ae00f2c
--- /dev/null
+++ b/src/main/java/org/sadtech/bot/core/domain/keyboard/button/KeyBoardButtonText.java
@@ -0,0 +1,78 @@
+package org.sadtech.bot.core.domain.keyboard.button;
+
+import org.sadtech.bot.core.domain.keyboard.ButtonColor;
+import org.sadtech.bot.core.domain.keyboard.ButtonType;
+import org.sadtech.bot.core.domain.keyboard.KeyBoardButton;
+
+import java.util.Objects;
+
+public class KeyBoardButtonText extends KeyBoardButton {
+
+ private String label;
+ private ButtonColor color = ButtonColor.DEFAULT;
+
+ public KeyBoardButtonText() {
+ type = ButtonType.TEXT;
+ }
+
+ public ButtonColor getColor() {
+ return color;
+ }
+
+ public String getLabel() {
+ return label;
+ }
+
+ public static Builder builder() {
+ return new KeyBoardButtonText().new Builder();
+ }
+
+ public class Builder {
+ private Builder() {
+
+ }
+
+ public Builder label(String label) {
+ KeyBoardButtonText.this.label = label;
+ return this;
+ }
+
+ public Builder color(ButtonColor color) {
+ KeyBoardButtonText.this.color = color;
+ return this;
+ }
+
+ public Builder payload(String payload) {
+ KeyBoardButtonText.this.payload = payload;
+ return this;
+ }
+
+ public KeyBoardButtonText build() {
+ return KeyBoardButtonText.this;
+ }
+
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof KeyBoardButtonText)) return false;
+ if (!super.equals(o)) return false;
+ KeyBoardButtonText that = (KeyBoardButtonText) o;
+ return Objects.equals(label, that.label) &&
+ color == that.color;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(super.hashCode(), label, color);
+ }
+
+ @Override
+ public String toString() {
+ return "KeyBoardButtonText{" +
+ "label='" + label + '\'' +
+ ", color=" + color +
+ '}';
+ }
+}
diff --git a/src/main/java/org/sadtech/bot/core/domain/money/Account.java b/src/main/java/org/sadtech/bot/core/domain/money/Account.java
index 836f802..bb7c996 100644
--- a/src/main/java/org/sadtech/bot/core/domain/money/Account.java
+++ b/src/main/java/org/sadtech/bot/core/domain/money/Account.java
@@ -5,7 +5,7 @@ import java.util.Objects;
public class Account {
private Integer id;
- private Double totalSum;
+ private Integer totalSum;
private Integer belongsPersonId;
private Integer extinguishedPersonId;
private String description;
@@ -19,11 +19,11 @@ public class Account {
this.id = id;
}
- public Double getTotalSum() {
+ public Integer getTotalSum() {
return totalSum;
}
- public void setTotalSum(Double totalSum) {
+ public void setTotalSum(Integer totalSum) {
this.totalSum = totalSum;
}
diff --git a/src/main/java/org/sadtech/bot/core/exception/TimerSettingExceprion.java b/src/main/java/org/sadtech/bot/core/exception/TimerSettingExceprion.java
new file mode 100644
index 0000000..0691440
--- /dev/null
+++ b/src/main/java/org/sadtech/bot/core/exception/TimerSettingExceprion.java
@@ -0,0 +1,9 @@
+package org.sadtech.bot.core.exception;
+
+public class TimerSettingExceprion extends AppBotException {
+
+ public TimerSettingExceprion(String message) {
+ super(54, message);
+ }
+
+}
diff --git a/src/main/java/org/sadtech/bot/core/repository/ContentRepository.java b/src/main/java/org/sadtech/bot/core/repository/ContentRepository.java
new file mode 100644
index 0000000..bc78dfb
--- /dev/null
+++ b/src/main/java/org/sadtech/bot/core/repository/ContentRepository.java
@@ -0,0 +1,14 @@
+package org.sadtech.bot.core.repository;
+
+import org.sadtech.bot.core.domain.content.Message;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+public interface ContentRepository {
+
+ Integer add(T content);
+
+ List findByTime(LocalDateTime timeFrom, LocalDateTime timeTo);
+
+}
diff --git a/src/main/java/org/sadtech/bot/core/repository/MailRepository.java b/src/main/java/org/sadtech/bot/core/repository/MailRepository.java
deleted file mode 100644
index f68576b..0000000
--- a/src/main/java/org/sadtech/bot/core/repository/MailRepository.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.sadtech.bot.core.repository;
-
-import org.sadtech.bot.core.domain.content.Mail;
-
-import java.time.LocalDateTime;
-import java.util.List;
-
-public interface MailRepository {
-
- void add(Mail mail);
-
- List getMailByTime(LocalDateTime timeFrom, LocalDateTime timeTo);
-
-}
diff --git a/src/main/java/org/sadtech/bot/core/repository/impl/AccountRepositoryMap.java b/src/main/java/org/sadtech/bot/core/repository/impl/AccountRepositoryMap.java
index a5fa3de..abc2fae 100644
--- a/src/main/java/org/sadtech/bot/core/repository/impl/AccountRepositoryMap.java
+++ b/src/main/java/org/sadtech/bot/core/repository/impl/AccountRepositoryMap.java
@@ -43,6 +43,6 @@ public class AccountRepositoryMap implements AccountRepository {
}
private boolean check(Integer id) {
- return saveMap.containsKey(id);
+ return !saveMap.containsKey(id);
}
}
diff --git a/src/main/java/org/sadtech/bot/core/repository/impl/BoardCommentRepositoryMap.java b/src/main/java/org/sadtech/bot/core/repository/impl/BoardCommentRepositoryMap.java
new file mode 100644
index 0000000..f3e443c
--- /dev/null
+++ b/src/main/java/org/sadtech/bot/core/repository/impl/BoardCommentRepositoryMap.java
@@ -0,0 +1,36 @@
+package org.sadtech.bot.core.repository.impl;
+
+import org.sadtech.bot.core.domain.content.BoardComment;
+import org.sadtech.bot.core.repository.ContentRepository;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class BoardCommentRepositoryMap implements ContentRepository {
+
+ private final Map saveMap = new HashMap<>();
+ private Integer count = 0;
+
+ @Override
+ public Integer add(BoardComment comment) {
+ comment.setId(count);
+ saveMap.put(count, comment);
+ return count++;
+ }
+
+ @Override
+ public List findByTime(LocalDateTime timeFrom, LocalDateTime timeTo) {
+ ArrayList rezultMails = new ArrayList<>();
+ for (int i = saveMap.size() - 1; i >= 0; i--) {
+ if (!(saveMap.get(i).getCreateDate().isBefore(timeFrom) || saveMap.get(i).getCreateDate().isAfter(timeTo)) && saveMap.get(i).getCreateDate().equals(timeFrom)) {
+ rezultMails.add(this.saveMap.get(i));
+ } else if (saveMap.get(i).getCreateDate().isBefore(timeFrom)) {
+ break;
+ }
+ }
+ return rezultMails;
+ }
+}
diff --git a/src/main/java/org/sadtech/bot/core/repository/impl/MailRepositoryList.java b/src/main/java/org/sadtech/bot/core/repository/impl/MailRepositoryList.java
index d0247d4..480aa83 100644
--- a/src/main/java/org/sadtech/bot/core/repository/impl/MailRepositoryList.java
+++ b/src/main/java/org/sadtech/bot/core/repository/impl/MailRepositoryList.java
@@ -1,40 +1,30 @@
package org.sadtech.bot.core.repository.impl;
import org.sadtech.bot.core.domain.content.Mail;
-import org.sadtech.bot.core.repository.EventRepository;
-import org.sadtech.bot.core.repository.MailRepository;
+import org.sadtech.bot.core.repository.ContentRepository;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
-import java.util.Queue;
-import java.util.concurrent.ConcurrentLinkedQueue;
-public class MailRepositoryList implements EventRepository, MailRepository {
+public class MailRepositoryList implements ContentRepository {
private final List mails = new ArrayList<>();
@Override
- public void add(Mail mail) {
+ public Integer add(Mail mail) {
mails.add(mail);
+ return mails.size() - 1;
}
+
@Override
- public void cleanAll() {
- mails.clear();
- }
-
- @Override
- public Queue getEventQueue() {
- return new ConcurrentLinkedQueue<>(mails);
- }
-
- public List getMailByTime(LocalDateTime timeFrom, LocalDateTime timeTo) {
+ public List findByTime(LocalDateTime timeFrom, LocalDateTime timeTo) {
ArrayList rezultMails = new ArrayList<>();
for (int i = mails.size() - 1; i >= 0; i--) {
- if (!(mails.get(i).getDate().isBefore(timeFrom) || mails.get(i).getDate().isAfter(timeTo)) && mails.get(i).getDate().equals(timeFrom)) {
+ if (!(mails.get(i).getCreateDate().isBefore(timeFrom) || mails.get(i).getCreateDate().isAfter(timeTo)) && mails.get(i).getCreateDate().equals(timeFrom)) {
rezultMails.add(this.mails.get(i));
- } else if (mails.get(i).getDate().isBefore(timeFrom)) {
+ } else if (mails.get(i).getCreateDate().isBefore(timeFrom)) {
break;
}
}
diff --git a/src/main/java/org/sadtech/bot/core/service/AccountService.java b/src/main/java/org/sadtech/bot/core/service/AccountService.java
index 4a1bae7..2c0cd62 100644
--- a/src/main/java/org/sadtech/bot/core/service/AccountService.java
+++ b/src/main/java/org/sadtech/bot/core/service/AccountService.java
@@ -6,7 +6,7 @@ public interface AccountService {
Integer add(Account account);
- Boolean pay(Integer accountId, Integer extinguishedPersonId, Double sum);
+ Boolean pay(Integer accountId, Integer extinguishedPersonId, Integer sum);
Boolean paymentVerification(Integer accountId);
diff --git a/src/main/java/org/sadtech/bot/core/service/BoardCommentService.java b/src/main/java/org/sadtech/bot/core/service/BoardCommentService.java
new file mode 100644
index 0000000..7383614
--- /dev/null
+++ b/src/main/java/org/sadtech/bot/core/service/BoardCommentService.java
@@ -0,0 +1,6 @@
+package org.sadtech.bot.core.service;
+
+import org.sadtech.bot.core.domain.content.BoardComment;
+
+public interface BoardCommentService extends ContentService {
+}
diff --git a/src/main/java/org/sadtech/bot/core/service/ContentService.java b/src/main/java/org/sadtech/bot/core/service/ContentService.java
new file mode 100644
index 0000000..6fdf9e7
--- /dev/null
+++ b/src/main/java/org/sadtech/bot/core/service/ContentService.java
@@ -0,0 +1,16 @@
+package org.sadtech.bot.core.service;
+
+import org.sadtech.bot.core.domain.content.Message;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+public interface ContentService {
+
+ void add(T event);
+
+ List getByTime(LocalDateTime timeFrom, LocalDateTime timeTo);
+
+ List getLastEventByTime(LocalDateTime timeFrom, LocalDateTime timeTo);
+
+}
diff --git a/src/main/java/org/sadtech/bot/core/service/EventService.java b/src/main/java/org/sadtech/bot/core/service/EventService.java
deleted file mode 100644
index 9527c4e..0000000
--- a/src/main/java/org/sadtech/bot/core/service/EventService.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.sadtech.bot.core.service;
-
-import org.sadtech.bot.core.domain.content.Content;
-
-import java.time.LocalDateTime;
-import java.util.List;
-
-public interface EventService {
-
- void add(T event);
-
- List getEvent(LocalDateTime timeFrom, LocalDateTime timeTo);
-
- List getFirstEventByTime(LocalDateTime timeFrom, LocalDateTime timeTo);
-
- List getLastEventByTime(LocalDateTime timeFrom, LocalDateTime timeTo);
-
-}
diff --git a/src/main/java/org/sadtech/bot/core/service/Filter.java b/src/main/java/org/sadtech/bot/core/service/Filter.java
index 4da035f..9662f2e 100644
--- a/src/main/java/org/sadtech/bot/core/service/Filter.java
+++ b/src/main/java/org/sadtech/bot/core/service/Filter.java
@@ -1,9 +1,9 @@
package org.sadtech.bot.core.service;
-import org.sadtech.bot.core.domain.content.Content;
+import org.sadtech.bot.core.domain.content.Message;
@FunctionalInterface
-public interface Filter {
+public interface Filter {
void processing(T content);
diff --git a/src/main/java/org/sadtech/bot/core/service/MailService.java b/src/main/java/org/sadtech/bot/core/service/MailService.java
index c461d2f..4a4fbf1 100644
--- a/src/main/java/org/sadtech/bot/core/service/MailService.java
+++ b/src/main/java/org/sadtech/bot/core/service/MailService.java
@@ -2,6 +2,6 @@ package org.sadtech.bot.core.service;
import org.sadtech.bot.core.domain.content.Mail;
-public interface MailService extends EventService {
+public interface MailService extends ContentService {
}
diff --git a/src/main/java/org/sadtech/bot/core/service/impl/AccountServiceImpl.java b/src/main/java/org/sadtech/bot/core/service/impl/AccountServiceImpl.java
index e13d53c..bc9a39a 100644
--- a/src/main/java/org/sadtech/bot/core/service/impl/AccountServiceImpl.java
+++ b/src/main/java/org/sadtech/bot/core/service/impl/AccountServiceImpl.java
@@ -21,7 +21,7 @@ public class AccountServiceImpl implements AccountService {
}
@Override
- public Boolean pay(Integer accountId, Integer extinguishedPersonId, Double sum) {
+ public Boolean pay(Integer accountId, Integer extinguishedPersonId, Integer sum) {
Account account = accountRepository.findById(accountId);
if (validStatus(account.getAccountStatus())) {
if (account.getTotalSum().equals(sum)) {
diff --git a/src/main/java/org/sadtech/bot/core/service/impl/BoardCommentServiceImpl.java b/src/main/java/org/sadtech/bot/core/service/impl/BoardCommentServiceImpl.java
new file mode 100644
index 0000000..d4b7d3d
--- /dev/null
+++ b/src/main/java/org/sadtech/bot/core/service/impl/BoardCommentServiceImpl.java
@@ -0,0 +1,49 @@
+package org.sadtech.bot.core.service.impl;
+
+import org.sadtech.bot.core.domain.content.BoardComment;
+import org.sadtech.bot.core.repository.ContentRepository;
+import org.sadtech.bot.core.service.BoardCommentService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+public class BoardCommentServiceImpl implements BoardCommentService {
+
+ private static final Logger log = LoggerFactory.getLogger(BoardCommentServiceImpl.class);
+
+ private final ContentRepository commentRepository;
+
+ public BoardCommentServiceImpl(ContentRepository commentRepository) {
+ this.commentRepository = commentRepository;
+ }
+
+ @Override
+ public void add(BoardComment event) {
+ commentRepository.add(event);
+ }
+
+ @Override
+ public List getByTime(LocalDateTime timeFrom, LocalDateTime timeTo) {
+ return null;
+ }
+
+ @Override
+ public List getLastEventByTime(LocalDateTime timeFrom, LocalDateTime timeTo) {
+ log.info("Запрошены последние комментарии к обсуждению {} - {} ", timeFrom, timeTo);
+ List mails = commentRepository.findByTime(timeFrom, timeTo);
+ Set people = new HashSet<>();
+ List returnMails = new ArrayList<>();
+ for (int i = mails.size() - 1; i >= 0; i--) {
+ if (!people.contains(mails.get(i).getPersonId())) {
+ returnMails.add(mails.get(i));
+ people.add(mails.get(i).getPersonId());
+ }
+ }
+ return returnMails;
+ }
+}
diff --git a/src/main/java/org/sadtech/bot/core/service/impl/MailServiceImpl.java b/src/main/java/org/sadtech/bot/core/service/impl/MailServiceImpl.java
index cbc20c2..18554b4 100644
--- a/src/main/java/org/sadtech/bot/core/service/impl/MailServiceImpl.java
+++ b/src/main/java/org/sadtech/bot/core/service/impl/MailServiceImpl.java
@@ -1,7 +1,7 @@
package org.sadtech.bot.core.service.impl;
import org.sadtech.bot.core.domain.content.Mail;
-import org.sadtech.bot.core.repository.MailRepository;
+import org.sadtech.bot.core.repository.ContentRepository;
import org.sadtech.bot.core.service.MailService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -16,9 +16,9 @@ public class MailServiceImpl implements MailService {
private static final Logger log = LoggerFactory.getLogger(MailServiceImpl.class);
- private final MailRepository mailRepository;
+ private final ContentRepository mailRepository;
- public MailServiceImpl(MailRepository mailRepository) {
+ public MailServiceImpl(ContentRepository mailRepository) {
this.mailRepository = mailRepository;
}
@@ -29,9 +29,9 @@ public class MailServiceImpl implements MailService {
}
@Override
- public List getFirstEventByTime(LocalDateTime timeFrom, LocalDateTime timeTo) {
- log.info("Запрошены сообщения {} - {} ", timeFrom, timeTo);
- List mails = mailRepository.getMailByTime(timeFrom, timeTo);
+ public List getLastEventByTime(LocalDateTime timeFrom, LocalDateTime timeTo) {
+ log.info("Запрошены последние сообщения {} - {} ", timeFrom, timeTo);
+ List mails = mailRepository.findByTime(timeFrom, timeTo);
Set people = new HashSet<>();
List returnMails = new ArrayList<>();
for (int i = mails.size() - 1; i >= 0; i--) {
@@ -44,23 +44,9 @@ public class MailServiceImpl implements MailService {
}
@Override
- public List getLastEventByTime(LocalDateTime timeFrom, LocalDateTime timeTo) {
- List mails = mailRepository.getMailByTime(timeFrom, timeTo);
- Set people = new HashSet<>();
- List returnMails = new ArrayList<>();
- for (Mail mail : mails) {
- if (!people.contains(mail.getPersonId())) {
- returnMails.add(mail);
- people.add(mail.getPersonId());
- }
- }
- return returnMails;
- }
-
- @Override
- public List getEvent(LocalDateTime timeFrom, LocalDateTime timeTo) {
- log.info("Запрошены сообщения {} - {} ", timeFrom, timeTo);
- return mailRepository.getMailByTime(timeFrom, timeTo);
+ public List getByTime(LocalDateTime timeFrom, LocalDateTime timeTo) {
+ log.info("Запрошены все сообщения {} - {} ", timeFrom, timeTo);
+ return mailRepository.findByTime(timeFrom, timeTo);
}
}
diff --git a/src/main/java/org/sadtech/bot/core/service/sender/SendBox.java b/src/main/java/org/sadtech/bot/core/service/sender/SendBox.java
new file mode 100644
index 0000000..942de5b
--- /dev/null
+++ b/src/main/java/org/sadtech/bot/core/service/sender/SendBox.java
@@ -0,0 +1,26 @@
+package org.sadtech.bot.core.service.sender;
+
+import org.sadtech.bot.core.domain.BoxAnswer;
+import org.sadtech.bot.core.domain.content.Comment;
+import org.sadtech.bot.core.domain.content.Message;
+
+public class SendBox {
+
+ private SendBox() {
+
+ }
+
+ public static void sent(Message message, BoxAnswer boxAnswer, Sent sent) {
+ switch (message.getType()) {
+ case BOARD_COMMENT:
+ sent.send(((Comment) message).getContentId(), message.getPersonId(), boxAnswer);
+ break;
+ case MAIL:
+ sent.send(message.getPersonId(), boxAnswer);
+ break;
+ default:
+ sent.send(message.getPersonId(), boxAnswer);
+ }
+ }
+
+}
diff --git a/src/main/java/org/sadtech/bot/core/service/sender/Sent.java b/src/main/java/org/sadtech/bot/core/service/sender/Sent.java
index afab375..2f7a266 100644
--- a/src/main/java/org/sadtech/bot/core/service/sender/Sent.java
+++ b/src/main/java/org/sadtech/bot/core/service/sender/Sent.java
@@ -4,8 +4,8 @@ import org.sadtech.bot.core.domain.BoxAnswer;
public interface Sent {
- void send(Integer personId, String message);
-
void send(Integer personId, BoxAnswer boxAnswer);
+ void send(Integer contentId, Integer personId, BoxAnswer boxAnswer);
+
}
diff --git a/src/main/java/org/sadtech/bot/core/service/sender/email/EmailSent.java b/src/main/java/org/sadtech/bot/core/service/sender/email/EmailSent.java
index c04d580..eaf026d 100644
--- a/src/main/java/org/sadtech/bot/core/service/sender/email/EmailSent.java
+++ b/src/main/java/org/sadtech/bot/core/service/sender/email/EmailSent.java
@@ -21,7 +21,7 @@ public class EmailSent implements Sent {
}
@Override
- public void send(Integer personId, String htmlText) {
+ public void send(Integer personId, BoxAnswer boxAnswer) {
Session session = Session.getDefaultInstance(emailConfig.getProps(), new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
@@ -33,7 +33,7 @@ public class EmailSent implements Sent {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(emailConfig.getUsername()));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(emailConfig.getUsername()));
- message.setContent(htmlText, "text/html; charset=utf-8");
+ message.setContent(boxAnswer.getMessage(), "text/html; charset=utf-8");
Transport.send(message);
} catch (MessagingException e) {
log.error(e.getMessage());
@@ -42,7 +42,7 @@ public class EmailSent implements Sent {
}
@Override
- public void send(Integer personId, BoxAnswer boxAnswer) {
+ public void send(Integer contentId, Integer personId, BoxAnswer boxAnswer) {
throw new MailSendException();
}
}
diff --git a/src/main/java/org/sadtech/bot/core/utils/Contents.java b/src/main/java/org/sadtech/bot/core/utils/Contents.java
index 9b417b1..5f674d0 100644
--- a/src/main/java/org/sadtech/bot/core/utils/Contents.java
+++ b/src/main/java/org/sadtech/bot/core/utils/Contents.java
@@ -1,6 +1,6 @@
package org.sadtech.bot.core.utils;
-import org.sadtech.bot.core.domain.content.EmptyContent;
+import org.sadtech.bot.core.domain.content.EmptyMessage;
public class Contents {
@@ -8,7 +8,7 @@ public class Contents {
throw new IllegalStateException("Utility class");
}
- public static final EmptyContent EMPTY_CONTENT = new EmptyContent();
+ public static final EmptyMessage EMPTY_CONTENT = new EmptyMessage();
}
diff --git a/src/main/java/org/sadtech/bot/core/utils/KeyBoards.java b/src/main/java/org/sadtech/bot/core/utils/KeyBoards.java
index cb878f5..d5cb42d 100644
--- a/src/main/java/org/sadtech/bot/core/utils/KeyBoards.java
+++ b/src/main/java/org/sadtech/bot/core/utils/KeyBoards.java
@@ -4,6 +4,7 @@ import org.sadtech.bot.core.domain.keyboard.ButtonColor;
import org.sadtech.bot.core.domain.keyboard.KeyBoard;
import org.sadtech.bot.core.domain.keyboard.KeyBoardButton;
import org.sadtech.bot.core.domain.keyboard.KeyBoardLine;
+import org.sadtech.bot.core.domain.keyboard.button.KeyBoardButtonText;
import java.util.List;
@@ -14,8 +15,8 @@ public class KeyBoards {
}
public static KeyBoard keyBoardYesNo() {
- KeyBoardButton yesButton = KeyBoardButton.builder().color(ButtonColor.POSITIVE).label("Да").payload("{\"button\": \"yes\"}").build();
- KeyBoardButton noButton = KeyBoardButton.builder().color(ButtonColor.NEGATIVE).label("Нет").payload("{\"button\": \"no\"}").build();
+ KeyBoardButton yesButton = KeyBoardButtonText.builder().color(ButtonColor.POSITIVE).label("Да").payload("{\"button\": \"yes\"}").build();
+ KeyBoardButton noButton = KeyBoardButtonText.builder().color(ButtonColor.NEGATIVE).label("Нет").payload("{\"button\": \"no\"}").build();
KeyBoardLine keyBoardLine = KeyBoardLine.builder().buttonKeyBoard(yesButton).buttonKeyBoard(noButton).build();
return KeyBoard.builder().lineKeyBoard(keyBoardLine).oneTime(true).build();
}
@@ -23,12 +24,39 @@ public class KeyBoards {
public static KeyBoard verticalMenuString(List labelButtons) {
KeyBoard.Builder keyBoard = KeyBoard.builder().oneTime(true);
for (String labelButton : labelButtons) {
- KeyBoardButton keyBoardButton = KeyBoardButton.builder().label(labelButton).payload("{\"button\": \"" + labelButton + "\"}").build();
+ KeyBoardButton keyBoardButton = KeyBoardButtonText.builder().label(labelButton).payload("{\"button\": \"" + labelButton + "\"}").build();
keyBoard.lineKeyBoard(KeyBoardLine.builder().buttonKeyBoard(keyBoardButton).build());
}
return keyBoard.build();
}
+ public static KeyBoard verticalMenuString(String... labelButton) {
+ KeyBoard.Builder keyBoard = KeyBoard.builder().oneTime(true);
+ for (String label : labelButton) {
+ KeyBoardButton keyBoardButton = KeyBoardButtonText.builder().label(label).payload("{\"button\": \"" + label + "\"}").build();
+ keyBoard.lineKeyBoard(KeyBoardLine.builder().buttonKeyBoard(keyBoardButton).build());
+ }
+ return keyBoard.build();
+ }
+
+ public static KeyBoard verticalDuoMenuString(String... labelButton) {
+ KeyBoard.Builder keyBoard = KeyBoard.builder().oneTime(true);
+ boolean flag = true;
+ KeyBoardLine.Builder keyBoardLine = KeyBoardLine.builder();
+ for (String label : labelButton) {
+ if (flag) {
+ keyBoardLine.buttonKeyBoard(KeyBoardButtonText.builder().label(label).build());
+ flag = false;
+ } else {
+ keyBoardLine.buttonKeyBoard(KeyBoardButtonText.builder().label(label).build());
+ keyBoard.lineKeyBoard(keyBoardLine.build());
+ keyBoardLine = KeyBoardLine.builder();
+ flag = true;
+ }
+ }
+ return keyBoard.build();
+ }
+
public static KeyBoard verticalMenuButton(List keyBoardButtons) {
KeyBoard.Builder keyBoard = KeyBoard.builder().oneTime(true);
for (KeyBoardButton keyBoardButton : keyBoardButtons) {
@@ -36,4 +64,9 @@ public class KeyBoards {
}
return keyBoard.build();
}
+
+ public static KeyBoard singelton(KeyBoardButton keyBoardButton) {
+ KeyBoardLine line = KeyBoardLine.builder().buttonKeyBoard(keyBoardButton).build();
+ return KeyBoard.builder().lineKeyBoard(line).build();
+ }
}