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


     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 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 deleteAllGroupChatByGroupId(String groupId) async {
      String sql = "DELETE FROM wc_group_chat where group_id = '${groupId}'";
      return _queryAdapter.queryNoReturn(sql);
    }

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

    //删除群成员-web服务器端删除
    Future 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!;
    }

  • 相关阅读:
    ArcObjects SDK开发 010 FeatureLayer
    debian/ubuntu 设置环境变量 (1)
    方法参数调用-两种情况
    SpringCloud -Ribbon
    香港云服务器能加D盘?
    JWT有关知识
    Vue 过渡与动画
    纳尼?华为首席架构师只用434页笔记,就将网络协议给拿下了
    折腾指南: 将光猫改造成你的NAS,WebDAV+网页文件管理器vList5+natmap
    微服务框架 SpringCloud微服务架构 12 DockerCompose 12.2 部署微服务集群
  • 原文地址:https://blog.csdn.net/maoning20080808/article/details/128049756