Esempio n. 1
0
 /**
  * 取得整个未读消息列表
  * @param  $isGroup	是否进行分组
  * return array
  */
 public function getUnreadMessageList($isGroup = false)
 {
     $hKey = self::UNREAD_KEY . '_' . $this->userId;
     try {
         $data = $this->getUserRedis()->hgetall($hKey);
     } catch (\RedisException $e) {
         Log::error(self::LOG_DIR . '/unread', __METHOD__ . ':' . $e->getMessage());
         return array();
     }
     if (!$isGroup) {
         return empty($data) ? array() : $data;
     }
     $tmpArr = array();
     foreach ($data as $messageId => $sender) {
         $tmpArr[$sender][] = $messageId;
     }
     return $tmpArr;
 }
Esempio n. 2
0
 /**
  * 缓存count或者更新count   
  * @param int $sender
  * @param int $receiver
  * @param array $updateData
  * @return boolean
  */
 private function cacheCount($sender, $receiver, $updateData = array())
 {
     try {
         //缓存往来消息总数
         $contactKey_1 = Cache::CONTACT_MESSAGE_COUNT . '_' . $sender . '_' . $receiver;
         if ($total = $this->getCacheRedis()->get($contactKey_1)) {
             if (isset($updateData['senderDeleted']) && $updateData['senderDeleted'] == 1) {
                 $this->getCacheRedis()->set($contactKey_1, $total - 1);
             } else {
                 $this->getCacheRedis()->incr($contactKey_1);
             }
         }
         $contactKey_2 = Cache::CONTACT_MESSAGE_COUNT . '_' . $receiver . '_' . $sender;
         if ($total = $this->getCacheRedis()->get($contactKey_2)) {
             if (isset($updateData['receiverDeleted']) && $updateData['receiverDeleted'] == 1) {
                 $this->getCacheRedis()->set($contactKey_2, $total - 1);
             } else {
                 $this->getCacheRedis()->incr($contactKey_2);
             }
         }
         //缓存收件箱
         $inBoxKey = Cache::INBOX_COUNT . '_' . $receiver;
         if ($total = $this->getCacheRedis()->get($inBoxKey)) {
             if (isset($updateData['receiverDeleted']) && $updateData['receiverDeleted'] == 1) {
                 $this->getCacheRedis()->set($inBoxKey, $total - 1);
             } else {
                 $this->getCacheRedis()->incr($inBoxKey);
             }
         }
         //缓存发件箱
         $outBoxKey = Cache::OUTBOX_COUNT . '_' . $sender;
         if ($total = $this->getCacheRedis()->get($outBoxKey)) {
             if (isset($updateData['senderDeleted']) && $updateData['senderDeleted'] == 1) {
                 $this->getCacheRedis()->set($outBoxKey, $total - 1);
             } else {
                 $this->getCacheRedis()->incr($outBoxKey);
             }
         }
     } catch (\RedisException $e) {
         Log::error(self::LOG_DIR . '/cache', $e->getMessage());
         return false;
     }
     return true;
 }