Небольшие правки

This commit is contained in:
Mark Struchkov 2019-01-21 21:21:29 +03:00
parent 2947942971
commit 55d164764e
6 changed files with 85 additions and 96 deletions

View File

@ -30,10 +30,10 @@ public class Autoresponder {
if (person.getUnit() == null) { if (person.getUnit() == null) {
unit = nextUnit(unitService.menuUnit(), message); unit = nextUnit(unitService.menuUnit(), message);
} else { } else {
if (person.getUnit().getNextUnits() != null) { if (person.getUnit().getNextUnits() == null) {
unit = nextUnit(person.getUnit().getNextUnits(), message);
} else {
unit = nextUnit(unitService.menuUnit(), message); unit = nextUnit(unitService.menuUnit(), message);
} else {
unit = nextUnit(person.getUnit().getNextUnits(), message);
} }
} }
if (unit!=null) { if (unit!=null) {

View File

@ -9,18 +9,17 @@ public abstract class Unit {
private Set<String> keyWords; private Set<String> keyWords;
private Integer matchThreshold; private Integer matchThreshold;
private Integer priority; private Integer priority;
private Boolean level;
private List<Unit> nextUnits; private List<Unit> nextUnits;
public Unit() { public Unit() {
level = false; priority = 10;
matchThreshold = 50;
} }
public Unit(Set<String> keyWords, Integer matchThreshold, Integer priority, Boolean level, List<Unit> nextUnits) { public Unit(Set<String> keyWords, Integer matchThreshold, Integer priority, Boolean level, List<Unit> nextUnits) {
this.keyWords = keyWords; this.keyWords = keyWords;
this.matchThreshold = matchThreshold; this.matchThreshold = matchThreshold;
this.priority = priority; this.priority = priority;
this.level = level;
this.nextUnits = nextUnits; this.nextUnits = nextUnits;
} }
@ -48,14 +47,6 @@ public abstract class Unit {
this.priority = priority; this.priority = priority;
} }
public Boolean getLevel() {
return level;
}
public void setLevel(Boolean level) {
this.level = level;
}
public List<Unit> getNextUnits() { public List<Unit> getNextUnits() {
return nextUnits; return nextUnits;
} }
@ -72,12 +63,11 @@ public abstract class Unit {
return Objects.equals(keyWords, unit.keyWords) && return Objects.equals(keyWords, unit.keyWords) &&
Objects.equals(matchThreshold, unit.matchThreshold) && Objects.equals(matchThreshold, unit.matchThreshold) &&
Objects.equals(priority, unit.priority) && Objects.equals(priority, unit.priority) &&
Objects.equals(level, unit.level) &&
Objects.equals(nextUnits, unit.nextUnits); Objects.equals(nextUnits, unit.nextUnits);
} }
@Override @Override
public int hashCode() { public int hashCode() {
return Objects.hash(keyWords, matchThreshold, priority, level, nextUnits); return Objects.hash(keyWords, matchThreshold, priority, nextUnits);
} }
} }

View File

@ -2,14 +2,13 @@ package org.sadtech.autoresponder.repository;
import org.sadtech.autoresponder.entity.Unit; import org.sadtech.autoresponder.entity.Unit;
import java.util.Collection;
import java.util.List; import java.util.List;
public interface UnitRepository<T extends Unit> { public interface UnitRepository<T extends Unit> {
void addUnit(T unit); void addUnit(T unit);
void addUnits(Collection<T> units); void addUnits(List<T> units);
List<T> menuUnits(); List<T> menuUnits();

View File

@ -16,7 +16,7 @@ public class PersonRepositoryMap implements PersonRepository {
@Override @Override
public void removePerson(Person person) { public void removePerson(Person person) {
people.remove(person); people.remove(person.getId());
} }
@Override @Override

View File

@ -1,33 +1,33 @@
package org.sadtech.autoresponder.submodule.insertwords; //package org.sadtech.autoresponder.submodule.insertwords;
//
import lombok.Getter; //import lombok.Getter;
import lombok.Setter; //import lombok.Setter;
//
import java.util.List; //import java.util.List;
import java.util.regex.Matcher; //import java.util.regex.Matcher;
import java.util.regex.Pattern; //import java.util.regex.Pattern;
//
public class InsertWords { //public class InsertWords {
//
@Setter // @Setter
private String inText; // private String inText;
@Getter // @Getter
private String outText; // private String outText;
//
public void insert(List<String> words) { // public void insert(List<String> words) {
Pattern pattern = Pattern.compile("\\{(\\d+)}"); // Задаем шаблон // Pattern pattern = Pattern.compile("\\{(\\d+)}"); // Задаем шаблон
Matcher m = pattern.matcher(inText); // Инициализация Matcher // Matcher m = pattern.matcher(inText); // Инициализация Matcher
StringBuffer result = new StringBuffer(); // Буфер для конечного значения // StringBuffer result = new StringBuffer(); // Буфер для конечного значения
while (m.find()) { // Проверка на совпадение // while (m.find()) { // Проверка на совпадение
if (Integer.parseInt(m.group(1)) < words.size()) { // if (Integer.parseInt(m.group(1)) < words.size()) {
m.appendReplacement(result, words.get(Integer.parseInt(m.group(1)))); // Подставляем значение из HashMap // m.appendReplacement(result, words.get(Integer.parseInt(m.group(1)))); // Подставляем значение из HashMap
} else { // } else {
m.appendReplacement(result, m.group(0)); // m.appendReplacement(result, m.group(0));
} // }
} // }
m.appendTail(result); // Добавить остаток строки // m.appendTail(result); // Добавить остаток строки
outText = result.toString(); // outText = result.toString();
} // }
//
} //}

View File

@ -1,45 +1,45 @@
package org.sadtech.autoresponder.submodule.insertwords; //package org.sadtech.autoresponder.submodule.insertwords;
//
import org.junit.After; //import org.junit.After;
import org.junit.Assert; //import org.junit.Assert;
import org.junit.Test; //import org.junit.Test;
import org.sadtech.autoresponder.submodule.insertwords.InsertWords; //import org.sadtech.autoresponder.submodule.insertwords.InsertWords;
//
import java.util.ArrayList; //import java.util.ArrayList;
//
public class InsertWordsTest { //public class InsertWordsTest {
//
private ArrayList<String> arrayList = new ArrayList<>(); // private ArrayList<String> arrayList = new ArrayList<>();
private InsertWords insertWords = new InsertWords(); // private InsertWords insertWords = new InsertWords();
//
@After // @After
public void setUp() { // public void setUp() {
//
} // }
//
@Test // @Test
public void insert() { // public void insert() {
insertWords.setInText("Проверка {0} теста"); // insertWords.setInText("Проверка {0} теста");
arrayList.add("первого"); // arrayList.add("первого");
insertWords.insert(arrayList); // insertWords.insert(arrayList);
Assert.assertEquals(insertWords.getOutText(),"Проверка первого теста"); // Assert.assertEquals(insertWords.getOutText(),"Проверка первого теста");
} // }
//
@Test // @Test
public void insert2() { // public void insert2() {
insertWords.setInText("Проверка {0} теста и {1} {теста}"); // insertWords.setInText("Проверка {0} теста и {1} {теста}");
arrayList.add("первого"); // arrayList.add("первого");
arrayList.add("второго"); // arrayList.add("второго");
insertWords.insert(arrayList); // insertWords.insert(arrayList);
Assert.assertEquals(insertWords.getOutText(),"Проверка первого теста и второго {теста}"); // Assert.assertEquals(insertWords.getOutText(),"Проверка первого теста и второго {теста}");
} // }
//
@Test // @Test
public void insert3() { // public void insert3() {
insertWords.setInText("Проверка {1} теста и {0} {теста}"); // insertWords.setInText("Проверка {1} теста и {0} {теста}");
arrayList.add("первого"); // arrayList.add("первого");
arrayList.add("второго"); // arrayList.add("второго");
insertWords.insert(arrayList); // insertWords.insert(arrayList);
Assert.assertEquals(insertWords.getOutText(),"Проверка второго теста и первого {теста}"); // Assert.assertEquals(insertWords.getOutText(),"Проверка второго теста и первого {теста}");
} // }
} //}