Ejemplo n.º 1
0
        /// <summary>
        /// 测试用群发消息
        /// </summary>
        /// <param name="text"></param>
        public void Send()
        {
            var                 news       = new WX_MediaManager().Where(m => m.MediaType.Equals("news"))[0];
            List <string>       openIdList = WXAPP.WX_User.ToList().GetOpenIdList();
            string              result     = new MessageService(WXAPP.AppId, WXAPP.AppSecret).Send(news);
            WX_CustomMsgManager manager    = new WX_CustomMsgManager();
            JObject             json       = JObject.Parse(result);

            if (json["errcode"].ToString().Equals("0"))
            {
                foreach (var i in openIdList)
                {
                    WX_CustomMsg msg = new WX_CustomMsg()
                    {
                        MsgId      = json["msg_id"].ToString(),
                        OpenID     = i,
                        AppId      = WXAPP.AppId,
                        CreateTime = DateTime.Now,
                        Content    = news.MediaContent,
                        MsgSource  = "客服",
                        MsgType    = "text",
                    };
                    manager.Add(msg);
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 聊天队列
        /// </summary>
        /// <param name="UserId"></param>
        /// <param name="AppId"></param>
        /// <returns></returns>
        public ActionResult SelCustom(int UserId, string AppId)
        {
            //var dic = new Dictionary<string,dynamic>();
            //var userList = new WX_CustomMsgManager().Where(x => x.UserId == UserId && x.AppId == AppId).OrderByDescending(s=>s.CreateTime);
            //foreach (var item in userList)
            //{
            //    if (!dic.ContainsKey(item.OpenID))
            //    {
            //        var msgs = new List<object>();
            //        msgs.Add(new
            //        {
            //            item.OpenID,
            //            item.WX_User.HeadImageUrl,
            //            item.Content,
            //            item.WX_User.UserName,
            //            item.WX_User.UserNick,
            //            CreateTime = DateTimeUtility.DATE(Convert.ToDateTime(item.CreateTime))

            //        });
            //        dic.Add(item.OpenID, new { msgs });
            //    }else
            //    {
            //        var msg = dic[item.OpenID];
            //        msg.msgs.Add(new
            //        {
            //            item.OpenID,
            //            item.WX_User.HeadImageUrl,
            //            item.Content,
            //            item.WX_User.UserName,
            //            item.WX_User.UserNick,
            //            CreateTime = DateTimeUtility.DATE(Convert.ToDateTime(item.CreateTime))
            //        });
            //    }
            //}
            //var result = dic.ToList();
            var userList = new WX_CustomMsgManager().Where(x => x.UserId == UserId && x.AppId == AppId).OrderByDescending(s => s.CreateTime);
            var result   = userList.GroupBy(s => s.OpenID).Select(x => new
            {
                Count = 0,
                info  = x.Select(s => new {
                    s.OpenID,
                    s.WX_User.HeadImageUrl,
                    s.Content,
                    s.WX_User.UserName,
                    s.WX_User.UserNick,
                    CreateTime = DateTimeUtility.DATE(Convert.ToDateTime(s.CreateTime))
                }).FirstOrDefault()
            });

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 发送消息给用户
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        public ActionResult TaleToUser(WX_CustomMsg msg)
        {
            msg.MsgId      = Guid.NewGuid().ToString();
            msg.CreateTime = DateTime.Now;
            msg.MsgSource  = "客服";
            var Ap = new WX_AppManager().GetByPK(msg.AppId);

            //发送到微信
            CustomService customSvr = new CustomService(Ap.AppId, Ap.AppSecret);

            customSvr.SendText(msg.OpenID, msg.Content);
            bool IsTrue = new WX_CustomMsgManager().Add(msg);

            return(Json(IsTrue, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 获取用户信息
        /// </summary>
        /// <param name="UserId"></param>
        /// <param name="AppId"></param>
        /// <param name="OpenID"></param>
        /// <returns></returns>
        public ActionResult FansMsg(int UserId, string AppId, string OpenID)
        {
            List <WX_Queue> list = new WX_QueueManager().Where(s => s.MsgState == 1 && s.OpenID.Equals(OpenID));
            var             msg  = new List <object>();

            foreach (WX_Queue item in list)
            {
                WX_CustomMsg CM = new WX_CustomMsg();
                CM.MsgId      = item.MsgId;
                CM.OpenID     = item.OpenID;
                CM.UserId     = UserId;
                CM.AppId      = AppId;
                CM.CreateTime = item.CreateTime;
                switch (item.MsgType)
                {
                case "text":
                    CM.Content = XmlUtility.GetSingleNodeInnerText(item.XmlContent, "/xml/Content");
                    break;

                case "image":
                    CM.Content = XmlUtility.GetSingleNodeInnerText(item.XmlContent, "/xml/PicUrl");
                    break;

                case "voice":
                    CM.Content = XmlUtility.GetSingleNodeInnerText(item.XmlContent, "/xml/MediaId");
                    break;

                default:
                    break;
                }
                CM.MsgSource  = "粉丝";
                CM.MsgType    = item.MsgType;
                CM.XmlContent = item.XmlContent;
                new WX_QueueManager().Delete(item.MsgId); //删除
                new WX_CustomMsgManager().Add(CM);        //添加到数据库
                var info = new WX_CustomMsgManager().Where(s => s.MsgId == CM.MsgId).Select(s => new {
                    content = s.Content,
                    s.WX_User.HeadImageUrl,
                    s.MsgType
                });
                msg.Add(info);//添加到集合
            }
            return(Json(msg, JsonRequestBehavior.AllowGet));
        }