示例#1
0
 /**
  * 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);
 }