提交 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,22 +542,26 @@ async function _createOrUpdateConversation(conversation_id, msgData, chat_source ...@@ -547,22 +542,26 @@ 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 {
// 2.消息接收者 会话数据 const newConversation = [senderConversation]
receiverConversation = { // 如果不是:用户自己给自己发消息
...senderConversation, if (msgData.to_uid != msgData.from_uid) {
unread_count: 1, // 2.消息接收者 会话数据
user_id: msgData.to_uid, receiverConversation = {
friend_uid: msgData.from_uid ...senderConversation,
unread_count: 1,
user_id: msgData.to_uid,
friend_uid: msgData.from_uid
}
newConversation.push(receiverConversation)
} }
// 单聊,同时为收发双方创建此会话 await dbUniImConversation.add(newConversation)
await dbUniImConversation.add([senderConversation, receiverConversation])
} }
} else { } else {
// 会话已存在,更新相关内容 // 会话已存在,更新相关内容
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册