Example #1
0
 /**
  * Получить список голосований по списку айдишников, но используя единый кеш
  *
  * @param array $aTargetId	Список ID владельцев
  * @param string $sTargetType	Тип владельца
  * @param int $sUserId	ID пользователя
  * @return array
  */
 public function GetVoteByArraySolid($aTargetId, $sTargetType, $sUserId)
 {
     if (!is_array($aTargetId)) {
         $aTargetId = array($aTargetId);
     }
     $aTargetId = array_unique($aTargetId);
     $aVote = array();
     $s = join(',', $aTargetId);
     if (false === ($data = $this->Cache_Get("vote_{$sTargetType}_{$sUserId}_id_{$s}"))) {
         $data = $this->oMapper->GetVoteByArray($aTargetId, $sTargetType, $sUserId);
         foreach ($data as $oVote) {
             $aVote[$oVote->getTargetId()] = $oVote;
         }
         $this->Cache_Set($aVote, "vote_{$sTargetType}_{$sUserId}_id_{$s}", array("vote_update_{$sTargetType}_{$sUserId}", "vote_update_{$sTargetType}"), 60 * 60 * 24 * 1);
         return $aVote;
     }
     return $data;
 }
Example #2
0
 /**
  * Получить список голосований по списку айдишников, но используя единый кеш
  *
  * @param array|int $aTargetId   Список ID владельцев
  * @param string    $sTargetType Тип владельца
  * @param int       $iUserId     ID пользователя
  *
  * @return array
  */
 public function GetVoteByArraySolid($aTargetId, $sTargetType, $iUserId)
 {
     if (!is_array($aTargetId)) {
         $aTargetId = array($aTargetId);
     }
     $aTargetId = array_unique($aTargetId);
     $aVote = array();
     $sCacheKey = "vote_{$sTargetType}_{$iUserId}_id_" . join(',', $aTargetId);
     if (false === ($data = E::ModuleCache()->Get($sCacheKey))) {
         $data = $this->oMapper->GetVoteByArray($aTargetId, $sTargetType, $iUserId);
         foreach ($data as $oVote) {
             $aVote[$oVote->getTargetId()] = $oVote;
         }
         E::ModuleCache()->Set($aVote, $sCacheKey, array("vote_update_{$sTargetType}_{$iUserId}", "vote_update_{$sTargetType}"), 'P1D');
         return $aVote;
     }
     return $data;
 }