Ejemplo n.º 1
0
 /**
  * Получить список отношений друзей используя единый кеш
  *
  * @param  array $aUserId	Список ID пользователей проверяемых на дружбу
  * @param  int $sUserId	ID пользователя у которого проверяем друзей
  * @return array
  */
 public function GetFriendsByArraySolid($aUserId, $sUserId)
 {
     if (!is_array($aUserId)) {
         $aUserId = array($aUserId);
     }
     $aUserId = array_unique($aUserId);
     $aFriends = array();
     $s = join(',', $aUserId);
     if (false === ($data = $this->Cache_Get("user_friend_{$sUserId}_id_{$s}"))) {
         $data = $this->oMapper->GetFriendsByArrayId($aUserId, $sUserId);
         foreach ($data as $oFriend) {
             $aFriends[$oFriend->getFriendId($sUserId)] = $oFriend;
         }
         $this->Cache_Set($aFriends, "user_friend_{$sUserId}_id_{$s}", array("friend_change_user_{$sUserId}"), 60 * 60 * 24 * 1);
         return $aFriends;
     }
     return $data;
 }
Ejemplo n.º 2
0
 /**
  * Получить список отношений друзей используя единый кеш
  *
  * @param  array $aUsersId    Список ID пользователей проверяемых на дружбу
  * @param  int   $nUserId    ID пользователя у которого проверяем друзей
  *
  * @return ModuleUser_EntityFriend[]
  */
 public function GetFriendsByArraySolid($aUsersId, $nUserId)
 {
     if (!$aUsersId) {
         return array();
     } elseif (!is_array($aUsersId)) {
         $aUsersId = array($aUsersId);
     } else {
         $aUsersId = array_unique($aUsersId);
     }
     $aFriends = array();
     $sCacheKey = "user_friend_{$nUserId}_id_" . join(',', $aUsersId);
     if (false === ($data = E::ModuleCache()->Get($sCacheKey))) {
         $data = $this->oMapper->GetFriendsByArrayId($aUsersId, $nUserId);
         foreach ($data as $oFriend) {
             $aFriends[$oFriend->getFriendId($nUserId)] = $oFriend;
         }
         E::ModuleCache()->Set($aFriends, $sCacheKey, array("friend_change_user_{$nUserId}"), 'P1D');
         return $aFriends;
     }
     return $data;
 }