/// <summary>
        /// 加载数据
        /// </summary>
        /// <param name="strWhere">条件</param>
        void LoadData(string strWhere)
        {
            txtName.Text = "";
            ReceiveTextMsgDAL dal = new ReceiveTextMsgDAL();
            DataSet           ds  = dal.GetReceiveTextMsgList(strWhere);
            DataView          dv  = ds.Tables[0].DefaultView;

            AspNetPager1.RecordCount = dv.Count;

            PagedDataSource pds = new PagedDataSource();

            pds.DataSource       = dv;
            pds.AllowPaging      = true;
            pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
            pds.PageSize         = AspNetPager1.PageSize;
            Repeater1.DataSource = pds;
            Repeater1.DataBind();
        }
Esempio n. 2
0
        /// <summary>
        /// 接收消息时,记录消息信息
        /// </summary>
        /// <param name="doc"></param>
        public void MsgReceiving(XmlDocument doc)
        {
            if (doc != null)
            {
                ReceiveMsgDAL dal  = new ReceiveMsgDAL();
                ReceiveMsg    info = new ReceiveMsg()
                {
                    WXConfigID   = wxConfig.ID,
                    CreateTime   = doc.DocumentElement.SelectSingleNode("CreateTime").InnerText,
                    FromUserName = doc.DocumentElement.SelectSingleNode("FromUserName").InnerText,
                    ToUserName   = doc.DocumentElement.SelectSingleNode("ToUserName").InnerText,
                    MsgType      = doc.DocumentElement.SelectSingleNode("MsgType").InnerText,
                    MsgBody      = doc.InnerXml
                };
                dal.InsertInfo(info);

                string msgType = doc.DocumentElement.SelectSingleNode("MsgType").InnerText;
                if (msgType.ToLower() == "text")
                {
                    ReceiveTextMsgDAL receiveTextMsgDAL = new ReceiveTextMsgDAL();
                    ReceiveTextMsg    receiveTextMsg    = new ReceiveTextMsg()
                    {
                        WXConfigID   = wxConfig.ID,
                        CreateTime   = doc.DocumentElement.SelectSingleNode("CreateTime").InnerText,
                        FromUserName = doc.DocumentElement.SelectSingleNode("FromUserName").InnerText,
                        ToUserName   = doc.DocumentElement.SelectSingleNode("ToUserName").InnerText,
                        MsgType      = doc.DocumentElement.SelectSingleNode("MsgType").InnerText,
                        Content      = doc.DocumentElement.SelectSingleNode("Content").InnerText,
                    };
                    receiveTextMsgDAL.Insert(receiveTextMsg);
                }

                string                msgcontent = string.Empty;
                string                openid     = string.Empty;
                DAL.CR.ChatRoomDAL    roomdal    = new DAL.CR.ChatRoomDAL();
                DAL.CR.ChatUsersDAL   userdal    = new DAL.CR.ChatUsersDAL();
                Model.CR.ChatUsers    usermodel  = new Model.CR.ChatUsers();
                DAL.CR.ChatMessageDAL msgdal     = new DAL.CR.ChatMessageDAL();
                Model.CR.ChatMessage  msgmodel   = new Model.CR.ChatMessage();
                UserDAL               wx_userdal = new UserDAL();
                User wx_usermodel = new User();
                openid = doc.DocumentElement.SelectSingleNode("FromUserName").InnerText;
                string ChatUserName = string.Empty;
                if (openid != null && openid != "")
                {
                    if (!wx_userdal.ExistUserByOpenID(openid))
                    {
                        UserInfo userinfo = weixin.GetUserInfo(openid);//获取用户信息
                        wx_usermodel.ID            = Guid.NewGuid().ToString("N").ToUpper();
                        wx_usermodel.City          = userinfo.City;
                        wx_usermodel.Country       = userinfo.Country;
                        wx_usermodel.HeadImgUrl    = userinfo.Headimgurl;
                        wx_usermodel.Language      = userinfo.Language;
                        wx_usermodel.NickName      = userinfo.NickName;
                        wx_usermodel.OpenID        = userinfo.OpenId;
                        wx_usermodel.Province      = userinfo.Province;
                        wx_usermodel.Sex           = userinfo.Sex;
                        wx_usermodel.Subscribe     = userinfo.Subscribe;
                        wx_usermodel.SubscribeTime = userinfo.Subscribe_Time;
                        ChatUserName = userinfo.NickName;
                        if (null != wx_usermodel.ID)
                        {
                            wx_userdal.Insert(wx_usermodel);
                        }
                    }
                    else
                    {
                        ChatUserName = wx_userdal.GetUserValueByOpenID("NickName", openid).ToString();
                    }
                }
                else////OpenID为空
                {
                }
                int strRoomID = 1;
                #region  墙信息
                if (msgType.ToLower() == "text")
                {
                    msgcontent = doc.DocumentElement.SelectSingleNode("Content").InnerText;
                    if (msgcontent.Contains("#"))
                    {
                        if (openid != null && openid != "")
                        {
                            #region  务号取用户加入信息
                            if (msgcontent.Length <= 1)                                         //判断是否单独发送 #
                            {
                                if (userdal.ExistChatUser(Convert.ToInt32(msgcontent), openid)) //如果存在该用户
                                {
                                    string uid = userdal.GetChatUserValueByOpenID("ID", openid, Convert.ToInt32(msgcontent)).ToString();
                                    if (uid.Trim() != null && uid.Trim() != "")
                                    {
                                        userdal.UpdateChatUserIsDel(uid);//更新用户状态  提示表示用户离开房间
                                    }
                                }
                            }
                            else
                            {
                                msgcontent = msgcontent.Substring(1);
                                if (Regex.IsMatch(msgcontent, @"^\d+$"))//判断是否为数字
                                {
                                    string roomsitecode = roomdal.GetChatRoomValueByID("SiteCode", Convert.ToInt32(msgcontent)).ToString();
                                    if (roomsitecode.Trim() != null && roomsitecode.Trim() != "")
                                    {
                                        if (roomdal.ExistChatRoomNum(roomsitecode, Convert.ToInt32(msgcontent)))
                                        {
                                            //提示房间存在
                                            if (userdal.ExistChatUser(Convert.ToInt32(msgcontent), openid))
                                            {
                                                //提示该用户已进入该房间
                                            }
                                            else
                                            {
                                                usermodel.ID     = Guid.NewGuid().ToString("N").ToUpper();
                                                usermodel.OpenID = openid;
                                                usermodel.RoomID = Convert.ToInt32(msgcontent);
                                                usermodel.IsDel  = 0;
                                                usermodel.IsWin  = 0;
                                                userdal.AddChatUsers(usermodel);
                                            }
                                        }
                                    }
                                }
                            }
                            #endregion
                        }
                        else
                        {
                            #region 订阅号获取上墙信息
                            string[] sArray   = msgcontent.Split('#');
                            string   username = string.Empty;
                            string   msginfo  = string.Empty;
                            try
                            {
                                username = sArray[0].ToString();
                            }
                            catch (Exception)
                            {
                            }
                            try
                            {
                                msginfo = sArray[1].ToString();
                            }
                            catch (Exception)
                            {
                            }
                            if (username.Trim() != null && username.Trim() != "")
                            {
                                if (userdal.ExistChatUser(username))//判断用户名是否已存在
                                {
                                    //已存在用户
                                    if (msginfo.Trim() == null || msginfo.Trim() == "")
                                    {
                                        userdal.UpdateChatUserIsDel(username);//删除用户
                                    }
                                }
                                else
                                {
                                    usermodel.ID     = Guid.NewGuid().ToString("N").ToUpper();
                                    usermodel.OpenID = username;
                                    usermodel.RoomID = strRoomID;
                                    usermodel.IsDel  = 0;
                                    usermodel.IsWin  = 0;
                                    userdal.AddChatUsers(usermodel);
                                }
                                if (msginfo.Trim() != null && msginfo.Trim() != "")
                                {
                                    msgmodel.ID       = Guid.NewGuid().ToString("N").ToUpper();
                                    msgmodel.UserID   = username;
                                    msgmodel.RoomID   = strRoomID;
                                    msgmodel.MsgType  = "text";
                                    msgmodel.MsgText  = msginfo;
                                    msgmodel.MsgState = 0;//1表示通过 0表示不通过
                                    msgmodel.IsDel    = 0;
                                    msgdal.AddChatMessage(msgmodel);
                                }
                            }
                            #endregion
                        }
                    }
                    else
                    {
                        #region  务号取上墙信息
                        if (userdal.ExistChatUser(strRoomID, openid))
                        {
                            //提示已经存在该用户
                            string userid = userdal.GetChatUserValueByOpenID("ID", openid, strRoomID).ToString();
                            msgmodel.ID       = Guid.NewGuid().ToString("N").ToUpper();
                            msgmodel.UserID   = userid;
                            msgmodel.RoomID   = strRoomID;
                            msgmodel.MsgType  = "text";
                            msgmodel.MsgText  = msgcontent;
                            msgmodel.MsgState = 0;//1表示通过 0表示不通过
                            msgmodel.IsDel    = 0;
                            msgdal.AddChatMessage(msgmodel);
                        }
                        #endregion
                    }
                }
                else if (msgType.ToLower() == "image")
                {
                    #region  务号取上墙信息
                    if (userdal.ExistChatUser(strRoomID, openid))
                    {
                        //提示已经存在该用户
                        string userid = userdal.GetChatUserValueByOpenID("ID", openid, strRoomID).ToString();
                        msgmodel.ID       = Guid.NewGuid().ToString("N").ToUpper();
                        msgmodel.UserID   = userid;
                        msgmodel.RoomID   = strRoomID;
                        msgmodel.MsgType  = "image";
                        msgmodel.MsgText  = msgcontent;
                        msgmodel.MsgState = 0;//1表示通过 0表示不通过
                        msgmodel.IsDel    = 0;
                        msgdal.AddChatMessage(msgmodel);
                    }
                    #endregion
                }
                #endregion
            }
        }