From e4dc67bb16e9a6f435c36ec8c46e1bf2a3b4ce4a Mon Sep 17 00:00:00 2001 From: ASUS <515617283@qq.com> Date: Fri, 5 Dec 2025 09:58:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=98=B5=E7=A7=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/chat/controller/GroupController.php | 2 ++ app/chat/controller/MessageController.php | 2 +- app/chat/model/ChatMessage.php | 1 + extend/chat/model/Base.php | 12 ++++++------ 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/app/chat/controller/GroupController.php b/app/chat/controller/GroupController.php index aa8b11b..e97b07f 100644 --- a/app/chat/controller/GroupController.php +++ b/app/chat/controller/GroupController.php @@ -8,6 +8,7 @@ use app\chat\model\ChatDoNotDisturb; use app\common\controller\ApiController; use app\exception\MyBusinessException; use app\utils\Session; +use ba\Random; use support\Log; use support\Request; use support\Response; @@ -122,6 +123,7 @@ class GroupController extends ApiController Db::startTrans(); // 创建群 $group_id = Db::name('chat_group')->insertGetId([ + 'id' => Random::build('alnum', 32), 'name' => $name, 'shop_id' => $shop_id, 'avatar' => $avatar, diff --git a/app/chat/controller/MessageController.php b/app/chat/controller/MessageController.php index 0bdf46a..2bd9fe7 100644 --- a/app/chat/controller/MessageController.php +++ b/app/chat/controller/MessageController.php @@ -214,7 +214,7 @@ class MessageController extends ApiController } // 未读计数 - $unreadCount = Db::name('chat_unread_count')->where(['user_id' => $this->uid, 'session_id' => $session['session_id']])->value('count')?:0; + $unreadCount = Db::name('chat_unread_count')->where(['user_id' => $this->uid, 'session_id' => $session['to_id']])->value('count')?:0; } if($session['chat_type'] == 2) { if($lastMsg) { diff --git a/app/chat/model/ChatMessage.php b/app/chat/model/ChatMessage.php index 437099f..a2e74dc 100644 --- a/app/chat/model/ChatMessage.php +++ b/app/chat/model/ChatMessage.php @@ -60,6 +60,7 @@ class ChatMessage extends BaseModel } // 单聊的话 两个人对话用一样的会话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; diff --git a/extend/chat/model/Base.php b/extend/chat/model/Base.php index 3c5b54c..4ff13c5 100644 --- a/extend/chat/model/Base.php +++ b/extend/chat/model/Base.php @@ -248,10 +248,10 @@ namespace extend\chat\model; // 对方是否在线,在线发 不在线存起来等上线了发 if(Gateway::isUidOnline($str_uid)) { // 加入未读计数 - if(!Db::name('chat_unread_count')->where(['user_id' => $message['to_id'], 'session_id' => $session_id])->find()) { - Db::name('chat_unread_count')->insert(['user_id' => $message['to_id'], 'session_id' => $session_id, 'count' => 1, 'updated_time' => d()]); + if(!Db::name('chat_unread_count')->where(['user_id' => $message['to_id'], 'session_id' => self::$user_info['uid']])->find()) { + Db::name('chat_unread_count')->insert(['user_id' => $message['to_id'], 'session_id' => self::$user_info['uid'], 'count' => 1, 'updated_time' => d()]); }else { - Db::name('chat_unread_count')->where(['user_id' => $message['to_id'], 'session_id' => $session_id])->inc('count')->update(['updated_time' => d()]); + Db::name('chat_unread_count')->where(['user_id' => $message['to_id'], 'session_id' => self::$user_info['uid']])->inc('count')->update(['updated_time' => d()]); } Gateway::sendToUid($str_uid, self::sendReceive($notice_data)); }else { @@ -285,10 +285,10 @@ namespace extend\chat\model; Business::setRedisMessage($grep['user_id'], $user_type, $notice_data); } // 加入未读计数 - if(!Db::name('chat_unread_count')->where(['user_id' => $grep['user_id'], 'session_id' => $session_id])->find()) { - Db::name('chat_unread_count')->insert(['count' => 1, 'updated_time' => d(), 'user_id' => $grep['user_id'], 'session_id' => $session_id]); + if(!Db::name('chat_unread_count')->where(['user_id' => $grep['user_id'], 'session_id' => $group_id])->find()) { + Db::name('chat_unread_count')->insert(['count' => 1, 'updated_time' => d(), 'user_id' => $grep['user_id'], 'session_id' => $group_id]); }else { - Db::name('chat_unread_count')->where(['user_id' => $grep['user_id'], 'session_id' => $session_id])->inc('count')->update(['updated_time' => d()]); + Db::name('chat_unread_count')->where(['user_id' => $grep['user_id'], 'session_id' => $group_id])->inc('count')->update(['updated_time' => d()]); } } // 更新对方会话列表