Ejemplo n.º 1
0
 public function getTotalPage($where, $category = 'all')
 {
     $where = strtolower($where);
     $var_cache = 'total' . ucfirst($where) . ucfirst($category) . 'FacebookPages';
     if (!Cache::has($var_cache)) {
         $is_have_category = false;
         $id_category = NULL;
         if ($category != 'all') {
             $category_search = FacebookCategory::whereCategory($category)->first();
             if ($category_search) {
                 $id_category = $category_search->id_category;
                 $is_have_category = true;
             } else {
                 return 'Invalid method';
             }
         }
         switch ($where) {
             case 'world':
                 if ($is_have_category) {
                     $data['total'] = FacebookPage::whereCategoryId($id_category)->where(function ($query) {
                         $query->whereParent(0)->orWhereRaw('id_page = parent');
                     })->count();
                 } else {
                     $data['total'] = FacebookPage::whereParent(0)->orWhereRaw('id_page = parent')->count();
                 }
                 break;
             case 'hispanic':
                 if ($is_have_category) {
                     $data['total'] = FacebookPage::whereIdiom('es')->whereCategoryId($id_category)->where(function ($query) {
                         $query->whereParent(0)->orWhereRaw('id_page = parent');
                     })->count();
                 } else {
                     $data['total'] = FacebookPage::whereIdiom('es')->where(function ($query) {
                         $query->whereParent(0)->orWhereRaw('id_page = parent');
                     })->count();
                 }
                 break;
             default:
                 $country_idiom = FacebookCountry::whereIdiom($where)->first();
                 $country = FacebookCountry::whereSlug($where)->first();
                 if ($country) {
                     if ($is_have_category) {
                         $data['total'] = FacebookPageLocalFans::where('country_code', strtoupper($country->code))->whereCategoryId($id_category)->where(function ($query) {
                             $query->whereParent(0)->orWhereRaw('id_page = parent');
                         })->count();
                     } else {
                         $data['total'] = FacebookPageLocalFans::where('country_code', strtoupper($country->code))->where(function ($query) {
                             $query->whereParent(0)->orWhereRaw('id_page = parent');
                         })->count();
                     }
                 } elseif ($country_idiom) {
                     if ($is_have_category) {
                         $data['total'] = FacebookPage::whereIdiom($where)->whereCategoryId($id_category)->where(function ($query) {
                             $query->whereParent(0)->orWhereRaw('id_page = parent');
                         })->count();
                     } else {
                         $data['total'] = FacebookPage::whereIdiom($where)->where(function ($query) {
                             $query->whereParent(0)->orWhereRaw('id_page = parent');
                         })->count();
                     }
                 } else {
                     return 'Invalid method';
                 }
         }
         Cache::put($var_cache, $data, 1440);
     }
     return Cache::get($var_cache);
 }