private void Meow_OnFriendMsgs(object sender, ObjectEvent.ObjectEventArgs e) { #region 私聊报头 -- Private Info Head -- var prop = new QQRecieveMessage( MessageIOType.Friend, new IOBody( e.Data["FromUin"].ToObject <long>(), e.Data["ToUin"].ToObject <long>(), null, null, null ), new MsgProperty( null, e.Data["MsgSeq"].ToObject <long?>(), null, null, e.Data["RedBaginfo"].ToString(), null ), e.CurrentQQ ); #endregion //文本 var content = e.Data["Content"].ToString(); //触发对应操作信息 switch (e.Data["MsgType"].ToString()) { case "TextMsg": { var msg = new TextMsg(content); _FriendTextMsgRecieve.Invoke(prop, msg); ServerUtil.Log($"好友文本信息 [{prop.IOBody.MsgFromQQ}->{prop.IOBody.MsgRecvQQ}] \n" + $"内容:{msg.Content}", LogType.ClientMessage, ConsoleColor.Magenta); } break; case "PicMsg": { var msg = new PicMsg(content); _FriendPicMsgRecieve.Invoke(prop, msg); if (msg._isSnapPic) { ServerUtil.Log($"好友闪照信息 [{prop.IOBody.MsgFromQQ}->{prop.IOBody.MsgRecvQQ}]", LogType.ClientMessage, ConsoleColor.Yellow); } else { ServerUtil.Log($"好友图片信息 [{prop.IOBody.MsgFromQQ}->{prop.IOBody.MsgRecvQQ}] \n" + $"内容:{msg.Content} | 图片共 {msg.PicList.Length} 张", LogType.ClientMessage, ConsoleColor.Yellow); } } break; case "VoiceMsg": { var msg = new VoiceMsg(content); _FriendVocMsgRecieve.Invoke(prop, msg); ServerUtil.Log($"好友语音信息 [{prop.IOBody.MsgFromQQ}->{prop.IOBody.MsgRecvQQ}]" , LogType.ClientMessage, ConsoleColor.DarkMagenta); } break; case "VideoMsg": { var msg = new VideoMsg(content); _FriendVidMsgRecieve.Invoke(prop, msg); ServerUtil.Log($"好友视频信息 [{prop.IOBody.MsgFromQQ}->{prop.IOBody.MsgRecvQQ}]" , LogType.ClientMessage, ConsoleColor.Green); } break; } ; }
/// <summary> /// 消息转发多客服 /// </summary> /// <param name="msg"></param> /// <param name="sendKey"></param> private void SendCustomerService(Object obj) { string result = string.Empty; string date = string.Empty; string strUrl = string.Empty; try { ReceiveMsgBase msg = obj as ReceiveMsgBase; if (msg == null) { return; } if (msg is LinkMsg) { LinkMsg link = msg as LinkMsg; link.Title = "<![CDATA[" + link.Title + "]]>"; link.Description = "<![CDATA[" + link.Description + "]]>"; link.Url = "<![CDATA[" + link.Url + "]]>"; } else if (msg is LocationMsg) { LocationMsg link = msg as LocationMsg; link.Location_X = "<![CDATA[" + link.Location_X + "]]>"; link.Location_Y = "<![CDATA[" + link.Location_Y + "]]>"; link.Scale = "<![CDATA[" + link.Scale + "]]>"; link.Label = "<![CDATA[" + link.Label + "]]>"; } else if (msg is PicMsg) { PicMsg link = msg as PicMsg; link.PicUrl = "<![CDATA[" + link.PicUrl + "]]>"; link.MediaId = "<![CDATA[" + link.MediaId + "]]>"; } else if (msg is TextMsg) { TextMsg link = msg as TextMsg; link.Content = "<![CDATA[" + link.Content + "]]>"; } else if (msg is VideoMsg) { VideoMsg link = msg as VideoMsg; link.ThumbMediaId = "<![CDATA[" + link.ThumbMediaId + "]]>"; link.MediaId = "<![CDATA[" + link.MediaId + "]]>"; } else if (msg is VoiceMsg) { VoiceMsg link = msg as VoiceMsg; link.MediaId = "<![CDATA[" + link.MediaId + "]]>"; link.Format = "<![CDATA[" + link.Format + "]]>"; link.Recognition = "<![CDATA[" + link.Recognition + "]]>"; } //try //{ // DataTable dt = DalMemberCommon.GetMemberInfoByWeiXinOpenId(msg.FromUserName); // if (dt != null && dt.Rows.Count > 0) // { date = msg.ToXml(); strUrl = @"http://dkf.ozner.net/service/wxcustomer.aspx"; } catch (Exception ex) { string errorinfo = "错误堆栈:" + ex.StackTrace; if (obj != null) { string addition = ""; string baseName = obj.GetType().Name; if (obj is ReceiveMsgBase) { ReceiveMsgBase rmb = obj as ReceiveMsgBase; Type type = rmb.GetType(); if (rmb is LinkMsg) { LinkMsg link = rmb as LinkMsg; addition = link.Title + "|" + link.Description + "|" + link.Url; } else if (rmb is LocationMsg) { LocationMsg link = rmb as LocationMsg; addition = link.Location_X + "|" + link.Location_Y + "|" + link.Scale + "|" + link.Label; } else if (rmb is PicMsg) { PicMsg link = rmb as PicMsg; addition = link.PicUrl + "|" + link.MediaId; } else if (rmb is TextMsg) { TextMsg link = rmb as TextMsg; addition = link.Content; } else if (rmb is VideoMsg) { VideoMsg link = rmb as VideoMsg; addition = link.MediaId + "|" + link.ThumbMediaId; } else if (rmb is VoiceMsg) { VoiceMsg link = rmb as VoiceMsg; addition = link.MediaId + "|" + link.Format + "|" + link.Recognition; } } errorinfo = "类型:" + obj.GetType().Name + " 额外信息:" + addition + " 错误信息:" + errorinfo; } //LogBase.LogHzLkt.LogExErr("HzLktSite", "OznerMall", "SendCustomerService", errorinfo, ELogExLevel.Higher, errorinfo); } try { result = WebClientHelper.CallPost(strUrl, date, Encoding.UTF8); } catch (Exception ex) { //LogBase.LogHzLkt.LogExErr(ex, ELogExLevel.Middle); } }
private void Meow_OnGroupMsgs(object sender, ObjectEvent.ObjectEventArgs e) { #region 群聊报头 -- Group Info Head -- var prop = new QQRecieveMessage( MessageIOType.Friend, new IOBody( e.Data["FromUserId"].ToObject <long>(), 0, e.Data["FromNickName"].ToString(), e.Data["FromGroupId"].ToObject <long>(), e.Data["FromGroupName"].ToString() ), new MsgProperty( null, e.Data["MsgSeq"].ToObject <long?>(), e.Data["MsgRandom"].ToObject <long?>(), null, e.Data["RedBaginfo"].ToString(), e.Data["MsgTime"].ToObject <long?>() ), e.CurrentQQ ); #endregion //文本 var content = e.Data["Content"].ToString(); //触发对应操作信息 switch (e.Data["MsgType"].ToString()) { case "TextMsg": { var msg = new TextMsg(content); _GroupTextMsgRecieve.Invoke(prop, msg); ServerUtil.Log($"群文本信息 [{prop.IOBody.MsgFromQQ}] " + $"在群聊 [{prop.IOBody.FromGroupId} :: {prop.IOBody.FromGroupName}] \n" + $"内容:{msg.Content}", LogType.ClientMessage, ConsoleColor.Magenta); } break; case "AtMsg": { var msg = new AtTextMsg(content); _GroupAtTextMsgRecieve.Invoke(prop, msg); ServerUtil.Log($"群At文本信息 [{prop.IOBody.MsgFromQQ}] " + $"在群聊 [{prop.IOBody.FromGroupId} :: {prop.IOBody.FromGroupName}] \n" + $"内容:{msg.Content}", LogType.ClientMessage, ConsoleColor.Magenta, ConsoleColor.Cyan); } break; case "PicMsg": { var msg = new PicMsg(content); var d = "图片"; if (msg.AtedQQ != null) { _GroupAtPicMsgRecieve.Invoke(prop, msg); d = "At图片"; } if (msg._isSnapPic) { d = "闪照"; } _GroupPicMsgRecieve.Invoke(prop, msg); ServerUtil.Log($"群{d} [{prop.IOBody.MsgFromQQ}] " + $"在群聊 [{prop.IOBody.FromGroupId} :: {prop.IOBody.FromGroupName}] \n" + $"内容:{msg.Content} | 图片共 {msg.PicList.Length} 张", LogType.ClientMessage, ConsoleColor.Yellow); } break; case "VoiceMsg": { var msg = new VoiceMsg(content); _GroupVocMsgRecieve.Invoke(prop, msg); ServerUtil.Log($"群语音信息 [{prop.IOBody.MsgFromQQ}] " + $"在群聊 [{prop.IOBody.FromGroupId} :: {prop.IOBody.FromGroupName}]" , LogType.ClientMessage, ConsoleColor.DarkMagenta); } break; case "VideoMsg": { var msg = new VideoMsg(content); _GroupVidMsgRecieve.Invoke(prop, msg); ServerUtil.Log($"群视频信息 [{prop.IOBody.MsgFromQQ}] " + $"在群聊 [{prop.IOBody.FromGroupId} :: {prop.IOBody.FromGroupName}]" , LogType.ClientMessage, ConsoleColor.Green); } break; } ; }