diff --git a/app/chat/controller/MessageController.php b/app/chat/controller/MessageController.php index 5c0a9a5..73011f7 100644 --- a/app/chat/controller/MessageController.php +++ b/app/chat/controller/MessageController.php @@ -206,11 +206,13 @@ class MessageController extends ApiController $unreadCount = 0; if(!empty($session['session_id'])) { if($session['chat_type'] == 2) { - // 最后一条消息 - $lastMsg = Db::name('chat_message') - ->where('group_id', $session['group_id']) - ->order('send_time', 'desc') - ->find(); + if($session['member_status']) { + // 最后一条消息 + $lastMsg = Db::name('chat_message') + ->where('group_id', $session['group_id']) + ->order('send_time', 'desc') + ->find(); + } }else { $lastMsg = Db::name('chat_message') ->where('session_id', $session['session_id']) diff --git a/app/chat/model/ChatMessage.php b/app/chat/model/ChatMessage.php index a2e74dc..eee84b3 100644 --- a/app/chat/model/ChatMessage.php +++ b/app/chat/model/ChatMessage.php @@ -45,22 +45,30 @@ class ChatMessage extends BaseModel $sessionIds = array_merge($sessionIds, $group_arr); $group_id = ''; foreach ($sessionIds as $k => $session) { + $data[$k]['user_id'] = $uid; if($session['chat_type'] == 1) { - $chat_user = Db::name('chat_user')->where(['user_id' => $session['group_id']])->field('nick_name,avatar')->find(); - $avatar = $chat_user['avatar']; + $chat_user = Db::name('tb_user_info')->where(['id' => $session['group_id']])->field('nick_name,avatar')->find(); + $avatar = $chat_user['head_img']; $name = $chat_user['nick_name']; $group_id = ''; - $data[$k]['user_id'] = $session['group_id']; + $data[$k]['to_id'] = $session['group_id']; }elseif($session['chat_type'] == 2) { $group_info = Db::name('chat_group')->where(['id' => $session['group_id']])->field('id,name,avatar')->find(); $avatar = $group_info['avatar']; $group_id = $group_info['id']; $name = $group_info['name']; - $data[$k]['user_id'] = $group_id; + $data[$k]['to_id'] = $group_id; + + // 获取本人在群里的状态 + $group_member = Db::name('chat_group_member')->where(['group_id' => $session['group_id'], 'user_id' => $uid])->find(); + $data[$k]['member_status'] = 0; + // 如果在群里并且没有退群和被踢 + if($group_member && $group_member['quit_time'] == null && $group_member['is_kicked'] == 0) { + $data[$k]['member_status'] = 1; + } } // 单聊的话 两个人对话用一样的会话ID $data[$k]['avatar'] = $avatar; - $data[$k]['to_id'] = $data[$k]['user_id']; $data[$k]['chat_type'] = $session['chat_type']; $data[$k]['session_id'] = $session['session_id']; $data[$k]['name'] = $name;