queryAllUnreadCount method

Future<int> queryAllUnreadCount()

Implementation

Future<int> queryAllUnreadCount() async {
  int count = 0;
  var channels = await ChannelDB.shared.queryWithMuted();
  var channelIds = [];
  var sql = "";
  List<Map<String, Object?>>? list;
  if (channels.isNotEmpty) {
    for (var channel in channels) {
      channelIds.add(channel.channelID);
    }
    sql =
        "select SUM(unread_count) count from ${WKDBConst.tableConversation} where channel_id not in (${WKDBConst.getPlaceholders(channelIds.length)})";
    list = await WKDBHelper.shared.getDB()!.rawQuery(sql, channelIds);
  } else {
    sql =
        "select SUM(unread_count) count from ${WKDBConst.tableConversation}";
    list = await WKDBHelper.shared.getDB()?.rawQuery(sql);
  }
  if (list == null || list.isEmpty) {
    return count;
  }
  dynamic data = list[0];
  count = WKDBConst.readInt(data, 'count');
  Logs.error('总数量$count');
  return count;
}