updateChatRoom($param['to_user_id'],$param['client_id']); if ($result['code'] != 0) { return json($result); } $return_data = [ 'room_id' => $result['data']['room_id'] ]; return sendSuccessMessage($return_data); } /** * 获取聊天的用户列表 * @date 2022-08-01 */ public function listChatRoom() { $friends_chat_logic = new \app\chat\logic\FriendsChat(); // 获取聊天的用户列表 $result = $friends_chat_logic->listChatRoom(); $r_data = [ 'room_list' => $result ]; return sendSuccessMessage($r_data); } /** * 删除个人聊天会话 * @param int $to_user_id 对方用户ID * @date 2022-07-29 */ public function deleteChatRoom() { $param = input('post.'); $friends_chat_logic = new \app\chat\logic\FriendsChat(); // 删除个人聊天会话 $result = $friends_chat_logic->deleteChatRoom($param['room_id']); if ($result['code'] != 0) { return json($result); } return json($result); } //******************************************************socket绑定用户*********************************************** /** * 绑定用户 * @date 2022-08-16 */ public function bindUser() { $param = input('post.'); $friends_chat_logic = new \app\chat\logic\FriendsChat(); // 绑定用户 $result = $friends_chat_logic->bindUser($param['client_id']); return sendSuccessMessage(); } //*************************************************************详情页************************************************ /** * 获取聊天详情 * @date 2022-08-03 */ public function getChatRoomDetail() { $param = input('post.'); $friends_chat_logic = new \app\chat\logic\FriendsChat(); // 获取房间双方头像以及好友昵称 $room_user = $friends_chat_logic->getChatRoomDetail($param['room_id']); return sendSuccessMessage([ 'room_user' => $room_user ]); } /** * 更改聊天室用户在线状态 * @date 2022-08-16 */ public function updateUserOnlineStatus() { $param = input('post.'); $friends_chat_logic = new \app\chat\logic\FriendsChat(); // 更改聊天室用户在线状态 $result = $friends_chat_logic->updateUserOnlineStatus($param['room_id'], $param['is_online']); if (!$result['code']) { return json($result); } return sendSuccessMessage(); } /** * 发送聊天消息 * @date 2022-08-03 */ public function insertChatMessage() { $param = input('post.'); $friends_chat_logic = new \app\chat\logic\FriendsChat(); // 组合附加数据 $attach = []; if ($param['type'] == 2) { $attach = [ 'record_seconds' => $param['record_seconds'] ]; } else if ($param['type'] == 4) { $attach = [ 'name' => $param['name'], 'address' => $param['address'], 'lat' => $param['lat'], 'lng' => $param['lng'] ]; } else if ($param['type'] == 5) { $attach = [ 'product_id' => $param['product_id'], 'product_name' => $param['product_name'], 'product_cover_img' => $param['product_cover_img'], ]; } $friend_room_user_model = new ChatFriendsRoomUser(); $to_user_id = $friend_room_user_model->getFriendUserId($param['room_id']); $room_model = new ChatFriendsRoom(); $message_model = new ChatFriendsRoomMessage(); $room = $room_model->getOneData(['id'=>$param['room_id'],'user_id'=>USER_ID,'another_user_id'=>$to_user_id]); if($room) { $today_is_first = $message_model->where([['user_id','=',$room['user_id']],['to_user_id','=',$room['another_user_id']],['create_time','between',[strtotime(date('Y-m-d')),strtotime(date('Y-m-d'))+86400]]])->find(); if(!$today_is_first) { $user_model = new MpweixinUser(); $notice_logic = new Notice(); $user_openid = $user_model->getUserWechatOpenid($room['another_user_id']); $user_info_model = new UserInfo(); $user_nickname = $user_info_model->getOneData(['user_id'=>USER_ID],'nick_name'); if($user_openid) { $template_data = [ 'touser' => $user_openid, 'template_id' => 'EorRyJAQw3HzCrfN72VY0ifFMUP9dKcE7Z404R50zPM', // 'url' => $url . $order_id, 'miniprogram' => [ 'appid' => 'wx97ac1cdaca155146', 'pagepath' => 'pages/chat/message?room_id='.$room['id'], ], 'data' => [ 'first' => '您有新的消息', 'keyword1' => $user_nickname, 'keyword2' => '', 'keyword3' => '', 'remark' => '立即进入小程序,查看专家解答详情~', ], ]; $notice_logic->notice($template_data); } } } // 获取房间双方头像以及好友昵称 $result = $friends_chat_logic->insertChatMessage($param['room_id'], $param['content'], $param['type'], $attach); if (!$result['code']) { return json($result); } return json($result); } /** * 获取聊天记录 * @date 2022-08-03 */ public function listChatRoomMessage() { $param = input('post.'); $friends_chat_logic = new \app\chat\logic\FriendsChat(); // 获取聊天记录 $chat_message_list = $friends_chat_logic->listChatRoomMessage($param['room_id'], $param['cur_first_message_id']); $r_data = [ 'up_list' => $chat_message_list ]; return sendSuccessMessage($r_data); } /** * 获取用户未读消息数量 * @return \think\response\Json */ public function getNoReadNumber() { $message_model = new ChatFriendsRoomMessage(); $number = $message_model->where(['to_user_id'=>USER_ID,'is_read'=>0])->count(); return sendMessage(['number'=>$number]); } }