queryAll method
Implementation
Future<List<WKUIConversationMsg>> queryAll() async {
String sql =
"SELECT ${WKDBConst.tableConversation}.*,$channelCols,$extraCols FROM ${WKDBConst.tableConversation} LEFT JOIN ${WKDBConst.tableChannel} ON ${WKDBConst.tableConversation}.channel_id = ${WKDBConst.tableChannel}.channel_id AND ${WKDBConst.tableConversation}.channel_type = ${WKDBConst.tableChannel}.channel_type LEFT JOIN ${WKDBConst.tableConversationExtra} ON ${WKDBConst.tableConversation}.channel_id=${WKDBConst.tableConversationExtra}.channel_id AND ${WKDBConst.tableConversation}.channel_type=${WKDBConst.tableConversationExtra}.channel_type where ${WKDBConst.tableConversation}.is_deleted=0 order by last_msg_timestamp desc";
List<WKUIConversationMsg> list = [];
if (WKDBHelper.shared.getDB() == null) {
return list;
}
List<Map<String, Object?>> results =
await WKDBHelper.shared.getDB()!.rawQuery(sql);
if (results.isNotEmpty) {
for (Map<String, Object?> data in results) {
WKConversationMsg msg = WKDBConst.serializeCoversation(data);
WKChannel wkChannel = WKDBConst.serializeChannel(data);
wkChannel.remoteExtraMap =
WKDBConst.readDynamic(data, 'channel_remote_extra');
wkChannel.localExtra = WKDBConst.readDynamic(data, 'channel_extra');
WKUIConversationMsg uiMsg = getUIMsg(msg);
uiMsg.setWkChannel(wkChannel);
list.add(uiMsg);
}
}
return list;
}