diff --git a/CHANGELOG.md b/CHANGELOG.md index c5c2697..15a6cd6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,4 +14,5 @@ * Update sending messages without notification to refresh conversation messsage ### 1.0.7 * Support message receipts - \ No newline at end of file + ### 1.0.8 + * Modify Query History Message \ No newline at end of file diff --git a/README.md b/README.md index 9a02ffa..3bc2669 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ #### 安装 ``` dependencies: - wukongimfluttersdk: ^1.0.7 + wukongimfluttersdk: ^1.0.8 ``` #### 引入 ```dart diff --git a/example/lib/home.dart b/example/lib/home.dart index d8b94a0..d6f325b 100644 --- a/example/lib/home.dart +++ b/example/lib/home.dart @@ -56,7 +56,7 @@ class ListViewShowDataState extends State { setState(() {}); }); WKIM.shared.conversationManager.addOnRefreshMsgListener('chat_conversation', - (msg, isEnd) { + (msg, isEnd) async { bool isAdd = true; for (var i = 0; i < msgList.length; i++) { if (msgList[i].msg.channelID == msg.channelID && diff --git a/example/pubspec.lock b/example/pubspec.lock index c91da82..605b7ef 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -499,7 +499,7 @@ packages: path: ".." relative: true source: path - version: "1.0.7" + version: "1.0.8" x25519: dependency: transitive description: diff --git a/lib/db/message.dart b/lib/db/message.dart index fd2925e..1ffcc54 100644 --- a/lib/db/message.dart +++ b/lib/db/message.dart @@ -177,18 +177,18 @@ class MessaggeDB { if (pullMode == 0) { if (contain) { sql = - "SELECT * FROM (SELECT $messageCols,$extraCols FROM ${WKDBConst.tableMessage} LEFT JOIN ${WKDBConst.tableMessageExtra} on ${WKDBConst.tableMessage}.message_id=${WKDBConst.tableMessageExtra}.message_id WHERE ${WKDBConst.tableMessage}.channel_id='$channelId' and ${WKDBConst.tableMessage}.channel_type=$channelType and ${WKDBConst.tableMessage}..type<>0 and ${WKDBConst.tableMessage}.type<>99 AND ${WKDBConst.tableMessage}.order_seq<=$oldestOrderSeq) where is_deleted=0 and is_mutual_deleted=0 order by order_seq desc limit 0,$limit"; + "SELECT * FROM (SELECT $messageCols,$extraCols FROM ${WKDBConst.tableMessage} LEFT JOIN ${WKDBConst.tableMessageExtra} on ${WKDBConst.tableMessage}.message_id=${WKDBConst.tableMessageExtra}.message_id WHERE ${WKDBConst.tableMessage}.channel_id='$channelId' and ${WKDBConst.tableMessage}.channel_type=$channelType and ${WKDBConst.tableMessage}.type<>0 and ${WKDBConst.tableMessage}.type<>99 AND ${WKDBConst.tableMessage}.order_seq<=$oldestOrderSeq) where is_deleted=0 and is_mutual_deleted=0 order by order_seq desc limit 0,$limit"; } else { sql = - "SELECT * FROM (SELECT $messageCols,$extraCols FROM ${WKDBConst.tableMessage} LEFT JOIN ${WKDBConst.tableMessageExtra} on ${WKDBConst.tableMessage}.message_id=${WKDBConst.tableMessageExtra}.message_id WHERE ${WKDBConst.tableMessage}.channel_id='$channelId' and ${WKDBConst.tableMessage}.channel_type=$channelType and ${WKDBConst.tableMessage}..type<>0 and ${WKDBConst.tableMessage}${WKDBConst.tableMessage}.type<>99 AND ${WKDBConst.tableMessage}.order_seq<$oldestOrderSeq) where is_deleted=0 and is_mutual_deleted=0 order by order_seq desc limit 0,$limit"; + "SELECT * FROM (SELECT $messageCols,$extraCols FROM ${WKDBConst.tableMessage} LEFT JOIN ${WKDBConst.tableMessageExtra} on ${WKDBConst.tableMessage}.message_id=${WKDBConst.tableMessageExtra}.message_id WHERE ${WKDBConst.tableMessage}.channel_id='$channelId' and ${WKDBConst.tableMessage}.channel_type=$channelType and ${WKDBConst.tableMessage}.type<>0 and ${WKDBConst.tableMessage}.type<>99 AND ${WKDBConst.tableMessage}.order_seq<$oldestOrderSeq) where is_deleted=0 and is_mutual_deleted=0 order by order_seq desc limit 0,$limit"; } } else { if (contain) { sql = - "SELECT * FROM (SELECT $messageCols,$extraCols FROM ${WKDBConst.tableMessage} LEFT JOIN ${WKDBConst.tableMessageExtra} on ${WKDBConst.tableMessage}.message_id=${WKDBConst.tableMessageExtra}.message_id WHERE ${WKDBConst.tableMessage}.channel_id='$channelId' and ${WKDBConst.tableMessage}.channel_type=$channelType and ${WKDBConst.tableMessage}..type<>0 and ${WKDBConst.tableMessage}.type<>99 AND ${WKDBConst.tableMessage}.order_seq>=$oldestOrderSeq) where is_deleted=0 and is_mutual_deleted=0 order by order_seq asc limit 0,$limit"; + "SELECT * FROM (SELECT $messageCols,$extraCols FROM ${WKDBConst.tableMessage} LEFT JOIN ${WKDBConst.tableMessageExtra} on ${WKDBConst.tableMessage}.message_id=${WKDBConst.tableMessageExtra}.message_id WHERE ${WKDBConst.tableMessage}.channel_id='$channelId' and ${WKDBConst.tableMessage}.channel_type=$channelType and ${WKDBConst.tableMessage}.type<>0 and ${WKDBConst.tableMessage}.type<>99 AND ${WKDBConst.tableMessage}.order_seq>=$oldestOrderSeq) where is_deleted=0 and is_mutual_deleted=0 order by order_seq asc limit 0,$limit"; } else { sql = - "SELECT * FROM (SELECT $messageCols,$extraCols FROM ${WKDBConst.tableMessage} LEFT JOIN ${WKDBConst.tableMessageExtra} on ${WKDBConst.tableMessage}.message_id=${WKDBConst.tableMessageExtra}.message_id WHERE ${WKDBConst.tableMessage}.channel_id='$channelId' and ${WKDBConst.tableMessage}.channel_type=$channelType and ${WKDBConst.tableMessage}..type<>0 and ${WKDBConst.tableMessage}.type<>99 AND ${WKDBConst.tableMessage}.order_seq>$oldestOrderSeq) where is_deleted=0 and is_mutual_deleted=0 order by order_seq asc limit 0,$limit"; + "SELECT * FROM (SELECT $messageCols,$extraCols FROM ${WKDBConst.tableMessage} LEFT JOIN ${WKDBConst.tableMessageExtra} on ${WKDBConst.tableMessage}.message_id=${WKDBConst.tableMessageExtra}.message_id WHERE ${WKDBConst.tableMessage}.channel_id='$channelId' and ${WKDBConst.tableMessage}.channel_type=$channelType and ${WKDBConst.tableMessage}.type<>0 and ${WKDBConst.tableMessage}.type<>99 AND ${WKDBConst.tableMessage}.order_seq>$oldestOrderSeq) where is_deleted=0 and is_mutual_deleted=0 order by order_seq asc limit 0,$limit"; } } } diff --git a/lib/manager/conversation_manager.dart b/lib/manager/conversation_manager.dart index 3f8e473..90df304 100644 --- a/lib/manager/conversation_manager.dart +++ b/lib/manager/conversation_manager.dart @@ -124,9 +124,11 @@ class WKConversationManager { List msgList = []; List msgReactionList = []; List msgExtraList = []; + List uiMsgList = []; if (syncChat.conversations != null && syncChat.conversations!.isNotEmpty) { for (int i = 0, size = syncChat.conversations!.length; i < size; i++) { WKConversationMsg conversationMsg = WKConversationMsg(); + int channelType = syncChat.conversations![i].channelType; String channelID = syncChat.conversations![i].channelID; if (channelType == WKChannelType.communityTopic) { @@ -142,6 +144,8 @@ class WKConversationManager { conversationMsg.lastMsgTimestamp = syncChat.conversations![i].timestamp; conversationMsg.unreadCount = syncChat.conversations![i].unread; conversationMsg.version = syncChat.conversations![i].version; + WKUIConversationMsg uiMsg = + ConversationDB.shared.getUIMsg(conversationMsg); //聊天消息对象 if (syncChat.conversations![i].recents != null && syncChat.conversations![i].recents!.isNotEmpty) { @@ -153,6 +157,8 @@ class WKConversationManager { //判断会话列表的fromUID if (conversationMsg.lastClientMsgNO == msg.clientMsgNO) { conversationMsg.isDeleted = msg.isDeleted; + uiMsg.isDeleted = conversationMsg.isDeleted; + uiMsg.setWkMsg(msg); } if (wkSyncRecent.messageExtra != null) { WKMsgExtra extra = WKIM.shared.messageManager @@ -164,23 +170,23 @@ class WKConversationManager { } } conversationMsgList.add(conversationMsg); + uiMsgList.add(uiMsg); } } if (msgExtraList.isNotEmpty) { MessaggeDB.shared.insertOrUpdateMsgExtras(msgExtraList); } - List uiMsgList = []; if (conversationMsgList.isNotEmpty || msgList.isNotEmpty) { if (msgList.isNotEmpty) { MessaggeDB.shared.insertMsgList(msgList); } if (conversationMsgList.isNotEmpty) { - for (int i = 0, size = conversationMsgList.length; i < size; i++) { - WKUIConversationMsg uiMsg = - ConversationDB.shared.getUIMsg(conversationMsgList[i]); - uiMsgList.add(uiMsg); - } + // for (int i = 0, size = conversationMsgList.length; i < size; i++) { + // WKUIConversationMsg uiMsg = + // ConversationDB.shared.getUIMsg(conversationMsgList[i]); + // uiMsgList.add(uiMsg); + // } // 保存 ConversationDB.shared.insertMsgList(conversationMsgList); diff --git a/pubspec.yaml b/pubspec.yaml index 5e97f28..b1355ff 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -15,7 +15,7 @@ description: wukong IM flutter sdk # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 1.0.7 +version: 1.0.8 homepage: https://github.com/WuKongIM/WuKongIMFlutterSDK environment: