VtaFCHZmxhCuYsao method

Future<void> VtaFCHZmxhCuYsao(
  1. String uIyQyNIcjXdsIlqP,
  2. Map<String, dynamic> DEzbKDIBPJVTWSIB
)

Implementation

Future<void> VtaFCHZmxhCuYsao(String uIyQyNIcjXdsIlqP, Map<String, dynamic> DEzbKDIBPJVTWSIB) async {
  await NSYjsMnOqpaBhHEy.synchronized(() async {
    var NFVCoejmqISpBwvS = new Lock();
    Future<void> ZuzGbbPXFXXwPXvl(YIMMessage mWEnrkpgWgfnODZg, bool sGvoFEAbFcnHdAdO, {void Function(bool oTLKfnnymNCTXHML)? OMKwYKeBBFVoTNBl}) async {
      await NFVCoejmqISpBwvS.synchronized(() async {
        if (mWEnrkpgWgfnODZg.id == SGvaNiMoTrmOwrZS) return;
        SGvaNiMoTrmOwrZS = mWEnrkpgWgfnODZg.id;
        switch (mWEnrkpgWgfnODZg.conversationType) {
          case YIMEnum_ConversationType.P2P:
            final imJcUbKexoRWPKuV = await eFtbLxhxTmdNVKuo.HsDBYdwzkEBPFhmJ.imJcUbKexoRWPKuV(
              _YIMTableName.Message,
              filter: Filter.equals("id", mWEnrkpgWgfnODZg.id),
            );
            if (imJcUbKexoRWPKuV == null) {
              OMKwYKeBBFVoTNBl?.call(false);
              return;
            }
            if (imJcUbKexoRWPKuV > 0) {
              OMKwYKeBBFVoTNBl?.call(false);
              return;
            }
            final KpduJXQoVKWmsBgH = await eFtbLxhxTmdNVKuo.HsDBYdwzkEBPFhmJ.NxTIiSKVXcgMzjSL(
              _YIMTableName.Message,
              DEzbKDIBPJVTWSIB: _YIMTable_Message(mWEnrkpgWgfnODZg: mWEnrkpgWgfnODZg),
            );
            if (!KpduJXQoVKWmsBgH) {
              OMKwYKeBBFVoTNBl?.call(false);
              return;
            }
            final MaHGdkWWOVttEAeS = await ptLoDBriUoBUHreo.PDCrHbGmsBdFRajZ.seQaUCGGFYuCERMG(
              mWEnrkpgWgfnODZg.conversationType,
              mWEnrkpgWgfnODZg.from == eFtbLxhxTmdNVKuo.hBYZOFteqhkvDgHA ? mWEnrkpgWgfnODZg.to : mWEnrkpgWgfnODZg.from,
              BtkEDcyLJWFVWCMk: (mWEnrkpgWgfnODZg.from != eFtbLxhxTmdNVKuo.hBYZOFteqhkvDgHA && mWEnrkpgWgfnODZg.messageState == YIMEnum_MessageState.Success_UnRead) ? VeUEakwqWzqKWGlo.LIwCJQquQQVpNcxe : VeUEakwqWzqKWGlo.FnYqLiPPReANDkSU,
            );
            if (!MaHGdkWWOVttEAeS) {
              OMKwYKeBBFVoTNBl?.call(false);
              return;
            }
            if (sGvoFEAbFcnHdAdO)
              eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
                ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.LPyyKzRzgEgTinGo?.call([mWEnrkpgWgfnODZg]);
              });
            else
              eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
                ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.pBICbrHbRPrMoVKu?.call([mWEnrkpgWgfnODZg]);
              });
            OMKwYKeBBFVoTNBl?.call(true);
            break;
          case YIMEnum_ConversationType.Team:
            final imJcUbKexoRWPKuV = await eFtbLxhxTmdNVKuo.HsDBYdwzkEBPFhmJ.imJcUbKexoRWPKuV(
              _YIMTableName.Message,
              filter: Filter.equals("id", mWEnrkpgWgfnODZg.id),
            );
            if (imJcUbKexoRWPKuV == null) {
              OMKwYKeBBFVoTNBl?.call(false);
              return;
            }
            if (imJcUbKexoRWPKuV > 0) {
              OMKwYKeBBFVoTNBl?.call(false);
              return;
            }
            final KpduJXQoVKWmsBgH = await eFtbLxhxTmdNVKuo.HsDBYdwzkEBPFhmJ.NxTIiSKVXcgMzjSL(
              _YIMTableName.Message,
              DEzbKDIBPJVTWSIB: _YIMTable_Message(mWEnrkpgWgfnODZg: mWEnrkpgWgfnODZg),
            );
            if (!KpduJXQoVKWmsBgH) {
              OMKwYKeBBFVoTNBl?.call(false);
              return;
            }
            final MaHGdkWWOVttEAeS = await ptLoDBriUoBUHreo.PDCrHbGmsBdFRajZ.seQaUCGGFYuCERMG(
              mWEnrkpgWgfnODZg.conversationType,
              mWEnrkpgWgfnODZg.to,
              BtkEDcyLJWFVWCMk: (mWEnrkpgWgfnODZg.from != eFtbLxhxTmdNVKuo.hBYZOFteqhkvDgHA) ? VeUEakwqWzqKWGlo.LIwCJQquQQVpNcxe : VeUEakwqWzqKWGlo.FnYqLiPPReANDkSU,
            );
            if (!MaHGdkWWOVttEAeS) {
              OMKwYKeBBFVoTNBl?.call(false);
              return;
            }
            if (sGvoFEAbFcnHdAdO)
              eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
                ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.LPyyKzRzgEgTinGo?.call([mWEnrkpgWgfnODZg]);
              });
            else
              eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
                ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.pBICbrHbRPrMoVKu?.call([mWEnrkpgWgfnODZg]);
              });
            OMKwYKeBBFVoTNBl?.call(true);
            break;
          case YIMEnum_ConversationType.ChatRoom:
            if (sGvoFEAbFcnHdAdO)
              eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
                ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.LPyyKzRzgEgTinGo?.call([mWEnrkpgWgfnODZg]);
              });
            else
              eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
                ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.pBICbrHbRPrMoVKu?.call([mWEnrkpgWgfnODZg]);
              });
            OMKwYKeBBFVoTNBl?.call(true);
            break;
          default:
            break;
        }
      });
    }

    switch (uIyQyNIcjXdsIlqP) {
      case "loginFailed":
        WbiJAkDimBGiuZyT(DEzbKDIBPJVTWSIB["msg"].toString());
        break;
      case "loginSuccess":
        if (qMFRqrHHrfyEGtaq) return;
        qMFRqrHHrfyEGtaq = true;
        RnjMpwCVYWVaTMbP?.cancel();
        RnjMpwCVYWVaTMbP = null;
        HKPRsdFkqaAYfhYE?.cancel();
        HKPRsdFkqaAYfhYE = null;
        RnjMpwCVYWVaTMbP = Timer.periodic(Duration(seconds: 5), (timer) {
          if (!ptLoDBriUoBUHreo.uvWNunbGgtEdyNiW.otQyjQrYNfRgpyCy(vaxeWJEAsrhSscSw: true) || fougUVSPPUZeVZtj == null) {
            if (!ZZLMzmDnOPCUQBXr) {
              ZZLMzmDnOPCUQBXr = true;
              eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
                ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.MjNWSNzSPevgJqfi?.call(YIMResult<YIMEnum_OnlineState>(code: YIMEnum_OnlineState.Reconnecting, msg: "Reconnecting"));
              });
              rneXrDZIVjbxCZlW(true);
              Future.delayed(Duration(seconds: 1), () {
                IGyeoBrntvLYwuki(true);
                Future.delayed(Duration(seconds: 5), () {
                  if (ZZLMzmDnOPCUQBXr) {
                    ZZLMzmDnOPCUQBXr = false;
                    rneXrDZIVjbxCZlW(true);
                  }
                });
              });
            }
          } else {
            if (ZZLMzmDnOPCUQBXr) {
              ZZLMzmDnOPCUQBXr = false;
              zTJAPlxxRlEPfPBY();
              eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
                ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.MjNWSNzSPevgJqfi?.call(YIMResult<YIMEnum_OnlineState>(code: YIMEnum_OnlineState.Reconnected, msg: "Reconnected"));
              });
            }
            // eFtbLxhxTmdNVKuo.TRicabbJmwhKdzbv.jodencItUatiSpEH("refreshOnline");
          }
        });
        eFtbLxhxTmdNVKuo.plJXjIOyvNhjneLH = YIMUser.fromJson(DEzbKDIBPJVTWSIB["user"]);
        eFtbLxhxTmdNVKuo.WuKEDsUBEzAbfoRS = (DEzbKDIBPJVTWSIB["conversationTops"] as List<dynamic>).map((e) => e.toString()).toList();
        eFtbLxhxTmdNVKuo.YgLjLpNRUxfAmNYX = (DEzbKDIBPJVTWSIB["disturbs_p2p"] as List<dynamic>).map((e) => e.toString()).toList();
        eFtbLxhxTmdNVKuo.CxPYZnJjsalLUyCw = (DEzbKDIBPJVTWSIB["disturbs_team"] as List<dynamic>).map((e) => e.toString()).toList();
        eFtbLxhxTmdNVKuo.COWyOzFujUqyiEde.WpSpvmmvLuVioQrV(DEzbKDIBPJVTWSIB["oss"]);
        eFtbLxhxTmdNVKuo.YxcFziNqPfUNMAiS.WpSpvmmvLuVioQrV(eFtbLxhxTmdNVKuo.XOnHYWRkDBCzQOUO?.push ?? DEzbKDIBPJVTWSIB["push"]);
        //同步云端会话
        jodencItUatiSpEH("queryConversations", YzQRKyskQzveDVYH: (oTLKfnnymNCTXHML, OhXEEEJrHsRvZogG, iggZzorTFvICOSCL, PBMZMubGZDFjYEYt) {
          if (oTLKfnnymNCTXHML) {
            List<Map<String, dynamic>> uSWXJseDfMxEeuLt = (OhXEEEJrHsRvZogG?["conversations"] as List<dynamic>).map((m) => m as Map<String, dynamic>).toList();
            if (uSWXJseDfMxEeuLt.isEmpty) return;
            ptLoDBriUoBUHreo.PDCrHbGmsBdFRajZ.nkzuzrGKwvUcdDEb(
              OMKwYKeBBFVoTNBl: (ykNlEVGzREbGjoZV) {
                //过滤本地已经存在的云端会话
                ykNlEVGzREbGjoZV?.forEach((gxECQohXBcwxDNVO) {
                  switch (gxECQohXBcwxDNVO.lastMessage.conversationType) {
                    case YIMEnum_ConversationType.P2P:
                      final DLwuDqfWcelSXXhD = gxECQohXBcwxDNVO.lastMessage.from == eFtbLxhxTmdNVKuo.hBYZOFteqhkvDgHA ? gxECQohXBcwxDNVO.lastMessage.to : gxECQohXBcwxDNVO.lastMessage.from;
                      for (var HnLxnouyxZgEntlk = uSWXJseDfMxEeuLt.length - 1; HnLxnouyxZgEntlk >= 0; HnLxnouyxZgEntlk--) {
                        if (uSWXJseDfMxEeuLt[HnLxnouyxZgEntlk]["conversationID"] == DLwuDqfWcelSXXhD) uSWXJseDfMxEeuLt.removeAt(HnLxnouyxZgEntlk);
                      }
                      break;
                    case YIMEnum_ConversationType.Team:
                      final DLwuDqfWcelSXXhD = gxECQohXBcwxDNVO.lastMessage.to;
                      for (var HnLxnouyxZgEntlk = uSWXJseDfMxEeuLt.length - 1; HnLxnouyxZgEntlk >= 0; HnLxnouyxZgEntlk--) {
                        if (uSWXJseDfMxEeuLt[HnLxnouyxZgEntlk]["conversationID"] == DLwuDqfWcelSXXhD) uSWXJseDfMxEeuLt.removeAt(HnLxnouyxZgEntlk);
                      }
                      break;
                    default:
                      break;
                  }
                });
                //将本地没有的云端会话,把消息同步下来
                for (final gxECQohXBcwxDNVO in uSWXJseDfMxEeuLt.reversed) {
                  ptLoDBriUoBUHreo.BnAKHlfpZoZtygAN.bqsLxXzJWiVUmCXX(
                    sZLnmTKeJUdmBFHE: YIMEnum_ConversationType.from(gxECQohXBcwxDNVO["conversationType"].toString()),
                    DLwuDqfWcelSXXhD: gxECQohXBcwxDNVO["conversationID"].toString(),
                    swIyramKDJOzbOJN: eFtbLxhxTmdNVKuo.XgGXeEFPFDWOsMtu.KjVITroklQxbTHBe,
                    OMKwYKeBBFVoTNBl: (oTLKfnnymNCTXHML, ELBaeVfiMBfVvjdO) async {
                      if (oTLKfnnymNCTXHML) {
                        for (var i = 0; i < ELBaeVfiMBfVvjdO!.length; i++) {
                          await ZuzGbbPXFXXwPXvl(ELBaeVfiMBfVvjdO[i], false, OMKwYKeBBFVoTNBl: (oTLKfnnymNCTXHML) async {
                            if (!oTLKfnnymNCTXHML) return;
                            Filter? tTliTnHJVQHQfYah;
                            switch (YIMEnum_ConversationType.from(gxECQohXBcwxDNVO["conversationType"].toString())) {
                              case YIMEnum_ConversationType.P2P:
                                tTliTnHJVQHQfYah = Filter.and([
                                  Filter.or([
                                    Filter.and([Filter.equals("lastMessage.from", eFtbLxhxTmdNVKuo.hBYZOFteqhkvDgHA), Filter.equals("lastMessage.to", gxECQohXBcwxDNVO["conversationID"])]),
                                    Filter.and([Filter.equals("lastMessage.to", eFtbLxhxTmdNVKuo.hBYZOFteqhkvDgHA), Filter.equals("lastMessage.from", gxECQohXBcwxDNVO["conversationID"])]),
                                  ]),
                                  Filter.equals("lastMessage.conversationType", YIMEnum_ConversationType.P2P.rawValue),
                                ]);
                                break;
                              case YIMEnum_ConversationType.Team:
                                tTliTnHJVQHQfYah = Filter.and([
                                  Filter.equals("lastMessage.to", gxECQohXBcwxDNVO["conversationID"]),
                                  Filter.equals("lastMessage.conversationType", YIMEnum_ConversationType.Team.rawValue),
                                ]);
                                break;
                              case YIMEnum_ConversationType.ChatRoom:
                                break;
                              default:
                                break;
                            }
                            final FxTKgeVLVBXARWjH = await eFtbLxhxTmdNVKuo.HsDBYdwzkEBPFhmJ.zWWbrOUfBoaNWrhG<_YIMTable_Conversation>(
                              _YIMTableName.Conversation,
                              (xTiaNoIlpXbdfQlQ) => xTiaNoIlpXbdfQlQ!..unRead = int.parse(gxECQohXBcwxDNVO["unReadCount"].toString()),
                              sprgVkbCCQhGYFSK: (map) => _YIMTable_Conversation.fromJson(map),
                              PldCyxtbMzvNSNom: Finder(filter: tTliTnHJVQHQfYah),
                            );
                            if (!FxTKgeVLVBXARWjH) return;
                            if (i >= ELBaeVfiMBfVvjdO.length - 1) {
                              eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
                                ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.vbkGgBUjJANFBecG?.call();
                              });
                              Filter? TKUJvkDHgZbFgVJv;
                              switch (YIMEnum_ConversationType.from(gxECQohXBcwxDNVO["conversationType"].toString())) {
                                case YIMEnum_ConversationType.P2P:
                                  TKUJvkDHgZbFgVJv = Filter.and([
                                    Filter.or([
                                      Filter.and([Filter.equals("lastMessage.from", eFtbLxhxTmdNVKuo.hBYZOFteqhkvDgHA), Filter.equals("lastMessage.to", gxECQohXBcwxDNVO["conversationID"])]),
                                      Filter.and([Filter.equals("lastMessage.to", eFtbLxhxTmdNVKuo.hBYZOFteqhkvDgHA), Filter.equals("lastMessage.from", gxECQohXBcwxDNVO["conversationID"])]),
                                    ]),
                                    Filter.equals("lastMessage.conversationType", gxECQohXBcwxDNVO["conversationType"]),
                                  ]);
                                  break;
                                case YIMEnum_ConversationType.Team:
                                  TKUJvkDHgZbFgVJv = Filter.and([
                                    Filter.equals("lastMessage.to", gxECQohXBcwxDNVO["conversationID"]),
                                    Filter.equals("lastMessage.conversationType", gxECQohXBcwxDNVO["conversationType"]),
                                  ]);
                                  break;
                              }
                              final BByVDaYVEweNgSCl = await eFtbLxhxTmdNVKuo.HsDBYdwzkEBPFhmJ.LUwlOqRgyVmlEiyp<_YIMTable_Conversation>(
                                _YIMTableName.Conversation,
                                sprgVkbCCQhGYFSK: (map) => _YIMTable_Conversation.fromJson(map),
                                PldCyxtbMzvNSNom: Finder(filter: TKUJvkDHgZbFgVJv),
                              );
                              if (BByVDaYVEweNgSCl == null) {
                                return;
                              }
                              eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
                                ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.bNtqOyRWxOrowAZX?.call(BByVDaYVEweNgSCl.map((e) => YIMConversation(gxECQohXBcwxDNVO: e)).toList());
                              });
                            }
                          });
                        }
                      }
                    },
                  );
                }
              },
            );
          }
        });
        eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
          AavZGHnlDnfBxwfP?.call(YIMResult<YIMEnum_LoginResult>(code: YIMEnum_LoginResult.Success, msg: "success"));
        });
        eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
          AavZGHnlDnfBxwfP = null;
        });
        //将历史的发送中消息,置为失败状态
        await eFtbLxhxTmdNVKuo.HsDBYdwzkEBPFhmJ.BIatOvGnmImodxXL(
          _YIMTableName.Message,
          () {
            return {"messageState": YIMEnum_MessageState.Fail.rawValue};
          },
          PldCyxtbMzvNSNom: Finder(filter: Filter.equals("messageState", YIMEnum_MessageState.Sending.rawValue)),
        );
        ptLoDBriUoBUHreo.PDCrHbGmsBdFRajZ.nkzuzrGKwvUcdDEb(OMKwYKeBBFVoTNBl: (ykNlEVGzREbGjoZV) async {
          if (ykNlEVGzREbGjoZV == null) return;
          for (var gxECQohXBcwxDNVO in ykNlEVGzREbGjoZV) {
            await ptLoDBriUoBUHreo.PDCrHbGmsBdFRajZ.seQaUCGGFYuCERMG(gxECQohXBcwxDNVO.lastMessage.conversationType, gxECQohXBcwxDNVO.lastMessage.getConversatinoID());
          }
          eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
            ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.vbkGgBUjJANFBecG?.call();
          });
          eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
            ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.ILHvgzQbwdReWqoO?.call(ykNlEVGzREbGjoZV);
          });
        });
        break;
      case "conversation_top_update":
        List<String> WuKEDsUBEzAbfoRS = (DEzbKDIBPJVTWSIB["conversationTops"] as List).map((element) => element.toString()).toList();
        eFtbLxhxTmdNVKuo.WuKEDsUBEzAbfoRS = WuKEDsUBEzAbfoRS;
        eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
          ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.vbkGgBUjJANFBecG?.call();
        });
        if (ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.ILHvgzQbwdReWqoO != null) {
          ptLoDBriUoBUHreo.PDCrHbGmsBdFRajZ.nkzuzrGKwvUcdDEb(OMKwYKeBBFVoTNBl: (ykNlEVGzREbGjoZV) {
            if (ykNlEVGzREbGjoZV == null) return;
            eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
              ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.ILHvgzQbwdReWqoO?.call(ykNlEVGzREbGjoZV);
            });
          });
        }
        break;
      case "disturbs_p2p_update":
        List<String> YgLjLpNRUxfAmNYX = (DEzbKDIBPJVTWSIB["disturbs_p2p"] as List).map((element) => element.toString()).toList();
        eFtbLxhxTmdNVKuo.YgLjLpNRUxfAmNYX = YgLjLpNRUxfAmNYX;
        eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
          ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.vbkGgBUjJANFBecG?.call();
        });
        if (ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.ILHvgzQbwdReWqoO != null) {
          ptLoDBriUoBUHreo.PDCrHbGmsBdFRajZ.nkzuzrGKwvUcdDEb(OMKwYKeBBFVoTNBl: (ykNlEVGzREbGjoZV) {
            if (ykNlEVGzREbGjoZV == null) return;
            eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
              ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.ILHvgzQbwdReWqoO?.call(ykNlEVGzREbGjoZV);
            });
          });
        }
        break;
      case "disturbs_team_update":
        List<String> CxPYZnJjsalLUyCw = (DEzbKDIBPJVTWSIB["disturbs_team"] as List).map((element) => element.toString()).toList();
        eFtbLxhxTmdNVKuo.CxPYZnJjsalLUyCw = CxPYZnJjsalLUyCw;
        eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
          ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.vbkGgBUjJANFBecG?.call();
        });
        if (ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.ILHvgzQbwdReWqoO != null) {
          ptLoDBriUoBUHreo.PDCrHbGmsBdFRajZ.nkzuzrGKwvUcdDEb(OMKwYKeBBFVoTNBl: (ykNlEVGzREbGjoZV) {
            if (ykNlEVGzREbGjoZV == null) return;
            eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
              ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.ILHvgzQbwdReWqoO?.call(ykNlEVGzREbGjoZV);
            });
          });
        }
        break;
      case "kick":
        ptLoDBriUoBUHreo.uvWNunbGgtEdyNiW.SCdqpYTPtefXVcCe();
        eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
          ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.MjNWSNzSPevgJqfi?.call(YIMResult<YIMEnum_OnlineState>(code: YIMEnum_OnlineState.Kick, msg: "Kicked by ${DEzbKDIBPJVTWSIB["device"]} device"));
        });
        break;
      case "kick_room":
        final RquNZoiaIGaxKDGz = DEzbKDIBPJVTWSIB["roomID"] as String;
        eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
          ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.NulXGAZapqyEQTYU?.call(RquNZoiaIGaxKDGz);
        });
        break;
      case "close_room":
        final RquNZoiaIGaxKDGz = DEzbKDIBPJVTWSIB["roomID"] as String;
        eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
          ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.YOtybFJQmFLWOppZ?.call(RquNZoiaIGaxKDGz);
        });
        break;
      case "message":
      case "message_sync":
        final ELBaeVfiMBfVvjdO = (DEzbKDIBPJVTWSIB["messages"] as List<dynamic>).map((element) => YIMMessage(mWEnrkpgWgfnODZg: _YIMTable_Message.fromJson(element))).toList();
        for (var mWEnrkpgWgfnODZg in ELBaeVfiMBfVvjdO) {
          Filter? TKUJvkDHgZbFgVJv;
          switch (mWEnrkpgWgfnODZg.conversationType) {
            case YIMEnum_ConversationType.P2P:
              TKUJvkDHgZbFgVJv = Filter.and([
                Filter.or([
                  Filter.and([Filter.equals("lastMessage.from", eFtbLxhxTmdNVKuo.hBYZOFteqhkvDgHA), Filter.equals("lastMessage.to", mWEnrkpgWgfnODZg.getConversatinoID())]),
                  Filter.and([Filter.equals("lastMessage.to", eFtbLxhxTmdNVKuo.hBYZOFteqhkvDgHA), Filter.equals("lastMessage.from", mWEnrkpgWgfnODZg.getConversatinoID())]),
                ]),
                Filter.equals("lastMessage.conversationType", mWEnrkpgWgfnODZg.conversationType.rawValue),
              ]);
              break;
            case YIMEnum_ConversationType.Team:
              TKUJvkDHgZbFgVJv = Filter.and([
                Filter.equals("lastMessage.to", mWEnrkpgWgfnODZg.getConversatinoID()),
                Filter.equals("lastMessage.conversationType", mWEnrkpgWgfnODZg.conversationType.rawValue),
              ]);
              break;
            case YIMEnum_ConversationType.ChatRoom:
              TKUJvkDHgZbFgVJv = Filter.and([
                Filter.equals("lastMessage.conversationType", mWEnrkpgWgfnODZg.conversationType.rawValue),
              ]);
              break;
          }
          var BByVDaYVEweNgSCl = await eFtbLxhxTmdNVKuo.HsDBYdwzkEBPFhmJ.LUwlOqRgyVmlEiyp<_YIMTable_Conversation>(
            _YIMTableName.Conversation,
            sprgVkbCCQhGYFSK: (map) => _YIMTable_Conversation.fromJson(map),
            PldCyxtbMzvNSNom: Finder(filter: TKUJvkDHgZbFgVJv),
          );
          if (BByVDaYVEweNgSCl == null) {
            return;
          }
          await ZuzGbbPXFXXwPXvl(mWEnrkpgWgfnODZg, uIyQyNIcjXdsIlqP == "message", OMKwYKeBBFVoTNBl: (oTLKfnnymNCTXHML) async {
            if (!oTLKfnnymNCTXHML) return;
            final KyUToNKdasnYcrci = BByVDaYVEweNgSCl!.isEmpty;
            BByVDaYVEweNgSCl = await eFtbLxhxTmdNVKuo.HsDBYdwzkEBPFhmJ.LUwlOqRgyVmlEiyp<_YIMTable_Conversation>(
              _YIMTableName.Conversation,
              sprgVkbCCQhGYFSK: (map) => _YIMTable_Conversation.fromJson(map),
              PldCyxtbMzvNSNom: Finder(filter: TKUJvkDHgZbFgVJv),
            );
            if (BByVDaYVEweNgSCl == null) {
              return;
            }
            if ([YIMEnum_ConversationType.P2P, YIMEnum_ConversationType.Team].contains(mWEnrkpgWgfnODZg.conversationType)) {
              if (KyUToNKdasnYcrci) {
                //新增的会话
                eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
                  ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.bNtqOyRWxOrowAZX?.call(BByVDaYVEweNgSCl!.map((e) => YIMConversation(gxECQohXBcwxDNVO: e)).toList());
                });
              } else {
                //原有的会话
                eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
                  ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.ILHvgzQbwdReWqoO?.call(BByVDaYVEweNgSCl!.map((e) => YIMConversation(gxECQohXBcwxDNVO: e)).toList());
                });
              }
              eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
                ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.vbkGgBUjJANFBecG?.call();
              });
            }
          });
        }
        break;
      case "broadcast":
        eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
          ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.hJyRATsSappwYemU?.call(YIMBroadcastMessage.fromJson(DEzbKDIBPJVTWSIB["message"]));
        });
        break;
      case "notification":
        eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
          ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.snFtgQoanrvKZGbH?.call(YIMNotificationMessage.fromJson(DEzbKDIBPJVTWSIB["message"]));
        });
        break;
      case "push":
        eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
          ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.LbyRSdHpXqCWsHGc?.call(YIMPushMessage.fromJson(DEzbKDIBPJVTWSIB["message"]));
        });
        break;
      case "revoke":
      case "revoke_sync":
        for (final bcEMCAWtDtEqrYph in (DEzbKDIBPJVTWSIB["messages"] as List<dynamic>)) {
          final mWEnrkpgWgfnODZg = YIMRevokeMessage.fromJson(bcEMCAWtDtEqrYph);
          if ([YIMEnum_ConversationType.P2P, YIMEnum_ConversationType.Team].contains(mWEnrkpgWgfnODZg.conversationType)) {
            final bBssIaNlNnKOAvZn = await ptLoDBriUoBUHreo.BnAKHlfpZoZtygAN.AckRTolahbNOGFUB(
              mWEnrkpgWgfnODZg.conversationType,
              mWEnrkpgWgfnODZg.messageID,
            );
            if (!bBssIaNlNnKOAvZn) return;
            final MaHGdkWWOVttEAeS = await ptLoDBriUoBUHreo.PDCrHbGmsBdFRajZ.seQaUCGGFYuCERMG(
              mWEnrkpgWgfnODZg.conversationType,
              mWEnrkpgWgfnODZg.conversationID,
              // unRead: _YIMEnum_ConversatypeUnRead.Minus,
            );
            if (!MaHGdkWWOVttEAeS) return;
            eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
              ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.vbkGgBUjJANFBecG?.call();
            });
            Filter? TKUJvkDHgZbFgVJv;
            switch (mWEnrkpgWgfnODZg.conversationType) {
              case YIMEnum_ConversationType.P2P:
                TKUJvkDHgZbFgVJv = Filter.and([
                  Filter.or([
                    Filter.and([Filter.equals("lastMessage.from", eFtbLxhxTmdNVKuo.hBYZOFteqhkvDgHA), Filter.equals("lastMessage.to", mWEnrkpgWgfnODZg.conversationID)]),
                    Filter.and([Filter.equals("lastMessage.to", eFtbLxhxTmdNVKuo.hBYZOFteqhkvDgHA), Filter.equals("lastMessage.from", mWEnrkpgWgfnODZg.conversationID)]),
                  ]),
                  Filter.equals("lastMessage.conversationType", mWEnrkpgWgfnODZg.conversationType.rawValue),
                ]);
                break;
              case YIMEnum_ConversationType.Team:
                TKUJvkDHgZbFgVJv = Filter.and([
                  Filter.equals("lastMessage.to", mWEnrkpgWgfnODZg.conversationID),
                  Filter.equals("lastMessage.conversationType", mWEnrkpgWgfnODZg.conversationType.rawValue),
                ]);
                break;
            }
            final BByVDaYVEweNgSCl = await eFtbLxhxTmdNVKuo.HsDBYdwzkEBPFhmJ.LUwlOqRgyVmlEiyp<_YIMTable_Conversation>(
              _YIMTableName.Conversation,
              sprgVkbCCQhGYFSK: (map) => _YIMTable_Conversation.fromJson(map),
              PldCyxtbMzvNSNom: Finder(filter: TKUJvkDHgZbFgVJv),
            );
            if (BByVDaYVEweNgSCl == null) {
              return;
            }
            eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
              ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.ILHvgzQbwdReWqoO?.call(BByVDaYVEweNgSCl.map((e) => YIMConversation(gxECQohXBcwxDNVO: e)).toList());
            });
          }
          eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
            ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.cBVOMoXdTyThFcRk?.call(mWEnrkpgWgfnODZg);
          });
        }
        break;
      case "receipt_p2p":
        List<String> sDsMSUHRWCWnUEMZ = (DEzbKDIBPJVTWSIB["conversationIDs"] as List).map((element) => element.toString()).toList();
        for (final DLwuDqfWcelSXXhD in sDsMSUHRWCWnUEMZ) {
          final voRizchBuKFeopdj = await ptLoDBriUoBUHreo.BnAKHlfpZoZtygAN.cHcferXdunSOGvab(
            YIMEnum_ConversationType.P2P,
            DLwuDqfWcelSXXhD,
            false,
          );
          if (!voRizchBuKFeopdj) return;
          final MaHGdkWWOVttEAeS = await ptLoDBriUoBUHreo.PDCrHbGmsBdFRajZ.seQaUCGGFYuCERMG(
            YIMEnum_ConversationType.P2P,
            DLwuDqfWcelSXXhD,
          );
          if (!MaHGdkWWOVttEAeS) return;
          eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
            ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.vbkGgBUjJANFBecG?.call();
          });
          final BByVDaYVEweNgSCl = await eFtbLxhxTmdNVKuo.HsDBYdwzkEBPFhmJ.LUwlOqRgyVmlEiyp<_YIMTable_Conversation>(
            _YIMTableName.Conversation,
            sprgVkbCCQhGYFSK: (map) => _YIMTable_Conversation.fromJson(map),
            PldCyxtbMzvNSNom: Finder(
              filter: Filter.and([
                Filter.or([
                  Filter.and([Filter.equals("lastMessage.from", eFtbLxhxTmdNVKuo.hBYZOFteqhkvDgHA), Filter.equals("lastMessage.to", DLwuDqfWcelSXXhD)]),
                  Filter.and([Filter.equals("lastMessage.to", eFtbLxhxTmdNVKuo.hBYZOFteqhkvDgHA), Filter.equals("lastMessage.from", DLwuDqfWcelSXXhD)]),
                ]),
                Filter.equals("lastMessage.conversationType", YIMEnum_ConversationType.P2P.rawValue),
              ]),
            ),
          );
          if (BByVDaYVEweNgSCl == null) {
            return;
          }
          eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
            ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.ILHvgzQbwdReWqoO?.call(BByVDaYVEweNgSCl.map((e) => YIMConversation(gxECQohXBcwxDNVO: e)).toList());
          });
          eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
            ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.UUHdWrrAJtOmFFHX?.call(DLwuDqfWcelSXXhD);
          });
        }
        break;
      case "receipt_team":
        List<String> sDsMSUHRWCWnUEMZ = (DEzbKDIBPJVTWSIB["conversationIDs"] as List).map((element) => element.toString()).toList();
        for (final DLwuDqfWcelSXXhD in sDsMSUHRWCWnUEMZ) {
          final voRizchBuKFeopdj = await ptLoDBriUoBUHreo.BnAKHlfpZoZtygAN.cHcferXdunSOGvab(
            YIMEnum_ConversationType.Team,
            DLwuDqfWcelSXXhD,
            false,
          );
          if (!voRizchBuKFeopdj) return;
          final MaHGdkWWOVttEAeS = await ptLoDBriUoBUHreo.PDCrHbGmsBdFRajZ.seQaUCGGFYuCERMG(
            YIMEnum_ConversationType.Team,
            DLwuDqfWcelSXXhD,
          );
          if (!MaHGdkWWOVttEAeS) return;
          eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
            ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.vbkGgBUjJANFBecG?.call();
          });
          final BByVDaYVEweNgSCl = await eFtbLxhxTmdNVKuo.HsDBYdwzkEBPFhmJ.LUwlOqRgyVmlEiyp<_YIMTable_Conversation>(
            _YIMTableName.Conversation,
            sprgVkbCCQhGYFSK: (map) => _YIMTable_Conversation.fromJson(map),
            PldCyxtbMzvNSNom: Finder(
              filter: Filter.and([
                Filter.equals("lastMessage.to", DLwuDqfWcelSXXhD),
                Filter.equals("lastMessage.conversationType", YIMEnum_ConversationType.Team.rawValue),
              ]),
            ),
          );
          if (BByVDaYVEweNgSCl == null) {
            return;
          }
          eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
            ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.ILHvgzQbwdReWqoO?.call(BByVDaYVEweNgSCl.map((e) => YIMConversation(gxECQohXBcwxDNVO: e)).toList());
          });
          eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
            ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.UUHdWrrAJtOmFFHX?.call(DLwuDqfWcelSXXhD);
          });
        }
        break;
      case "receipt_room":
        List<String> sDsMSUHRWCWnUEMZ = (DEzbKDIBPJVTWSIB["conversationIDs"] as List).map((element) => element.toString()).toList();
        for (final DLwuDqfWcelSXXhD in sDsMSUHRWCWnUEMZ) {
          eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
            ptLoDBriUoBUHreo.CTCflLMwyPmjZPwH.UUHdWrrAJtOmFFHX?.call(DLwuDqfWcelSXXhD);
          });
        }
        break;
      case "event_online":
        final XmmgPsMLuAacbnca = DEzbKDIBPJVTWSIB["user"] as String;
        eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
          ptLoDBriUoBUHreo.gIBffLBvsLQQSSxz.wldkkqaomaRtkvHS?.call(XmmgPsMLuAacbnca, YIMEnum_EventOnline.Online);
        });
        break;
      case "event_offline":
        final XmmgPsMLuAacbnca = DEzbKDIBPJVTWSIB["user"] as String;
        eFtbLxhxTmdNVKuo.WeloVHMlcPVpCsCr.vUWyYsqBHvAmVrYc(() {
          ptLoDBriUoBUHreo.gIBffLBvsLQQSSxz.wldkkqaomaRtkvHS?.call(XmmgPsMLuAacbnca, YIMEnum_EventOnline.Offline);
        });
        break;
      case "update_user":
        eFtbLxhxTmdNVKuo.plJXjIOyvNhjneLH = YIMUser.fromJson(DEzbKDIBPJVTWSIB["user"]);
    }
  });
}