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