Flutter高仿微信-第53篇-群聊-删除并退出

news2025/2/28 12:20:47

 Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。

 详情请查看

效果图:

实现代码:

//删除并退出对话框
void _deleteAndExistDialog(){
  LoadingDialogUtils.showBaseDialog(context, msg: "确定要删除并退出吗?", clickConfirm: (){
    _deleteAndExist();
  }, clickCancel: (){
  });
}

//删除并退出
void _deleteAndExist() async {
  LoadingDialogUtils.showLoadingContentDialog(context);

  String account = SpUtils.getAccount();
  List<String> members = [account];
  GroupUserBean? groupUserBean =  await GroupUserRepository.getInstance().findGroupUserByAccountAndGroupId(account, widget.groupId);
  //清空群聊信息
  await GroupChatRepository.getInstance().deleteAllGroupChatByGroupId(widget.groupId);
  //删除群聊用户
  await GroupUserRepository.getInstance().deleteGroupUserByGroupId(account, widget.groupId);

  await GroupUserRepository.getInstance().deleteGroupUserByGroupIdAndAccountServer(account, widget.groupId);

  LoadingDialogUtils.dimissLoadingDialog(context);

  Navigator.popUntil(context, (route) {return route.isFirst;});
}

//删除本地群聊数据
@override
Future<void> deleteAllGroupChatByGroupId(String groupId) async {
  String sql = "DELETE FROM wc_group_chat where group_id = '${groupId}'";
  return _queryAdapter.queryNoReturn(sql);
}

//删除本地群成员数据
@override
Future<void> deleteGroupUserByGroupId(String account, String groupId) async {
  String sql = "DELETE FROM ${tableName} where group_id = '${groupId}' and account = '${account}' ";
  return _queryAdapter.queryNoReturn(sql);
}

//删除群成员-web服务器端删除
Future<bool> deleteGroupUserByGroupIdAndAccount(String account, String groupId) async {
  LogUtils.d("删除群成员:${account}, ${groupId}");
  String url = BASE_URL + "groupUser?method=deleteGroupUserByGroupIdAndAccount";
  Response response = await getInstance().postForm(url,{'account': account,'groupId':groupId});
  final responseResult = jsonDecode(response.toString());
  final baseResult = BaseResult.fromJson(responseResult);
  LogUtils.d("删除群成员baseResult:${baseResult.toJson()}");
  return baseResult.isSuccess!;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/39038.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图解LeetCode——1752. 检查数组是否经排序和轮转得到(难度:简单)

一、题目 给你一个数组 nums 。nums 的源数组中&#xff0c;所有元素与 nums 相同&#xff0c;但按非递减顺序排列。 如果 nums 能够由源数组轮转若干位置&#xff08;包括 0 个位置&#xff09;得到&#xff0c;则返回 true &#xff1b;否则&#xff0c;返回 false 。 源数…

一文了解Linux上TCP的几个内核参数调优

Linux作为一个强大的操作系统&#xff0c;提供了一系列内核参数供我们进行调优。光TCP的调优参数就有50多个。在和线上问题斗智斗勇的过程中&#xff0c;笔者积累了一些在内网环境应该进行调优的参数。在此分享出来&#xff0c;希望对大家有所帮助。 调优清单 好了&#xff0…

Java#27(Arrays)

目录 一.Arrays 操作数组的工具类 二.Lambda表达式 1.注意: 2.省略规则 一.Arrays 操作数组的工具类 方法名 作用 public static String toString(数组) 把数组拼接…

大数据毕设选题 - 深度学习动物识别与检测系统( python opencv)

文章目录0 前言1 深度学习实现动物识别与检测2 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络3 YOLOV53.1 网络架构图3.2 输入端3.3 基准网络3.4 Neck网络3.5 Head输出层4 数据集准备4.1 数据标注简介4.2 数据保存5 …

kafka集群搭建与prometheus监控配置

文章目录1、基于zookeeper的集群2、kafka集群安装2.1 基于Zookeeper集群的配置2.2 基于KRaft模式集群的配置2.3、启动Kafka集群3、kafka_exporter监控组件安装3.1、安装3.2、系统服务3.3、集成到prometheus4、与Grafana集成1、基于zookeeper的集群 下载地址&#xff1a;https:…

ABAP学习笔记之——第三章:OPEN SQL和NATIVE SQL

一、SAP R/3体系结构 SAP R/3一个分为三层&#xff1a;数据库层、应用层、表示层。其中应用层和数据库层由一个系统构成。 表示层&#xff1a;表示层(Presentation Layer)简单来讲其实就是指个人PC&#xff0c;是保存构成SAPGUI(GraphicalUserInterface)的软件组件(Software Co…

数字验证学习笔记——SystemVerilog芯片验证10 ——类的成员

一、类和成员 类是成员变量和成员方法的载体&#xff0c;之所以称为自洽体&#xff0c;是因为其变量和方法应符合‘聚拢’原则&#xff0c;即一个类的功能应该尽可能简单&#xff0c;不应承担过多的职责&#xff0c;更不应该承担不符合它的职责&#xff0c;这在设计模式被称为…

变分自编码器(VAES)

Dimensionality reduction ,PCA and autoencoders Dimensionality reduction 我们清楚&#xff0c;数据降维其实都是减少数据的特征数量&#xff0c;如果把encoderencoderencoder看作是由高维原有特征生成低维新特征的过程。把decoderdecoderdecoder看作是将低维特征还原为高…

vulnhub靶机ha:wordy

靶机下载链接&#xff1a;HA: Wordy ~ VulnHub 靶机ip&#xff1a;192.168.174.136&#xff08;后面重启后变成192.168.174.137&#xff09; kali ip&#xff1a;192.168.174.128 目录 靶机ip发现: 靶机端口扫描: 子目录扫描&#xff1a; wpscan扫描 漏洞利用1 漏洞利…

ASEMI肖特基二极管MBR40200PT参数,MBR40200PT规格

编辑-Z ASEMI肖特基二极管MBR40200PT参数&#xff1a; 型号&#xff1a;MBR40200PT 最大重复峰值反向电压&#xff08;VRRM&#xff09;&#xff1a;200V 最大平均正向整流输出电流&#xff08;IF&#xff09;&#xff1a;40A 峰值正向浪涌电流&#xff08;IFSM&#xff0…

5、Mybatis的查询功能(必定有返回值)

Mybatis的查询功能&#xff08;必定有返回值&#xff09; 注意&#xff1a; 查询功能与前面的增删改不同&#xff0c;增删改的返回值是固定的&#xff08;所以增删改我们就有两种返回值要么设置为int获取受影响的行数&#xff0c;要么设置为void我们不获取返回值&#xff09;…

基于JAVA的农产品生鲜销售管理系统【数据库设计、源码、开题报告】

数据库脚本下载地址&#xff1a; https://download.csdn.net/download/itrjxxs_com/86468222 主要使用技术 Struts2HibernateJSPJSCSSMysql 功能介绍 1&#xff0c;游客访问 |–系统首页&#xff0c;查看商品列表 |–特价商品 |–最新上架 2&#xff0c;会员访问 |–用户登…

Qt 界面设置无边框之后如何实现缩放界面

在qt中&#xff0c;如果设置的了窗口无边框的话&#xff08;即setWindowFlag(Qt::FramelessWindowHint);&#xff09;那么窗口就没法直接被鼠标拖动了&#xff0c;也没法按住窗口的边界进行缩放。 如果要实现缩放和拖动&#xff0c;一般来说就需要的重写窗口类的mousePressEve…

目标检测论文解读复现之十九:基于YOLOv5网络模型的人员口罩佩戴实时检测

前言 此前出了目标改进算法专栏&#xff0c;但是对于应用于什么场景&#xff0c;需要什么改进方法对应与自己的应用场景有效果&#xff0c;并且多少改进点能发什么水平的文章&#xff0c;为解决大家的困惑&#xff0c;此系列文章旨在给大家解读最新目标检测算法论文&#xff0…

8.3 数据结构——交换排序

基本思想&#xff1a;两两比较&#xff0c;如果发生逆序则交换&#xff0c;直到所有记录都排好序为止。 常见的交换排序&#xff1a;&#xff08;1&#xff09;冒泡排序 &#xff08;2&#xff09;快速排序 8.3.1 冒泡排序 基本思想&#xff1a;每趟不断将记录两两比较&…

VLAN(Virtual LAN)虚拟局域网

1、广播与广播域 广播&#xff1a;将广播地址做为目标地址的数据帧 广播域&#xff1a;网络中能接收到同一个广播所有节点的集合&#xff08;广播域越小越好&#xff0c;收到的垃圾广播越少&#xff0c;这样通信效率更高&#xff09; MAC地址广播 广播地址为&#xff1a;FF-FF-…

rabbitmq配置windows authentication(windows account)登录

rabbitmq配置windows authentication(windows account开启插件配置文件创建一个不需要密码的账号&#xff0c;赋予administrator权限。用windows账号和密码登录rabbitmq加密明文密码创建密钥的文件,添加密钥字符串加密解密用户名密码配置加密后的字符串重启rabbitmq&#xff0c…

HyperLynx(三十一)高速串行总线仿真(三)

高速串行总线仿真&#xff08;三&#xff09; 1.从一个多层板工程中验证串行通道 2.在多层板中设置连接器模型 1.从一个多层板工程中验证串行通道 在本例练习中&#xff0c;将集中研究从芯片到插件形成的串行发射通道&#xff0c;并分析它的性能。 (1)打开 HyperLynx 软件&a…

Centos下安装postgreSQL

最近北京yq严重&#xff0c;在家学习下postgreSQL &#xff0c;本次使用的是 Centos 环境安装是有&#xff0c;记录下来&#xff0c;方便备查。 第一步、下载与安装 下载地址&#xff1a;postgreSQL官网 在官网上选择 Linux系统&#xff0c;使用 yum来下载软件&#xff0c;只…

SpringBoot SpringBoot 原理篇 1 自动配置 1.11 bean 的加载控制【编程式】

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 原理篇 文章目录SpringBootSpringBoot 原理篇1 自动配置1.11 bean 的加载控制【编程式】1.11.1 bean 的加载控制1.11.2 环境…