/** * @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; }