提交 eea6f5d9 编写于 作者: DCloud_JSON's avatar DCloud_JSON

修复 用户自己给自己发消息,创建两条会话记录的问题

上级 7ae1ce1d
...@@ -459,11 +459,6 @@ async function _createOrUpdateConversation(conversation_id, msgData, chat_source ...@@ -459,11 +459,6 @@ async function _createOrUpdateConversation(conversation_id, msgData, chat_source
} }
const clientInfo = this.getClientInfo() const clientInfo = this.getClientInfo()
if( conversation_grade === 300 && msgData.to_uid && clientInfo.source != 'function' && this.current_uid != 'system'){ if( conversation_grade === 300 && msgData.to_uid && clientInfo.source != 'function' && this.current_uid != 'system'){
// console.error('createOrUpdateConversation conversation_grade 300~~~~~',clientInfo.appVersionCode);
// TODO:用于向下兼容
if (clientInfo.appVersionCode < 24042501) {
throw new Error('你的客户端版本过旧,不能发起新会话。请刷新后重试')
}
// 仅限:系统管理员参与的 或 群成员向群管理员 发起私聊 // 仅限:系统管理员参与的 或 群成员向群管理员 发起私聊
let check = false let check = false
// 消息发送者是系统管理员 // 消息发送者是系统管理员
...@@ -547,13 +542,16 @@ async function _createOrUpdateConversation(conversation_id, msgData, chat_source ...@@ -547,13 +542,16 @@ async function _createOrUpdateConversation(conversation_id, msgData, chat_source
let {data:[groupInfo]} = await db.collection('uni-im-group') let {data:[groupInfo]} = await db.collection('uni-im-group')
.doc(msgData.group_id) .doc(msgData.group_id)
.field({ .field({
type: true, type: true
}) })
.get() .get()
senderConversation.group_type = groupInfo?.type senderConversation.group_type = groupInfo?.type
// 群聊只为当前用户创建会话 // 群聊只为当前用户创建会话
await dbUniImConversation.add(senderConversation) await dbUniImConversation.add(senderConversation)
} else { } else {
const newConversation = [senderConversation]
// 如果不是:用户自己给自己发消息
if (msgData.to_uid != msgData.from_uid) {
// 2.消息接收者 会话数据 // 2.消息接收者 会话数据
receiverConversation = { receiverConversation = {
...senderConversation, ...senderConversation,
...@@ -561,8 +559,9 @@ async function _createOrUpdateConversation(conversation_id, msgData, chat_source ...@@ -561,8 +559,9 @@ async function _createOrUpdateConversation(conversation_id, msgData, chat_source
user_id: msgData.to_uid, user_id: msgData.to_uid,
friend_uid: msgData.from_uid friend_uid: msgData.from_uid
} }
// 单聊,同时为收发双方创建此会话 newConversation.push(receiverConversation)
await dbUniImConversation.add([senderConversation, receiverConversation]) }
await dbUniImConversation.add(newConversation)
} }
} else { } else {
// 会话已存在,更新相关内容 // 会话已存在,更新相关内容
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册