/** * Получить список голосований в топике-опросе по списку ID, но используя единый кеш * * @param array $aTopicsId - Список ID топиков * @param int $nUserId - ID пользователя * * @return array */ public function GetTopicsQuestionVoteByArraySolid($aTopicsId, $nUserId) { if (!is_array($aTopicsId)) { $aTopicsId = array($aTopicsId); } $aTopicsId = array_unique($aTopicsId); $aTopicsQuestionVote = array(); $sCacheKey = "topic_question_vote_{$nUserId}_id_" . join(',', $aTopicsId); if (false === ($data = E::ModuleCache()->Get($sCacheKey))) { $data = $this->oMapper->GetTopicsQuestionVoteByArray($aTopicsId, $nUserId); foreach ($data as $oTopicVote) { $aTopicsQuestionVote[$oTopicVote->getTopicId()] = $oTopicVote; } E::ModuleCache()->Set($aTopicsQuestionVote, $sCacheKey, array("topic_question_vote_user_{$nUserId}"), 'P1D'); return $aTopicsQuestionVote; } return $data; }
/** * Получить список голосований в топике-опросе по списку айдишников, но используя единый кеш * * @param array $aTopicId Список ID топиков * @param int $sUserId ID пользователя * @return array */ public function GetTopicsQuestionVoteByArraySolid($aTopicId, $sUserId) { if (!is_array($aTopicId)) { $aTopicId = array($aTopicId); } $aTopicId = array_unique($aTopicId); $aTopicsQuestionVote = array(); $s = join(',', $aTopicId); if (false === ($data = $this->Cache_Get("topic_question_vote_{$sUserId}_id_{$s}"))) { $data = $this->oMapperTopic->GetTopicsQuestionVoteByArray($aTopicId, $sUserId); foreach ($data as $oTopicVote) { $aTopicsQuestionVote[$oTopicVote->getTopicId()] = $oTopicVote; } $this->Cache_Set($aTopicsQuestionVote, "topic_question_vote_{$sUserId}_id_{$s}", array("topic_question_vote_user_{$sUserId}"), 60 * 60 * 24 * 1); return $aTopicsQuestionVote; } return $data; }