/** * private функция формирования данных для рассылки * * @param array $arrData - массив данных, необходимых для рассылки * * @return */ private function createSubscriptionData($arrData) { /** * ФОРМИРУЕМ ЗАПРОС */ // формируем основной запрос для выборки объявлений $strWhere = "id_section IN (" . secure::escQuoteData($arrData['id_section']) . ") AND id_region IN (" . secure::escQuoteData($arrData['id_region']) . ") AND (TO_DAYS(NOW())-TO_DAYS(act_datetime))<=" . $arrData['period']; // добавляем в запрос город $arrData['id_city'] ? $strWhere .= " AND id_city IN (" . secure::escQuoteData($arrData['id_city']) . ")" : null; // добавляем в запрос профессию if ($arrData['id_profession']) { switch ($arrData['type_subscription']) { case 'vacancy': $strWhere .= " AND id_profession IN (" . secure::escQuoteData($arrData['id_profession']) . ")"; break; case 'resume': $strWhere .= " AND (id_profession IN (" . secure::escQuoteData($arrData['id_profession']) . ") OR id_profession_1 IN (" . secure::escQuoteData($arrData['id_profession']) . ") OR id_profession_2 IN (" . secure::escQuoteData($arrData['id_profession']) . "))"; break; } } /** * ВЫПОЛНЯЕМ ЗАПРОС */ // меняем рабочую таблицу, на таблицу объявлений $this->changeTable($arrData['type_subscription']); // формируем список полей, которые необходимо получить //$arrFields = array('id', 'title', 'id_section', 'id_region', 'id_city', 'pay_from', 'currency'); //('vacancy' === $arrData['type_subscription']) ? array_push($arrFields, 'pay_post') : null; // получаем список объявлений, соответствующих параметрам подписки if ('vacancy' === $arrData['type_subscription']) { $vacancy = new vacancy(); $arrAnnounces = $vacancy->getActiveAnnounces(false, $strWhere); } else { $resume = new resume(); $arrAnnounces = $resume->getActiveAnnounces(false, $strWhere); } // меняем рабочую таблицу, на таблицу подписок $this->changeTable('subscription'); return $this->prepareSubscriptionData($arrData, $arrAnnounces); }