| | |
| | | use app\api\model\plus\business\chat\Chat as ChatModel; |
| | | use app\api\model\plus\business\chat\Conversation as ConversationModel; |
| | | use app\api\model\plus\business\chat\Participant; |
| | | use app\api\model\settings\Setting as SettingModel; |
| | | use app\api\model\user\User as UserModel; |
| | | use app\common\model\plus\business\Business as BusinessModel; |
| | | |
| | |
| | | |
| | | $conversationModel = new ConversationModel(); |
| | | $conversations = $conversationModel->getUserConversations($param); |
| | | |
| | | // 为每个会话添加未读消息数量 |
| | | $chatModel = new ChatModel(); |
| | | foreach ($conversations as &$conversation) { |
| | | $conversation['unread_count'] = $chatModel->getUnreadCount($conversation['conversation_id'], $param['user_id']); |
| | | |
| | | $chatData=$chatModel->where('conversation_id',$conversation['conversation_id'])->order('create_time','desc')->find(); |
| | | // 获取最后一条消息 |
| | | if (!empty($conversation['messages'])) { |
| | | $conversation['last_message'] = end($conversation['messages']); |
| | | if (!empty($chatData)) { |
| | | $conversation['last_message'] = $chatData; |
| | | } |
| | | } |
| | | |
| | |
| | | $conversationModel = new ConversationModel(); |
| | | |
| | | // 检查是否已存在会话 |
| | | $conversation = $conversationModel->getConversationByBusinessCard($businessCardId); |
| | | $conversation = $conversationModel->getConversationByBusinessCardUser($businessCardId,$userId); |
| | | |
| | | if ($businessCard['user_id'] == $userId&&!$conversation) { |
| | | return $this->renderError('不能与自己建立会话'); |
| | | } |
| | | if (!$conversation) { |
| | | |
| | | // 创建新会话 |
| | | $participants = [$userId, $businessCard['user_id']]; |
| | | $conversationId = $conversationModel->createConversation($businessCardId, $participants); |
| | |
| | | // 添加未读消息数量 |
| | | $chatModel = new ChatModel(); |
| | | $conversation['unread_count'] = $chatModel->getUnreadCount($conversation['conversation_id'], $userId); |
| | | |
| | | return $this->renderSuccess('获取成功', compact('conversation')); |
| | | |
| | | $wsUrl = SettingModel::getSysConfig()['url']; |
| | | return $this->renderSuccess('获取成功', compact('conversation','wsUrl')); |
| | | } else { |
| | | return $this->renderError('创建会话失败'); |
| | | } |