/** * Получить список голосований по списку айдишников, но используя единый кеш * * @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; }
/** * Получить список голосований по списку айдишников, но используя единый кеш * * @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; }