Рефакторинг
This commit is contained in:
parent
f5bf79f441
commit
badfe1915f
16
pom.xml
16
pom.xml
@ -42,18 +42,12 @@
|
|||||||
</distributionManagement>
|
</distributionManagement>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<slf4j.ver>1.7.26</slf4j.ver>
|
|
||||||
<junit.ver>4.12</junit.ver>
|
<junit.ver>4.12</junit.ver>
|
||||||
<lombok.ver>1.18.6</lombok.ver>
|
<lombok.ver>1.18.12</lombok.ver>
|
||||||
|
<slf4j.ver>1.7.30</slf4j.ver>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
|
||||||
<groupId>org.slf4j</groupId>
|
|
||||||
<artifactId>slf4j-api</artifactId>
|
|
||||||
<version>${slf4j.ver}</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>junit</groupId>
|
<groupId>junit</groupId>
|
||||||
<artifactId>junit</artifactId>
|
<artifactId>junit</artifactId>
|
||||||
@ -65,6 +59,12 @@
|
|||||||
<artifactId>lombok</artifactId>
|
<artifactId>lombok</artifactId>
|
||||||
<version>${lombok.ver}</version>
|
<version>${lombok.ver}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-api</artifactId>
|
||||||
|
<version>${slf4j.ver}</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<scm>
|
<scm>
|
||||||
|
@ -9,6 +9,7 @@ import org.sadtech.autoresponder.entity.Unit;
|
|||||||
import org.sadtech.autoresponder.entity.UnitPointer;
|
import org.sadtech.autoresponder.entity.UnitPointer;
|
||||||
import org.sadtech.autoresponder.service.UnitPointerService;
|
import org.sadtech.autoresponder.service.UnitPointerService;
|
||||||
import org.sadtech.autoresponder.util.Description;
|
import org.sadtech.autoresponder.util.Description;
|
||||||
|
import org.sadtech.autoresponder.util.Message;
|
||||||
import org.sadtech.autoresponder.util.Parser;
|
import org.sadtech.autoresponder.util.Parser;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@ -115,10 +116,10 @@ public class AutoResponder<U extends Unit> {
|
|||||||
if (keyWords != null && !keyWords.isEmpty()) {
|
if (keyWords != null && !keyWords.isEmpty()) {
|
||||||
Set<String> temp = new HashSet<>(keyWords);
|
Set<String> temp = new HashSet<>(keyWords);
|
||||||
temp.retainAll(words);
|
temp.retainAll(words);
|
||||||
log.info("Ключевые слова юнита: {} ({})", keyWords, keyWords.size());
|
log.trace(Message.UNIT_KEYWORDS, keyWords, keyWords.size());
|
||||||
log.info("Ключевые слова от пользователя: {}", words);
|
log.trace(Message.USER_MESSAGE_KEYWORDS, words);
|
||||||
log.info("Пересечение: {} ({})", temp, temp.size());
|
log.trace(Message.INTERSECTION, temp, temp.size());
|
||||||
log.info("Процент: {} Необходимо: {}", (double) temp.size() / (double) keyWords.size() * 100.0, unit.getMatchThreshold());
|
log.trace(Message.CROSSING_PERCENTAGE, (double) temp.size() / (double) keyWords.size() * 100.0, unit.getMatchThreshold());
|
||||||
return (double) temp.size() / (double) keyWords.size() * 100.0;
|
return (double) temp.size() / (double) keyWords.size() * 100.0;
|
||||||
} else {
|
} else {
|
||||||
return 0.0;
|
return 0.0;
|
||||||
|
@ -12,13 +12,8 @@ import java.util.Comparator;
|
|||||||
public class UnitPriorityComparator implements Comparator<Unit> {
|
public class UnitPriorityComparator implements Comparator<Unit> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int compare(Unit o1, Unit o2) {
|
public int compare(Unit unit1, Unit unit2) {
|
||||||
if (o1.getPriority() < o2.getPriority()) {
|
return Integer.compare(unit1.getPriority(), unit2.getPriority());
|
||||||
return -1;
|
|
||||||
} else if (o1.getPriority().equals(o2.getPriority())) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,6 @@ import lombok.Setter;
|
|||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import org.sadtech.autoresponder.util.Description;
|
import org.sadtech.autoresponder.util.Description;
|
||||||
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
@ -48,8 +47,8 @@ public abstract class Unit<U extends Unit> {
|
|||||||
this.keyWords = keyWords;
|
this.keyWords = keyWords;
|
||||||
this.phrase = phrase;
|
this.phrase = phrase;
|
||||||
this.pattern = pattern;
|
this.pattern = pattern;
|
||||||
this.matchThreshold = Optional.ofNullable(matchThreshold).orElse(10);
|
this.matchThreshold = matchThreshold == null ? 10 : matchThreshold;
|
||||||
this.priority = Optional.ofNullable(priority).orElse(10);
|
this.priority = priority == null ? 10 : matchThreshold;
|
||||||
this.nextUnits = nextUnits;
|
this.nextUnits = nextUnits;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,14 +15,6 @@ public interface UnitPointerService<U extends Unit> {
|
|||||||
|
|
||||||
void save(@NonNull UnitPointer<U> unitPointer);
|
void save(@NonNull UnitPointer<U> unitPointer);
|
||||||
|
|
||||||
/**
|
|
||||||
* Проверка наличия {@link UnitPointer} для пользователя
|
|
||||||
*
|
|
||||||
* @param entityId Идентификатор пользователя
|
|
||||||
* @return true - если найдено
|
|
||||||
*/
|
|
||||||
boolean existsByEntityId(@NonNull Long entityId);
|
|
||||||
|
|
||||||
Optional<UnitPointer<U>> getByEntityId(@NonNull Long entityId);
|
Optional<UnitPointer<U>> getByEntityId(@NonNull Long entityId);
|
||||||
|
|
||||||
void removeByEntityId(@NonNull Long entityId);
|
void removeByEntityId(@NonNull Long entityId);
|
||||||
|
@ -31,9 +31,4 @@ public class UnitPointerServiceImpl<U extends Unit> implements UnitPointerServic
|
|||||||
log.trace("Пользователь отправлен в репозиторий");
|
log.trace("Пользователь отправлен в репозиторий");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean existsByEntityId(@NonNull Long entityId) {
|
|
||||||
return unitPointerRepository.findByEntityId(entityId).isPresent();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -5,9 +5,13 @@ package org.sadtech.autoresponder.util;
|
|||||||
*
|
*
|
||||||
* @author upagge [22.08.2019]
|
* @author upagge [22.08.2019]
|
||||||
*/
|
*/
|
||||||
final class Message {
|
public final class Message {
|
||||||
|
|
||||||
static final String UTILITY_CLASS = "Клас утилита";
|
static final String UTILITY_CLASS = "Клас утилита";
|
||||||
|
public static final String UNIT_KEYWORDS = "Ключевые слова юнита: {} ({})";
|
||||||
|
public static final String USER_MESSAGE_KEYWORDS = "Ключевые слова от пользователя: {}";
|
||||||
|
public static final String INTERSECTION = "Пересечение: {} ({})";
|
||||||
|
public static final String CROSSING_PERCENTAGE = "Процент: {} Необходимо: {}";
|
||||||
|
|
||||||
private Message() {
|
private Message() {
|
||||||
throw new IllegalStateException(UTILITY_CLASS);
|
throw new IllegalStateException(UTILITY_CLASS);
|
||||||
|
@ -16,15 +16,18 @@ import static org.sadtech.autoresponder.util.Message.UTILITY_CLASS;
|
|||||||
public class Parser {
|
public class Parser {
|
||||||
|
|
||||||
@Description("Множество предлогов")
|
@Description("Множество предлогов")
|
||||||
private static final Set<String> pretexts = Collections.unmodifiableSet(new HashSet<>(Arrays.asList("в", "без", "до", "из", "к", "на", "по", "о", "от", "перед", "при", "с", "у", "за", "над", "об",
|
private static final Set<String> pretexts = Collections.unmodifiableSet(
|
||||||
"под", "про", "для")));
|
new HashSet<>(Arrays.asList(
|
||||||
|
"в", "без", "до", "из", "к", "на", "по", "о", "от", "перед", "при", "с", "у", "за", "над", "об",
|
||||||
|
"под", "про", "для"
|
||||||
|
)));
|
||||||
|
|
||||||
private Parser() {
|
private Parser() {
|
||||||
throw new IllegalStateException(UTILITY_CLASS);
|
throw new IllegalStateException(UTILITY_CLASS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Метод по разбиению строки на множество слов
|
* Метод по разбиению строки на множество слов.
|
||||||
*
|
*
|
||||||
* @param text Строка
|
* @param text Строка
|
||||||
* @return Множество слов
|
* @return Множество слов
|
||||||
|
Loading…
Reference in New Issue
Block a user