getValue($key); if($res){ return unserialize($res); }else{ $user = RUser::get(new MongoId($id)); if($user){ $data = $user->parseRow($user); $cache->setValue($key,serialize($data)); return $data; }else{ return false; } } } public static function getCityUsers($city){ if(!$city){ return false; } $cache = new ARedisCache(); $key = 'city_users_'.md5($city); $data_cache = $cache->get($key); $res = array(); if($data_cache && false){ $res = unserialize($data_cache); }else{ $criteria = new EMongoCriteria; $criteria->city_info->city('==',$city); $criteria->certify_status('!=',1); $criteria->sort('topic_count',EMongoCriteria::SORT_DESC); $criteria->limit(30); $cursor = RUser::model()->findAll($criteria); $res = RUser::model()->parse($cursor,true,array('id','user_name','sex','avatar','level','city_info','pets','certify_status','certify_info','can_access','last_visit_time')); $cache->set($key,serialize($res),3600); } return $res; } public static function getCertifyUser($cerity_type = 'all'){ $cache = new ARedisCache(); $key = 'city_users_'.md5($cerity_type); $data_cache = $cache->get($key); $res = array(); if($data_cache && false){ $res = unserialize($data_cache); }else{ $criteria = new EMongoCriteria; if($cerity_type != 'all' && !empty($cerity_type)){ $criteria->certify_type('==',$cerity_type); } $criteria->sort('topic_count',EMongoCriteria::SORT_DESC); $criteria->certify_status('==',1); $criteria->limit(20); $cursor = RUser::model()->findAll($criteria); $res = RUser::model()->parse($cursor,true,array('id','user_name','sex','avatar','level','city_info','pets','certify_status','certify_info','can_access','last_visit_time')); $cache->set($key,serialize($res),3600); } return $res; } }