/** * Возвращает массив пользователей, участвующих в разговоре * * @param int $sTalkId ID разговора * @return array */ public function GetTalkUsersByTalkId($sTalkId, $aAllowData = null) { if (is_null($aAllowData)) { $aAllowData = array('user' => array()); } if (false === ($aTalkUsers = $this->Cache_Get("talk_relation_user_by_talk_id_{$sTalkId}"))) { $aTalkUsers = $this->oMapper->GetTalkUsers($sTalkId); $this->Cache_Set($aTalkUsers, "talk_relation_user_by_talk_id_{$sTalkId}", array("update_talk_user_{$sTalkId}"), 60 * 60 * 24 * 1); } if ($aTalkUsers) { $aUserId = array(); foreach ($aTalkUsers as $oTalkUser) { $aUserId[] = $oTalkUser->getUserId(); } $aUsers = $this->User_GetUsersAdditionalData($aUserId, isset($aAllowData['user']) && is_array($aAllowData['user']) ? $aAllowData['user'] : null); foreach ($aTalkUsers as $oTalkUser) { if (isset($aUsers[$oTalkUser->getUserId()])) { $oTalkUser->setUser($aUsers[$oTalkUser->getUserId()]); } else { $oTalkUser->setUser(null); } } } return $aTalkUsers; }
/** * Возвращает массив пользователей, участвующих в разговоре * * @param int $nTalkId ID разговора * * @return array */ public function GetTalkUsersByTalkId($nTalkId) { $sCacheKey = "talk_relation_user_by_talk_id_{$nTalkId}"; if (false === ($aTalkUsers = E::ModuleCache()->Get($sCacheKey))) { $aTalkUsers = $this->oMapper->GetTalkUsers($nTalkId); E::ModuleCache()->Set($aTalkUsers, $sCacheKey, array("update_talk_user_{$nTalkId}"), 'P1D'); } if ($aTalkUsers) { $aUserId = array(); foreach ($aTalkUsers as $oTalkUser) { $aUserId[] = $oTalkUser->getUserId(); } $aUsers = E::ModuleUser()->GetUsersAdditionalData($aUserId); foreach ($aTalkUsers as $oTalkUser) { if (isset($aUsers[$oTalkUser->getUserId()])) { $oTalkUser->setUser($aUsers[$oTalkUser->getUserId()]); } else { $oTalkUser->setUser(null); } } } return $aTalkUsers; }