Пример #1
0
 public function getRegionDetails($id_region)
 {
     $var_cache = 'facebookRegionDetails' . $id_region;
     if (!Cache::has($var_cache)) {
         $value = FacebookRegion::whereIdRegion($id_region)->first();
         if (!$value) {
             return 'Invalid method';
         }
         /***** Ages *****/
         $cache['ages']['items'] = array();
         $ages = FacebookRegionAge::whereIdRegion($value['id_region'])->orderBy('total_user', 'DESC')->take(5)->get(['name', 'total_user']);
         foreach ($ages as $age) {
             $cache['ages']['items'][] = array('name' => $age['name'], 'total_user' => $this->owloo_number_format($age['total_user']));
         }
         //Get max value
         $cache['ages']['max_user'] = array();
         $age_max_total = FacebookRegionAge::whereIdRegion($value['id_region'])->orderBy('total_user', 'DESC')->orderBy('id', 'ASC')->first(['name', 'total_user']);
         if (isset($age_max_total['name'])) {
             $cache['ages']['max_user'] = array('name' => $age_max_total['name'], 'value' => $this->owloo_number_format($age_max_total['total_user']), 'percent' => $this->owlooFormatPorcent($age_max_total['total_user'], $value['total_user']));
         }
         /***** Relationships *****/
         $cache['relationships']['items'] = array();
         $relationships = FacebookRegionRelationship::whereIdRegion($value['id_region'])->orderBy('total_user', 'DESC')->take(5)->get(['name', 'total_user']);
         foreach ($relationships as $relationship) {
             $cache['relationships']['items'][] = array('name' => $relationship['name'], 'total_user' => $this->owloo_number_format($relationship['total_user']));
         }
         /***** Interests *****/
         $cache['interests']['items'] = array();
         $interests = FacebookRegionInterest::whereIdRegion($value['id_region'])->orderBy('total_user', 'DESC')->take(5)->get(['name', 'total_user']);
         foreach ($interests as $interest) {
             $cache['interests']['items'][] = array('name' => $interest['name'], 'total_user' => $this->owloo_number_format($interest['total_user']));
         }
         //Get the Trend-up
         $cache['interests']['trend_up'] = array();
         $interest_grow = FacebookRegionInterest::whereIdRegion($value['id_region'])->orderBy('grow_30', 'DESC')->orderBy('total_user', 'DESC')->first(['name', 'total_user', 'grow_30']);
         if (isset($interest_grow['name']) && $interest_grow['grow_30'] > 0) {
             $cache['interests']['trend_up'] = array('name' => $interest_grow['name'], 'grow' => $this->formatGrow($interest_grow['grow_30'], $interest_grow['total_user']));
         }
         /***** Comportamientos *****/
         $cache['comportamientos']['items'] = array();
         $comportamientos = FacebookRegionComportamiento::whereIdRegion($value['id_region'])->orderBy('total_user', 'DESC')->take(5)->get(['name', 'total_user']);
         foreach ($comportamientos as $comportamiento) {
             $cache['comportamientos']['items'][] = array('name' => $comportamiento['name'], 'percent' => $this->owlooFormatPorcent($comportamiento['total_user'], $value['total_user']));
         }
         Cache::put($var_cache, $cache, 1440);
     }
     return Cache::get($var_cache);
 }