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;
}