Example #1
0
 /**
  * @param $data
  *
  * @return Rule[]
  */
 public function CalcFitRules($data)
 {
     $eventData = json_decode($data['data'], true);
     if (json_last_error() != JSON_ERROR_NONE) {
         return ['error' => 'JSON error'];
     }
     //Записываем событие в базу
     $this->incomeEvent = new IncomeEvent();
     $this->incomeEvent->newIncomeEvent($data['term'], $data['event'], $eventData);
     //Если не находим событие - отдаём ошибку
     $event = Event::getEvent($data['term'], $data['event']);
     if ($event == null) {
         Log::info('Правило ' . $data['event'] . ' не найдено');
         return ['error' => 'Unknown event'];
     }
     //Получаем все правила теминала по событию
     $rules = Rule::getRules($data['term'], $event->id);
     $countRules = count($rules);
     Log::info("Всего найдено правил: {$countRules}");
     //Определяем соответсвующие запросу правила
     $rulesHandler = new RulesHandler();
     $fitRules = $rulesHandler->getFitRules($rules, $eventData);
     return $fitRules;
 }