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

  • 相关阅读:
    【设计模式】Java设计模式 - 策略模式
    【Unity精华一记】特殊文件夹
    OSI与TCP/IP与的体系结构的比较
    SpringBoot中的异常处理
    C-模型压缩部署概述
    测试工作3年还在基础岗?可能只是因为你的工作能力差
    LeetCode每日一题(1300. Sum of Mutated Array Closest to Target)
    34-Maven
    华为的隐藏功能,你们知道多少?
    金鸣识别网页版:轻松实现表格识别的神器
  • 原文地址:https://blog.csdn.net/maoning20080808/article/details/128049756