public function actionConversation() { $messageId = $this->getQuery('messageId'); if (empty($messageId)) { throw new BadRequestHttpException('missing params'); } $chatMessage = ChatMessage::findByPk(new \MongoId($messageId)); if (empty($chatMessage)) { throw new BadRequestHttpException('Invalid message id'); } $conversation = ChatConversation::findByPk($chatMessage->conversationId); $message['content'] = $chatMessage->content; $message['sentTime'] = $chatMessage->sentTime; $result = []; if (empty(!$conversation)) { $accountId = $conversation->accountId; $deskId = $conversation->desk['id']; $openId = $conversation->client['openId']; $result = ['messageId' => $chatMessage->_id . '', 'conversationId' => $conversation->_id . '', 'client' => $conversation->client, 'desk' => ['id' => $deskId . '', 'name' => $conversation->desk['name'], 'badge' => $conversation->desk['badge'], 'email' => $conversation->desk['email'], 'avatar' => $conversation->desk['avatar']], 'channel' => $conversation->conversation, 'chatTimes' => ChatConversation::getChatTimes($deskId, $openId, $accountId), 'lastChatTime' => ChatConversation::getLastChatTime($deskId, $openId, $accountId), 'chatMessage' => $message, 'isReply' => $chatMessage->isReply]; } return $result; }