Множественные изменения.
1. Удалил аннотацию @Data, заменил Getter Setter. 2. Удалил зависимости spring. Буду делать независимую от фреймворка библиотеку. 3. Удалил неиспользуемые зависимости. 4. Обновил версии зависимостей.
This commit is contained in:
parent
65b88181ee
commit
a3aa78c940
@ -22,21 +22,14 @@
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.google.code.gson</groupId>
|
||||
<artifactId>gson</artifactId>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.mail</groupId>
|
||||
<artifactId>javax.mail-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.data</groupId>
|
||||
<artifactId>spring-data-jpa</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.persistence</groupId>
|
||||
<artifactId>javax.persistence-api</artifactId>
|
||||
@ -45,6 +38,11 @@
|
||||
<groupId>javax.validation</groupId>
|
||||
<artifactId>validation-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
@ -1,6 +1,7 @@
|
||||
package dev.struchkov.godfather.context.domain;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
import javax.persistence.GeneratedValue;
|
||||
@ -12,7 +13,8 @@ import javax.persistence.MappedSuperclass;
|
||||
*
|
||||
* @author upagge [28/07/2019]
|
||||
*/
|
||||
@Data
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@MappedSuperclass
|
||||
public class BasicEntity {
|
||||
|
@ -4,7 +4,6 @@ import dev.struchkov.godfather.context.domain.content.Message;
|
||||
import dev.struchkov.godfather.context.domain.content.attachment.GeoCoordinate;
|
||||
import dev.struchkov.godfather.context.domain.keyboard.KeyBoard;
|
||||
import dev.struchkov.godfather.context.service.usercode.ProcessingData;
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
import lombok.Builder;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
@ -16,23 +15,31 @@ import lombok.ToString;
|
||||
*
|
||||
* @author upagge [08/07/2019]
|
||||
*/
|
||||
@EqualsAndHashCode
|
||||
@ToString
|
||||
@Getter
|
||||
@ToString
|
||||
@EqualsAndHashCode
|
||||
@Builder(toBuilder = true)
|
||||
public class BoxAnswer {
|
||||
|
||||
/**
|
||||
* Обычное текстовое сообщение.
|
||||
*/
|
||||
@Setter
|
||||
@Description("Обычное текстовое сообщение")
|
||||
private String message;
|
||||
|
||||
@Description("Клавиатура - меню")
|
||||
/**
|
||||
* Клавиатура - меню.
|
||||
*/
|
||||
private KeyBoard keyBoard;
|
||||
|
||||
@Description("Географические координаты")
|
||||
/**
|
||||
* Географические координаты.
|
||||
*/
|
||||
private GeoCoordinate coordinates;
|
||||
|
||||
@Description("Идентификатор стикера")
|
||||
/**
|
||||
* Идентификатор стикера.
|
||||
*/
|
||||
private Integer stickerId;
|
||||
|
||||
public static BoxAnswer of(String message) {
|
||||
@ -40,7 +47,7 @@ public class BoxAnswer {
|
||||
}
|
||||
|
||||
public static <T extends Message> ProcessingData<T> processing(String messageText) {
|
||||
return (message) -> builder().message(messageText).build();
|
||||
return message -> builder().message(messageText).build();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
package dev.struchkov.godfather.context.domain.content;
|
||||
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
@ -15,7 +14,9 @@ import lombok.Setter;
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public abstract class Comment extends Message {
|
||||
|
||||
@Description("Идентификатор контента, к которому ставлено сообщение")
|
||||
/**
|
||||
* Идентификатор контента, к которому ставлено сообщение.
|
||||
*/
|
||||
private Long contentId;
|
||||
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
package dev.struchkov.godfather.context.domain.content;
|
||||
|
||||
import dev.struchkov.godfather.context.domain.content.attachment.Attachment;
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
import javax.persistence.Column;
|
||||
@ -18,21 +18,38 @@ import java.util.List;
|
||||
*
|
||||
* @author upagge [08/07/2019]
|
||||
*/
|
||||
@Data
|
||||
@Entity
|
||||
@Getter
|
||||
@Setter
|
||||
@Table(name = "mail")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class Mail extends Message {
|
||||
|
||||
/**
|
||||
* Имя отправителя.
|
||||
*/
|
||||
@Column(name = "first_name")
|
||||
private String firstName;
|
||||
|
||||
/**
|
||||
* Фамилия отправителя.
|
||||
*/
|
||||
@Column(name = "last_name")
|
||||
private String lastName;
|
||||
|
||||
/**
|
||||
* Вложения к сообщению.
|
||||
*/
|
||||
@OneToMany(fetch = FetchType.EAGER)
|
||||
@Column(name = "attachment")
|
||||
@Description("Вложения к сообщению")
|
||||
private List<Attachment> attachments;
|
||||
|
||||
/**
|
||||
* Пересланные сообщения.
|
||||
*/
|
||||
@OneToMany
|
||||
@Column(name = "forward_mail")
|
||||
@Description("Пересланные сообщения")
|
||||
private List<Mail> forwardMail;
|
||||
|
||||
public Mail() {
|
||||
|
@ -1,9 +1,10 @@
|
||||
package dev.struchkov.godfather.context.domain.content;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import dev.struchkov.godfather.context.domain.BasicEntity;
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.EnumType;
|
||||
@ -18,38 +19,46 @@ import java.time.LocalDateTime;
|
||||
* @author upagge [08/07/2019]
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Getter
|
||||
@Setter
|
||||
@MappedSuperclass
|
||||
@NoArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public abstract class Message extends BasicEntity {
|
||||
|
||||
/**
|
||||
* Тип сообщения.
|
||||
*/
|
||||
@Column(name = "type")
|
||||
@Enumerated(value = EnumType.STRING)
|
||||
@Description("Тип сообщения")
|
||||
protected ContentType type;
|
||||
|
||||
/**
|
||||
* Дата создания.
|
||||
*/
|
||||
@NotNull
|
||||
@Column(name = "create_date")
|
||||
@Description("Дата создания")
|
||||
private LocalDateTime createDate;
|
||||
|
||||
/**
|
||||
* Дата добавления в базу.
|
||||
*/
|
||||
@Column(name = "add_date")
|
||||
@Description("Дата добавления в базу")
|
||||
private LocalDateTime addDate;
|
||||
|
||||
/**
|
||||
* Идентификатор пользователя, отправившего сообщение.
|
||||
*/
|
||||
@NotNull
|
||||
@Column(name = "person_id")
|
||||
@Description("Идентификатор пользователя, отправившего сообщение")
|
||||
private Long personId;
|
||||
|
||||
/**
|
||||
* Текстовое сообщение.
|
||||
*/
|
||||
@Column(name = "text")
|
||||
@Description("Текстовое сообщение")
|
||||
private String text;
|
||||
|
||||
public Message() {
|
||||
|
||||
}
|
||||
|
||||
public Message(Message source) {
|
||||
this.personId = source.getPersonId();
|
||||
this.text = source.getText();
|
||||
|
@ -1,7 +1,6 @@
|
||||
package dev.struchkov.godfather.context.domain.content.attachment;
|
||||
|
||||
import lombok.EqualsAndHashCode;
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
@ -23,9 +22,11 @@ public abstract class Attachment {
|
||||
@GeneratedValue
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* Тип сущности.
|
||||
*/
|
||||
@Column(name = "type")
|
||||
@Enumerated(value = EnumType.STRING)
|
||||
@Description("Тип сущности")
|
||||
protected AttachmentType type;
|
||||
|
||||
public AttachmentType getType() {
|
||||
|
@ -4,7 +4,6 @@ import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
|
||||
import java.net.URL;
|
||||
|
||||
@ -20,7 +19,9 @@ import java.net.URL;
|
||||
@Setter
|
||||
public class AudioMessage extends Attachment {
|
||||
|
||||
@Description("Ссылка на аудиозапись в формате odd")
|
||||
/**
|
||||
* Ссылка на аудиозапись в формате odd.
|
||||
*/
|
||||
private URL linkOdd;
|
||||
|
||||
public AudioMessage() {
|
||||
|
@ -3,7 +3,6 @@ package dev.struchkov.godfather.context.domain.content.attachment;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.ToString;
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
|
||||
/**
|
||||
* Вложение типа "Карта".
|
||||
@ -11,17 +10,23 @@ import dev.struchkov.godfather.context.utils.Description;
|
||||
* @author upagge [08/07/2019]
|
||||
*/
|
||||
@Getter
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class Geo extends Attachment {
|
||||
|
||||
@Description("Географические координаты")
|
||||
/**
|
||||
* Географические координаты.
|
||||
*/
|
||||
private GeoCoordinate geoCoordinate;
|
||||
|
||||
@Description("Название страны")
|
||||
/**
|
||||
* Название страны.
|
||||
*/
|
||||
private String country;
|
||||
|
||||
@Description("Название города")
|
||||
/**
|
||||
* Название города.
|
||||
*/
|
||||
private String city;
|
||||
|
||||
private Geo() {
|
||||
|
@ -1,22 +1,27 @@
|
||||
package dev.struchkov.godfather.context.domain.content.attachment;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* Сущность для хранения географических координат.
|
||||
*
|
||||
* @author upagge [08/07/2019]
|
||||
*/
|
||||
@Data
|
||||
@Getter
|
||||
@Setter
|
||||
@AllArgsConstructor
|
||||
public class GeoCoordinate {
|
||||
|
||||
@Description("Широта")
|
||||
/**
|
||||
* Широта.
|
||||
*/
|
||||
private Float latitude;
|
||||
|
||||
@Description("Долгота")
|
||||
/**
|
||||
* Долгота.
|
||||
*/
|
||||
private Float longitude;
|
||||
|
||||
}
|
||||
|
@ -5,7 +5,6 @@ import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.Singular;
|
||||
import lombok.ToString;
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -21,11 +20,15 @@ import java.util.List;
|
||||
@ToString
|
||||
public class KeyBoard {
|
||||
|
||||
@Description("Строки меню")
|
||||
/**
|
||||
* Строки меню.
|
||||
*/
|
||||
@Singular(value = "lineKeyBoard")
|
||||
private List<KeyBoardLine> keyBoardLines = new ArrayList<>();
|
||||
|
||||
@Description("Скрыть меню после ответа или нет")
|
||||
/**
|
||||
* Скрыть меню после ответа или нет.
|
||||
*/
|
||||
private boolean oneTime = true;
|
||||
|
||||
}
|
||||
|
@ -5,7 +5,6 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.ToString;
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
|
||||
/**
|
||||
* Абстрактная сущность кнопки для клавиатуры.
|
||||
@ -18,10 +17,14 @@ import dev.struchkov.godfather.context.utils.Description;
|
||||
@AllArgsConstructor(access = AccessLevel.PROTECTED)
|
||||
public abstract class KeyBoardButton {
|
||||
|
||||
@Description("Скрытое сообщение, отправляемое по нажатию")
|
||||
/**
|
||||
* Скрытое сообщение, отправляемое по нажатию.
|
||||
*/
|
||||
protected String payload;
|
||||
|
||||
@Description("Тип кнопки")
|
||||
/**
|
||||
* Тип кнопки.
|
||||
*/
|
||||
protected ButtonType type;
|
||||
|
||||
}
|
||||
|
@ -5,7 +5,6 @@ import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.Singular;
|
||||
import lombok.ToString;
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -21,7 +20,9 @@ import java.util.List;
|
||||
@EqualsAndHashCode
|
||||
public class KeyBoardLine {
|
||||
|
||||
@Description("Кнопки в строке")
|
||||
/**
|
||||
* Кнопки в строке.
|
||||
*/
|
||||
@Singular(value = "buttonKeyBoard")
|
||||
private List<KeyBoardButton> keyBoardButtons = new ArrayList<>();
|
||||
|
||||
|
@ -1,12 +1,11 @@
|
||||
package dev.struchkov.godfather.context.domain.keyboard.button;
|
||||
|
||||
import dev.struchkov.godfather.context.domain.keyboard.ButtonType;
|
||||
import dev.struchkov.godfather.context.domain.keyboard.KeyBoardButton;
|
||||
import lombok.Builder;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.ToString;
|
||||
import dev.struchkov.godfather.context.domain.keyboard.KeyBoardButton;
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
|
||||
/**
|
||||
* Кнопка клавиатуры для оплаты счета.
|
||||
@ -18,13 +17,19 @@ import dev.struchkov.godfather.context.utils.Description;
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class KeyBoardButtonAccount extends KeyBoardButton {
|
||||
|
||||
@Description("Сумма к оплате")
|
||||
/**
|
||||
* Сумма к оплате.
|
||||
*/
|
||||
private Integer amount;
|
||||
|
||||
@Description("Идентификатор счета")
|
||||
/**
|
||||
* Идентификатор счета.
|
||||
*/
|
||||
private Integer accountId;
|
||||
|
||||
@Description("Описание")
|
||||
/**
|
||||
* Описание.
|
||||
*/
|
||||
private String description;
|
||||
|
||||
@Builder
|
||||
|
@ -1,23 +1,26 @@
|
||||
package dev.struchkov.godfather.context.domain.keyboard.button;
|
||||
|
||||
import dev.struchkov.godfather.context.domain.keyboard.ButtonColor;
|
||||
import dev.struchkov.godfather.context.domain.keyboard.ButtonType;
|
||||
import dev.struchkov.godfather.context.domain.keyboard.KeyBoardButton;
|
||||
import lombok.Builder;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.ToString;
|
||||
import dev.struchkov.godfather.context.domain.keyboard.ButtonColor;
|
||||
import dev.struchkov.godfather.context.domain.keyboard.ButtonType;
|
||||
import dev.struchkov.godfather.context.domain.keyboard.KeyBoardButton;
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
|
||||
@Getter
|
||||
@ToString
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class KeyBoardButtonText extends KeyBoardButton {
|
||||
|
||||
@Description("Надпись на кнопке")
|
||||
/**
|
||||
* Надпись на кнопке
|
||||
*/
|
||||
private String label;
|
||||
|
||||
@Description("Цвет кнопки")
|
||||
/**
|
||||
* Цвет кнопки.
|
||||
*/
|
||||
private ButtonColor color;
|
||||
|
||||
@Builder
|
||||
|
@ -1,10 +1,10 @@
|
||||
package dev.struchkov.godfather.context.domain.money;
|
||||
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
@ -20,39 +20,49 @@ import javax.validation.constraints.NotNull;
|
||||
*
|
||||
* @author upagge [08/07/2019]
|
||||
*/
|
||||
@Entity
|
||||
@Builder
|
||||
@Data
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Entity
|
||||
@Table(name = "account")
|
||||
public class Account {
|
||||
|
||||
@Id
|
||||
@GeneratedValue
|
||||
@Description("Идентификатор счета")
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* Сумма к оплате.
|
||||
*/
|
||||
@NotNull
|
||||
@Column(name = "totalSum")
|
||||
@Description("Сумма к оплате")
|
||||
private Integer totalSum;
|
||||
|
||||
/**
|
||||
* Идентификатор пользователя, которому выставлен счет.
|
||||
*/
|
||||
@Column(name = "belongs_person_id")
|
||||
@Description("Идентификатор пользователя, которому выставлен счет")
|
||||
private Long belongsPersonId;
|
||||
|
||||
/**
|
||||
* Идентификатор пользователя, который оплатил счет.
|
||||
*/
|
||||
@Column(name = "extinguished_person_id")
|
||||
@Description("Идентификатор пользователя, который оплатил счет")
|
||||
private Integer extinguishedPersonId;
|
||||
|
||||
/**
|
||||
* Описание платежа.
|
||||
*/
|
||||
@Column(name = "description")
|
||||
@Description("Описание платежа")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* Статус оплаты счета.
|
||||
*/
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "status")
|
||||
@Description("Статус оплаты счета")
|
||||
private AccountStatus accountStatus;
|
||||
|
||||
}
|
||||
|
@ -1,34 +0,0 @@
|
||||
package dev.struchkov.godfather.context.repository.impl.jpa;
|
||||
|
||||
import dev.struchkov.godfather.context.repository.AccountRepository;
|
||||
import dev.struchkov.godfather.context.repository.jpa.AccountRepositoryJpa;
|
||||
import lombok.NonNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import dev.struchkov.godfather.context.domain.money.Account;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* @author upagge [27/07/2019]
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
public class AccountRepositoryJpaImpl implements AccountRepository {
|
||||
|
||||
private final AccountRepositoryJpa accountRepositoryJpa;
|
||||
|
||||
@Override
|
||||
public Account save(@NonNull Account account) {
|
||||
return accountRepositoryJpa.save(account);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Account> findById(@NonNull Integer accountId) {
|
||||
return accountRepositoryJpa.findById(accountId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean existsById(Integer id) {
|
||||
return accountRepositoryJpa.existsById(id);
|
||||
}
|
||||
|
||||
}
|
@ -1,52 +0,0 @@
|
||||
package dev.struchkov.godfather.context.repository.impl.jpa;
|
||||
|
||||
import dev.struchkov.godfather.context.repository.ContentRepository;
|
||||
import dev.struchkov.godfather.context.repository.jpa.MailRepositoryJpa;
|
||||
import lombok.NonNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import dev.struchkov.godfather.context.domain.content.Mail;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Реализация репозитория.
|
||||
*
|
||||
* @author upagge [25/07/2019]
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
public class MailRepositoryJpaImpl implements ContentRepository<Mail> {
|
||||
|
||||
private final MailRepositoryJpa mailRepositoryJpa;
|
||||
|
||||
@Override
|
||||
public Mail add(@NonNull Mail content) {
|
||||
return mailRepositoryJpa.saveAndFlush(content);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Mail> betweenByCreateDateTime(@NonNull LocalDateTime dateFrom, @NonNull LocalDateTime dateTo) {
|
||||
return mailRepositoryJpa.findByCreateDateBetween(dateFrom, dateTo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Mail> betweenByAddDateTime(@NonNull LocalDateTime dateFrom, @NonNull LocalDateTime dateTo) {
|
||||
return mailRepositoryJpa.findByAddDateBetween(dateFrom, dateTo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteAllByAddDateBetween(@NonNull LocalDateTime dateFrom, @NonNull LocalDateTime dateTo) {
|
||||
mailRepositoryJpa.deleteAllByAddDateBetween(dateFrom, dateTo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteAllByAddDateBefore(@NonNull LocalDateTime date) {
|
||||
mailRepositoryJpa.deleteAllByAddDateBefore(date);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteAllByAddDateAfter(@NonNull LocalDateTime date) {
|
||||
mailRepositoryJpa.deleteAllByAddDateAfter(date);
|
||||
}
|
||||
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
package dev.struchkov.godfather.context.repository.jpa;
|
||||
|
||||
import dev.struchkov.godfather.context.domain.money.Account;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* @author upagge [27/07/2019]
|
||||
*/
|
||||
@Repository
|
||||
public interface AccountRepositoryJpa extends JpaRepository<Account, Integer> {
|
||||
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
package dev.struchkov.godfather.context.repository.jpa;
|
||||
|
||||
import dev.struchkov.godfather.context.domain.content.Mail;
|
||||
import dev.struchkov.godfather.context.repository.impl.jpa.MailRepositoryJpaImpl;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Интерфейс JPA репозитория для сущности {@link Mail}. При этом сам не является репозиторием, а подставляется в
|
||||
* {@link MailRepositoryJpaImpl}
|
||||
*
|
||||
* @author upagge [27/07/2019]
|
||||
*/
|
||||
@Repository
|
||||
public interface MailRepositoryJpa extends JpaRepository<Mail, Integer> {
|
||||
|
||||
List<Mail> findByCreateDateBetween(LocalDateTime dateFrom, LocalDateTime dateTo);
|
||||
|
||||
List<Mail> findByAddDateBetween(LocalDateTime dateFrom, LocalDateTime dateTo);
|
||||
|
||||
void deleteAllByAddDateBetween(LocalDateTime dateFrom, LocalDateTime dateTo);
|
||||
|
||||
void deleteAllByAddDateBefore(LocalDateTime date);
|
||||
|
||||
void deleteAllByAddDateAfter(LocalDateTime date);
|
||||
|
||||
}
|
@ -1,21 +0,0 @@
|
||||
package dev.struchkov.godfather.context.utils;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* Используется для описания полей в классах.
|
||||
*
|
||||
* @author upagge [08/07/2019]
|
||||
*/
|
||||
@Target(ElementType.FIELD)
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface Description {
|
||||
|
||||
String value();
|
||||
|
||||
String example() default "";
|
||||
|
||||
}
|
@ -30,11 +30,6 @@
|
||||
<groupId>org.sadtech.autoresponder</groupId>
|
||||
<artifactId>autoresponder</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
@ -1,7 +1,6 @@
|
||||
package dev.struchkov.godfather.core.domain;
|
||||
|
||||
import dev.struchkov.godfather.context.domain.money.Account;
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
import dev.struchkov.godfather.core.domain.unit.MainUnit;
|
||||
import lombok.Builder;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@ -14,20 +13,28 @@ import lombok.ToString;
|
||||
* @author upagge [11/07/2019]
|
||||
*/
|
||||
@Getter
|
||||
@EqualsAndHashCode
|
||||
@ToString
|
||||
@Builder
|
||||
@ToString
|
||||
@EqualsAndHashCode
|
||||
public class AccountAutoCheck {
|
||||
|
||||
@Description("Unut, который обрабатывается при успешной оплате")
|
||||
/**
|
||||
* Unut, который обрабатывается при успешной оплате.
|
||||
*/
|
||||
private MainUnit successfulPayment;
|
||||
|
||||
@Description("Unit, который обрабатывается при не успешной оплате")
|
||||
/**
|
||||
* Unit, который обрабатывается при не успешной оплате.
|
||||
*/
|
||||
private MainUnit failedPayment;
|
||||
|
||||
@Description("Период проверки")
|
||||
/**
|
||||
* Период проверки.
|
||||
*/
|
||||
private Integer periodSec;
|
||||
|
||||
@Description("Время жизни счета")
|
||||
/**
|
||||
* Время жизни счета.
|
||||
*/
|
||||
private Integer lifeTimeHours;
|
||||
}
|
||||
|
@ -1,10 +1,10 @@
|
||||
package dev.struchkov.godfather.core.domain;
|
||||
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
import dev.struchkov.godfather.core.domain.unit.MainUnit;
|
||||
import dev.struchkov.godfather.context.service.usercode.CheckData;
|
||||
import dev.struchkov.godfather.core.domain.unit.MainUnit;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@ -13,32 +13,49 @@ import java.time.LocalDateTime;
|
||||
*
|
||||
* @author upagge [11/07/2019]
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
@Data
|
||||
public class Timer {
|
||||
|
||||
@Description("Идентификатор таймера")
|
||||
/**
|
||||
* Идентификатор таймера.
|
||||
*/
|
||||
private Integer id;
|
||||
|
||||
@Description("Unit, обработка которого откладывается")
|
||||
/**
|
||||
* Unit, обработка которого откладывается.
|
||||
*/
|
||||
private MainUnit unitAnswer;
|
||||
|
||||
@Description("Unit, который будет обработан после удаления таймера")
|
||||
/**
|
||||
* Unit, который будет обработан после удаления таймера.
|
||||
*/
|
||||
private MainUnit unitDeath;
|
||||
|
||||
@Description("Идентификатор пользователя")
|
||||
/**
|
||||
* Идентификатор пользователя.
|
||||
*/
|
||||
private Long personId;
|
||||
|
||||
@Description("Время активации таймера")
|
||||
/**
|
||||
* Время активации таймера.
|
||||
*/
|
||||
private LocalDateTime timeActive;
|
||||
|
||||
@Description("Время смерти таймера")
|
||||
/**
|
||||
* Время смерти таймера.
|
||||
*/
|
||||
private LocalDateTime timeDeath;
|
||||
|
||||
@Description("Интервал срабатывания таймера")
|
||||
/**
|
||||
* Интервал срабатывания таймера.
|
||||
*/
|
||||
private Integer periodSec;
|
||||
|
||||
@Description("Условие срабатывания таймера")
|
||||
/**
|
||||
* Условие срабатывания таймера.
|
||||
*/
|
||||
private CheckData checkLoop;
|
||||
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
package dev.struchkov.godfather.core.domain.question;
|
||||
|
||||
import dev.struchkov.godfather.context.domain.BoxAnswer;
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
@ -19,11 +18,15 @@ import java.util.List;
|
||||
@Builder
|
||||
public class Question {
|
||||
|
||||
@Description("Вопрос")
|
||||
/**
|
||||
* Вопрос.
|
||||
*/
|
||||
private BoxAnswer boxAnswer;
|
||||
|
||||
/**
|
||||
* Список предполагаемых ответов.
|
||||
*/
|
||||
@Singular
|
||||
@Description("Список предполагаемых ответов")
|
||||
private List<QuestionAnswer> questionAnswers;
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
package dev.struchkov.godfather.core.domain.question;
|
||||
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@ -14,10 +13,14 @@ import lombok.Setter;
|
||||
@Setter
|
||||
public class QuestionAnswer {
|
||||
|
||||
@Description("Текстовый ответ")
|
||||
/**
|
||||
* Текстовый ответ.
|
||||
*/
|
||||
private String text;
|
||||
|
||||
@Description("Количество балов за ответ")
|
||||
/**
|
||||
* Количество балов за ответ.
|
||||
*/
|
||||
private int points;
|
||||
|
||||
public QuestionAnswer(String text, Integer points) {
|
||||
|
@ -1,6 +1,5 @@
|
||||
package dev.struchkov.godfather.core.domain.question;
|
||||
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
@ -15,13 +14,19 @@ import lombok.Setter;
|
||||
@AllArgsConstructor
|
||||
public class QuestionResult {
|
||||
|
||||
@Description("Вопрос")
|
||||
/**
|
||||
* Вопрос.
|
||||
*/
|
||||
private String question;
|
||||
|
||||
@Description("Ответ")
|
||||
/**
|
||||
* Ответ.
|
||||
*/
|
||||
private String answer;
|
||||
|
||||
@Description("Количество баллов за ответ")
|
||||
/**
|
||||
* Количество баллов за ответ.
|
||||
*/
|
||||
private Integer points;
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
package dev.struchkov.godfather.core.domain.unit;
|
||||
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
import dev.struchkov.godfather.core.domain.AccountAutoCheck;
|
||||
import dev.struchkov.godfather.core.utils.TypeUnit;
|
||||
import lombok.Builder;
|
||||
@ -20,13 +19,19 @@ import java.util.regex.Pattern;
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class AnswerAccount extends MainUnit {
|
||||
|
||||
@Description("Сумма к оплате")
|
||||
/**
|
||||
* Сумма к оплате.
|
||||
*/
|
||||
private final Integer totalSum;
|
||||
|
||||
@Description("Время жизни счета")
|
||||
/**
|
||||
* Время жизни счета.
|
||||
*/
|
||||
private final Integer timeHours;
|
||||
|
||||
@Description("Настройки для автоматической проверки оплаты")
|
||||
/**
|
||||
* Настройки для автоматической проверки оплаты.
|
||||
*/
|
||||
private final AccountAutoCheck autoCheck;
|
||||
|
||||
@Builder
|
||||
|
@ -1,7 +1,6 @@
|
||||
package dev.struchkov.godfather.core.domain.unit;
|
||||
|
||||
import dev.struchkov.godfather.context.domain.content.Message;
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
import dev.struchkov.godfather.context.service.usercode.CheckData;
|
||||
import dev.struchkov.godfather.core.utils.TypeUnit;
|
||||
import lombok.Builder;
|
||||
@ -21,13 +20,19 @@ import java.util.regex.Pattern;
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class AnswerCheck extends MainUnit {
|
||||
|
||||
@Description("Unit для true")
|
||||
/**
|
||||
* Unit для true.
|
||||
*/
|
||||
private final MainUnit unitTrue;
|
||||
|
||||
@Description("Unit для false")
|
||||
/**
|
||||
* Unit для false.
|
||||
*/
|
||||
private final MainUnit unitFalse;
|
||||
|
||||
@Description("Условие проверки")
|
||||
/**
|
||||
* Условие проверки.
|
||||
*/
|
||||
private final CheckData<Message> check;
|
||||
|
||||
@Builder
|
||||
|
@ -2,7 +2,6 @@ package dev.struchkov.godfather.core.domain.unit;
|
||||
|
||||
import dev.struchkov.godfather.context.domain.content.Message;
|
||||
import dev.struchkov.godfather.context.service.sender.Sending;
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
import dev.struchkov.godfather.context.service.usercode.ProcessingData;
|
||||
import dev.struchkov.godfather.core.utils.TypeUnit;
|
||||
import lombok.Builder;
|
||||
@ -22,22 +21,28 @@ import java.util.regex.Pattern;
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class AnswerProcessing<M extends Message> extends MainUnit {
|
||||
|
||||
@Description("Кастомная обработка")
|
||||
/**
|
||||
* Кастомная обработка.
|
||||
*/
|
||||
private final ProcessingData<M> processingData;
|
||||
|
||||
@Description("Объект для сквозной отправки ответа")
|
||||
/**
|
||||
* Объект для сквозной отправки ответа.
|
||||
*/
|
||||
private final Sending sending;
|
||||
|
||||
@Builder
|
||||
private AnswerProcessing(@Singular Set<String> keyWords,
|
||||
String phrase,
|
||||
Pattern pattern,
|
||||
Integer matchThreshold,
|
||||
Integer priority,
|
||||
@Singular Set<MainUnit> nextUnits,
|
||||
UnitActiveType activeType,
|
||||
ProcessingData<M> processingData,
|
||||
Sending sending) {
|
||||
private AnswerProcessing(
|
||||
@Singular Set<String> keyWords,
|
||||
String phrase,
|
||||
Pattern pattern,
|
||||
Integer matchThreshold,
|
||||
Integer priority,
|
||||
@Singular Set<MainUnit> nextUnits,
|
||||
UnitActiveType activeType,
|
||||
ProcessingData<M> processingData,
|
||||
Sending sending
|
||||
) {
|
||||
super(keyWords, phrase, pattern, matchThreshold, priority, nextUnits, activeType, TypeUnit.PROCESSING);
|
||||
this.processingData = processingData;
|
||||
this.sending = sending;
|
||||
|
@ -1,7 +1,6 @@
|
||||
package dev.struchkov.godfather.core.domain.unit;
|
||||
|
||||
import dev.struchkov.godfather.context.domain.content.Message;
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
import dev.struchkov.godfather.core.service.save.CheckSave;
|
||||
import dev.struchkov.godfather.core.service.save.Preservable;
|
||||
import dev.struchkov.godfather.core.service.save.data.PreservableData;
|
||||
@ -26,36 +25,48 @@ import java.util.regex.Pattern;
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class AnswerSave<D> extends MainUnit {
|
||||
|
||||
@Description("Объект отвечающий за сохранение - репозиторий")
|
||||
/**
|
||||
* Объект отвечающий за сохранение - репозиторий.
|
||||
*/
|
||||
private final Preservable<D> preservable;
|
||||
|
||||
@Description("Ключ для данных")
|
||||
/**
|
||||
* Ключ для данных.
|
||||
*/
|
||||
private final String key;
|
||||
|
||||
@Description("Отправка результатов")
|
||||
/**
|
||||
* Отправка результатов.
|
||||
*/
|
||||
private final Pusher<D> pusher;
|
||||
|
||||
@Description("Данные для скрытого сохранения")
|
||||
/**
|
||||
* Данные для скрытого сохранения.
|
||||
*/
|
||||
private final PreservableData<D, ? super Message> preservableData;
|
||||
|
||||
@Description("Скрытое сохранение")
|
||||
/**
|
||||
* Скрытое сохранение.
|
||||
*/
|
||||
private final boolean hidden;
|
||||
|
||||
private final CheckSave<? super Message> checkSave;
|
||||
|
||||
@Builder
|
||||
private AnswerSave(@Singular Set<String> keyWords,
|
||||
String phrase,
|
||||
Pattern pattern,
|
||||
Integer matchThreshold,
|
||||
Integer priority,
|
||||
@Singular Set<MainUnit> nextUnits,
|
||||
Preservable<D> preservable,
|
||||
String key,
|
||||
Pusher<D> pusher,
|
||||
PreservableData<D, ? super Message> preservableData,
|
||||
CheckSave<? super Message> checkSave,
|
||||
boolean hidden) {
|
||||
private AnswerSave(
|
||||
@Singular Set<String> keyWords,
|
||||
String phrase,
|
||||
Pattern pattern,
|
||||
Integer matchThreshold,
|
||||
Integer priority,
|
||||
@Singular Set<MainUnit> nextUnits,
|
||||
Preservable<D> preservable,
|
||||
String key,
|
||||
Pusher<D> pusher,
|
||||
PreservableData<D, ? super Message> preservableData,
|
||||
CheckSave<? super Message> checkSave,
|
||||
boolean hidden
|
||||
) {
|
||||
super(keyWords, phrase, pattern, matchThreshold, priority, nextUnits, (hidden) ? UnitActiveType.AFTER : UnitActiveType.DEFAULT, TypeUnit.SAVE);
|
||||
this.key = key;
|
||||
this.pusher = pusher;
|
||||
|
@ -3,7 +3,6 @@ package dev.struchkov.godfather.core.domain.unit;
|
||||
import dev.struchkov.godfather.context.domain.BoxAnswer;
|
||||
import dev.struchkov.godfather.context.domain.content.Message;
|
||||
import dev.struchkov.godfather.context.service.sender.Sending;
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
import dev.struchkov.godfather.context.service.usercode.Insert;
|
||||
import dev.struchkov.godfather.context.service.usercode.ProcessingData;
|
||||
import dev.struchkov.godfather.core.utils.TypeUnit;
|
||||
@ -24,26 +23,34 @@ import java.util.regex.Pattern;
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class AnswerText<M extends Message> extends MainUnit {
|
||||
|
||||
@Description("Объект, который необходимо отправить пользователю")
|
||||
/**
|
||||
* Объект, который необходимо отправить пользователю.
|
||||
*/
|
||||
private final ProcessingData<M> boxAnswer;
|
||||
|
||||
@Description("Информация, которую необходимо вставить вместо маркеров в строку ответа")
|
||||
/**
|
||||
* Информация, которую необходимо вставить вместо маркеров в строку ответа.
|
||||
*/
|
||||
private final Insert insert;
|
||||
|
||||
@Description("Объект нестандартной отправки ответа")
|
||||
/**
|
||||
* Объект нестандартной отправки ответа.
|
||||
*/
|
||||
private final Sending sending;
|
||||
|
||||
@Builder(toBuilder = true)
|
||||
private AnswerText(@Singular Set<String> keyWords,
|
||||
String phrase,
|
||||
Pattern pattern,
|
||||
Integer matchThreshold,
|
||||
Integer priority,
|
||||
@Singular Set<MainUnit> nextUnits,
|
||||
UnitActiveType activeType,
|
||||
ProcessingData<M> boxAnswer,
|
||||
Insert insert,
|
||||
Sending sending) {
|
||||
private AnswerText(
|
||||
@Singular Set<String> keyWords,
|
||||
String phrase,
|
||||
Pattern pattern,
|
||||
Integer matchThreshold,
|
||||
Integer priority,
|
||||
@Singular Set<MainUnit> nextUnits,
|
||||
UnitActiveType activeType,
|
||||
ProcessingData<M> boxAnswer,
|
||||
Insert insert,
|
||||
Sending sending
|
||||
) {
|
||||
super(keyWords, phrase, pattern, matchThreshold, priority, nextUnits, activeType, TypeUnit.TEXT);
|
||||
this.boxAnswer = boxAnswer;
|
||||
this.insert = insert;
|
||||
|
@ -1,6 +1,5 @@
|
||||
package dev.struchkov.godfather.core.domain.unit;
|
||||
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
import dev.struchkov.godfather.context.service.usercode.CheckData;
|
||||
import dev.struchkov.godfather.core.utils.TypeUnit;
|
||||
import lombok.Builder;
|
||||
@ -22,30 +21,40 @@ import java.util.regex.Pattern;
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class AnswerTimer extends MainUnit {
|
||||
|
||||
@Description("Unit обработку которого необходимо отложить")
|
||||
/**
|
||||
* Unit обработку которого необходимо отложить.
|
||||
*/
|
||||
private final MainUnit unitAnswer;
|
||||
|
||||
@Description("Задержка обработки в секундах")
|
||||
/**
|
||||
* Задержка обработки в секундах.
|
||||
*/
|
||||
private final Integer timeDelaySec;
|
||||
|
||||
@Description("Время, через которое таймер будет удален в секундах")
|
||||
/**
|
||||
* Время, через которое таймер будет удален в секундах.
|
||||
*/
|
||||
private final Integer timeDeathSec;
|
||||
|
||||
@Description("Условие срабатывания отложенного Unit")
|
||||
/**
|
||||
* Условие срабатывания отложенного Unit.
|
||||
*/
|
||||
private final CheckData checkLoop;
|
||||
|
||||
@Builder
|
||||
private AnswerTimer(@Singular Set<String> keyWords,
|
||||
String phrase,
|
||||
Pattern pattern,
|
||||
Integer matchThreshold,
|
||||
Integer priority,
|
||||
@Singular Set<MainUnit> nextUnits,
|
||||
UnitActiveType activeType,
|
||||
MainUnit unitAnswer,
|
||||
Integer timeDelaySec,
|
||||
Integer timeDeathSec,
|
||||
CheckData checkLoop) {
|
||||
private AnswerTimer(
|
||||
@Singular Set<String> keyWords,
|
||||
String phrase,
|
||||
Pattern pattern,
|
||||
Integer matchThreshold,
|
||||
Integer priority,
|
||||
@Singular Set<MainUnit> nextUnits,
|
||||
UnitActiveType activeType,
|
||||
MainUnit unitAnswer,
|
||||
Integer timeDelaySec,
|
||||
Integer timeDeathSec,
|
||||
CheckData checkLoop
|
||||
) {
|
||||
super(keyWords, phrase, pattern, matchThreshold, priority, nextUnits, (activeType == null) ? UnitActiveType.AFTER : activeType, TypeUnit.TIMER);
|
||||
this.unitAnswer = unitAnswer;
|
||||
this.timeDelaySec = timeDelaySec;
|
||||
|
@ -1,9 +1,8 @@
|
||||
package dev.struchkov.godfather.core.domain.unit;
|
||||
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
import dev.struchkov.godfather.core.service.ClarificationQuestion;
|
||||
import dev.struchkov.godfather.core.service.save.LocalPreservable;
|
||||
import dev.struchkov.godfather.core.service.save.Preservable;
|
||||
import dev.struchkov.godfather.core.service.ClarificationQuestion;
|
||||
import dev.struchkov.godfather.core.utils.TypeUnit;
|
||||
import lombok.Builder;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@ -24,13 +23,19 @@ import java.util.regex.Pattern;
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class AnswerValidity extends MainUnit {
|
||||
|
||||
@Description("Unit обрабатывается, если пользователь подтверждает данные")
|
||||
/**
|
||||
* Unit обрабатывается, если пользователь подтверждает данные.
|
||||
*/
|
||||
private final MainUnit unitYes;
|
||||
|
||||
@Description("Unit обрабатывается, если пользователь отклоняет данные")
|
||||
/**
|
||||
* Unit обрабатывается, если пользователь отклоняет данные.
|
||||
*/
|
||||
private final MainUnit unitNo;
|
||||
|
||||
@Description("Unit обрабатывается, если данные не найдены")
|
||||
/**
|
||||
* Unit обрабатывается, если данные не найдены.
|
||||
*/
|
||||
private final MainUnit unitNull;
|
||||
|
||||
private final Preservable<String> tempSave = new LocalPreservable<>();
|
||||
@ -38,17 +43,18 @@ public class AnswerValidity extends MainUnit {
|
||||
private final ClarificationQuestion clarificationQuestion;
|
||||
|
||||
@Builder(toBuilder = true)
|
||||
private AnswerValidity(@Singular Set<String> keyWords,
|
||||
String phrase,
|
||||
Pattern pattern,
|
||||
Integer matchThreshold,
|
||||
Integer priority,
|
||||
@Singular Set<MainUnit> nextUnits,
|
||||
UnitActiveType activeType,
|
||||
MainUnit unitYes,
|
||||
MainUnit unitNo,
|
||||
MainUnit unitNull,
|
||||
ClarificationQuestion clarificationQuestion) {
|
||||
private AnswerValidity(
|
||||
@Singular Set<String> keyWords,
|
||||
String phrase,
|
||||
Pattern pattern,
|
||||
Integer matchThreshold,
|
||||
Integer priority,
|
||||
@Singular Set<MainUnit> nextUnits,
|
||||
MainUnit unitYes,
|
||||
MainUnit unitNo,
|
||||
MainUnit unitNull,
|
||||
ClarificationQuestion clarificationQuestion
|
||||
) {
|
||||
super(keyWords, phrase, pattern, matchThreshold, priority, nextUnits, UnitActiveType.DEFAULT, TypeUnit.VALIDITY);
|
||||
this.unitYes = unitYes;
|
||||
this.unitNo = unitNo;
|
||||
|
@ -1,6 +1,5 @@
|
||||
package dev.struchkov.godfather.core.domain.unit;
|
||||
|
||||
import dev.struchkov.godfather.context.utils.Description;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
@ -21,26 +20,32 @@ import java.util.regex.Pattern;
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public abstract class MainUnit extends Unit<MainUnit> {
|
||||
|
||||
/**
|
||||
* Тип Unit-а.
|
||||
*/
|
||||
@Getter
|
||||
@Description("Тип Unit-а")
|
||||
protected final String type;
|
||||
|
||||
/**
|
||||
* Режим срабатывания Unit-а.
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@Description("Режим срабатывания Unit-а")
|
||||
protected UnitActiveType activeType;
|
||||
|
||||
@Getter
|
||||
private String uuid = UUID.randomUUID().toString();
|
||||
|
||||
protected MainUnit(Set<String> keyWords,
|
||||
String phrase,
|
||||
Pattern pattern,
|
||||
Integer matchThreshold,
|
||||
Integer priority,
|
||||
Set<MainUnit> nextUnits,
|
||||
UnitActiveType activeType,
|
||||
String type) {
|
||||
protected MainUnit(
|
||||
Set<String> keyWords,
|
||||
String phrase,
|
||||
Pattern pattern,
|
||||
Integer matchThreshold,
|
||||
Integer priority,
|
||||
Set<MainUnit> nextUnits,
|
||||
UnitActiveType activeType,
|
||||
String type
|
||||
) {
|
||||
super(keyWords, phrase, pattern, matchThreshold, priority, nextUnits);
|
||||
this.activeType = Optional.ofNullable(activeType).orElse(UnitActiveType.DEFAULT);
|
||||
this.type = type;
|
||||
|
@ -1,8 +1,9 @@
|
||||
package dev.struchkov.godfather.core.service.save.jpa;
|
||||
|
||||
import dev.struchkov.godfather.context.domain.BasicEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.MappedSuperclass;
|
||||
@ -12,9 +13,10 @@ import javax.persistence.MappedSuperclass;
|
||||
*
|
||||
* @author upagge [01/08/2019]
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Getter
|
||||
@Setter
|
||||
@MappedSuperclass
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public abstract class SaveObjectJpa extends BasicEntity {
|
||||
|
||||
@Column(name = "personId")
|
||||
|
57
pom.xml
57
pom.xml
@ -35,19 +35,17 @@
|
||||
<godfather.core.ver>0.0.3-SNAPSHOT</godfather.core.ver>
|
||||
<autoresponder.ver>1.9.4-RELEASE</autoresponder.ver>
|
||||
|
||||
<gson.ver>2.8.9</gson.ver>
|
||||
<gson.ver>2.9.0</gson.ver>
|
||||
<mail.ver>1.6.2</mail.ver>
|
||||
<lombok.ver>1.18.22</lombok.ver>
|
||||
<spring.data.jpa.ver>2.6.1</spring.data.jpa.ver>
|
||||
<javax.persistence.api.ver>2.2</javax.persistence.api.ver>
|
||||
<validation.api.ver>2.0.1.Final</validation.api.ver>
|
||||
<commons.io.ver>2.11.0</commons.io.ver>
|
||||
<xstream.ver>1.4.15</xstream.ver>
|
||||
<slf4j.api.ver>1.7.36</slf4j.api.ver>
|
||||
|
||||
<plugin.maven.compiler.ver>3.9.0</plugin.maven.compiler.ver>
|
||||
<plugin.nexus.staging.ver>1.6.8</plugin.nexus.staging.ver>
|
||||
<plugin.nexus.staging.ver>1.6.12</plugin.nexus.staging.ver>
|
||||
<plugin.maven.source.ver>3.2.1</plugin.maven.source.ver>
|
||||
<plugin.maven.javadoc.ver>3.3.1</plugin.maven.javadoc.ver>
|
||||
<plugin.maven.javadoc.ver>3.3.2</plugin.maven.javadoc.ver>
|
||||
<plugin.maven.gpg.ver>3.0.1</plugin.maven.gpg.ver>
|
||||
</properties>
|
||||
|
||||
@ -68,11 +66,6 @@
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>${lombok.ver}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.data</groupId>
|
||||
<artifactId>spring-data-jpa</artifactId>
|
||||
<version>${spring.data.jpa.ver}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.persistence</groupId>
|
||||
<artifactId>javax.persistence-api</artifactId>
|
||||
@ -96,9 +89,9 @@
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>${commons.io.ver}</version>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
<version>${slf4j.api.ver}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
@ -110,19 +103,20 @@
|
||||
<groupId>org.sonatype.plugins</groupId>
|
||||
<artifactId>nexus-staging-maven-plugin</artifactId>
|
||||
<version>${plugin.nexus.staging.ver}</version>
|
||||
<extensions>true</extensions>
|
||||
<configuration>
|
||||
<serverId>ossrh</serverId>
|
||||
<nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
|
||||
<autoReleaseAfterClose>true</autoReleaseAfterClose>
|
||||
</configuration>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.thoughtworks.xstream</groupId>
|
||||
<artifactId>xstream</artifactId>
|
||||
<version>${xstream.ver}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>${plugin.maven.compiler.ver}</version>
|
||||
<configuration>
|
||||
<source>${java.version}</source>
|
||||
<target>${java.version}</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
@ -164,15 +158,6 @@
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>${plugin.maven.compiler.ver}</version>
|
||||
<configuration>
|
||||
<source>${java.version}</source>
|
||||
<target>${java.version}</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
|
||||
@ -181,6 +166,14 @@
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-source-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
@ -226,9 +219,9 @@
|
||||
<developers>
|
||||
<developer>
|
||||
<id>uPagge</id>
|
||||
<organization>SADTECH</organization>
|
||||
<name>Struchkov Mark</name>
|
||||
<email>mark@struchkov.dev</email>
|
||||
<url>https://struchkov.dev</url>
|
||||
</developer>
|
||||
</developers>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user