Пример #1
0
 /**
  * Uploaded resumes and jobs statistics
  * @return array
  */
 public static function getListingsInfo()
 {
     $res = array();
     // условие запроса сформируем в зависимости от требуемого периода
     $periods = array("Today" => "`l`.`activation_date` >= CURDATE()", "This Week" => "`l`.`activation_date` >= FROM_DAYS(TO_DAYS(CURDATE()) - WEEKDAY(CURDATE()))", "This Month" => "`l`.`activation_date` >= FROM_DAYS(TO_DAYS(CURDATE()) - DAYOFMONTH(CURDATE()) + 1)");
     $listingTypes = SJB_ListingTypeManager::createTemplateStructureForListingTypes();
     // условие в запрос будем подставлять заранее заготовленное из массива
     // nwy: разбил подсчет общего количества и подсчет активных листингов на 2 запроса
     // так быстрее при большом количестве листингов
     foreach ($listingTypes as $listingType) {
         foreach ($periods as $key => $value) {
             $res[$listingType["id"]]["periods"][$key]['count'] = SJB_DB::queryValue("\n\t\t\t\t\tselect count(*)\n\t\t\t\t\tfrom listings l\n\t\t\t\t\twhere {$value} and l.listing_type_sid = {$listingType["sid"]}");
             $res[$listingType["id"]]["periods"][$key]['active'] = SJB_DB::queryValue("\n\t\t\t\t\tselect count(*)\n\t\t\t\t\tfrom listings l\n\t\t\t\t\twhere {$value} and l.listing_type_sid = {$listingType["sid"]} and `l`.`active` = 1");
         }
         $res[$listingType["id"]]["total"]['count'] = SJB_DB::queryValue("\n\t\t\t\tselect\tcount(*)\n\t\t\t\tfrom `listings` `l`\n\t\t\t\twhere `l`.`listing_type_sid` = {$listingType["sid"]}");
         $res[$listingType["id"]]["total"]['active'] = SJB_DB::queryValue("\n\t\t\t\tselect\tcount(*)\n\t\t\t\tfrom `listings` `l`\n\t\t\t\twhere `l`.`listing_type_sid` = {$listingType["sid"]} and `l`.`active` = 1");
         $res[$listingType["id"]]["approveInfo"] = SJB_ListingManager::getListingsApproveInfo($listingType["sid"]);
     }
     return $res;
 }