Теперь есть дефолтный ответ, если ни один из юнитов не подошел
This commit is contained in:
parent
9c821ee1fb
commit
666e9223ea
@ -24,6 +24,7 @@ public class Autoresponder {
|
|||||||
private static final UnitPriorityComparator UNIT_PRIORITY_COMPARATOR = new UnitPriorityComparator();
|
private static final UnitPriorityComparator UNIT_PRIORITY_COMPARATOR = new UnitPriorityComparator();
|
||||||
|
|
||||||
private final Set<Unit> startUnits;
|
private final Set<Unit> startUnits;
|
||||||
|
private Unit defaultUnit;
|
||||||
private final UnitPointerService unitPointerService;
|
private final UnitPointerService unitPointerService;
|
||||||
|
|
||||||
public Autoresponder(UnitPointerService unitPointerService, Set<Unit> startUnits) {
|
public Autoresponder(UnitPointerService unitPointerService, Set<Unit> startUnits) {
|
||||||
@ -35,18 +36,26 @@ public class Autoresponder {
|
|||||||
return unitPointerService;
|
return unitPointerService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setDefaultUnit(Unit defaultUnit) {
|
||||||
|
this.defaultUnit = defaultUnit;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Возвращает unit на основании сообщения пользователя
|
Возвращает unit на основании сообщения пользователя
|
||||||
*/
|
*/
|
||||||
public Unit answer(Integer personId, String message) {
|
public Unit answer(Integer personId, String message) {
|
||||||
UnitPointer unitPointer = checkAndAddPerson(personId);
|
UnitPointer unitPointer = checkAndAddPerson(personId);
|
||||||
Unit unit;
|
Unit unit;
|
||||||
|
try {
|
||||||
if (unitPointer.getUnit() == null || unitPointer.getUnit().getNextUnits() == null) {
|
if (unitPointer.getUnit() == null || unitPointer.getUnit().getNextUnits() == null) {
|
||||||
unit = nextUnit(startUnits, message); // выбирает unit из startUnits, если пользователь обращается впервые
|
unit = nextUnit(startUnits, message); // выбирает unit из startUnits, если пользователь обращается впервые
|
||||||
} else {
|
} else {
|
||||||
unit = nextUnit(unitPointer.getUnit().getNextUnits(), message);
|
unit = nextUnit(unitPointer.getUnit().getNextUnits(), message);
|
||||||
}
|
}
|
||||||
unitPointerService.edit(personId, unit);
|
unitPointerService.edit(personId, unit);
|
||||||
|
} catch (NotFoundUnitException e) {
|
||||||
|
unit = defaultUnit;
|
||||||
|
}
|
||||||
return unit;
|
return unit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user