Мы пытаемся создать универсальную службу регистрации оповещений для потребителей.Вот проблема, которую мы пытаемся решить:
- В предупреждении может быть зарегистрировано 'N' шаблонов. Каждый шаблон будет выбран на основе соответствия правил
правило будет выглядеть примерно так:
{"rule1": {"fieldName": "field1", "operator": ">", "value": "100"}
FieldName может быть чем-то вроде - accountBal, status и т. Д. Оператором могут быть арифметические операторы, такие как ("+", "-", "/", "*") или логические операции, такие как (&&, ==, ||).планируем определить службу / регистрации и службу / выполнить.
Давайте возьмем правило, скажем: rule1 = field1> 100 -> выберите шаблон 1 rule2 = field1> = 100 &&field2 <150 - Выберите шаблон 2 </p>
По сути, я представляю это так:
abstract class Rule
{
private String field;
private Operator symbol;
private String fieldValue
}
Правило -> может разрешить до N шаблонов, и система должна выслать мне список шаблоновназад.
Я начал смотреть на образец Интерпретатора и образец Правила, но я не нашел, на что смотрю.
БаМне нужен способ настроить правила (будут отправлены как json) из сервисного API и храниться в БД.В runTime, основанном на applicationId, будет запущено множество правил, которые будут возвращать List<Template>
. Любая помощь будет принята.
Я планировал использовать пользовательский обработчик правил с StandardEvaluationContext, нопример поможет мне начать работу.