public ActionResult Index(MsgUser MsgUser, EFPagingInfo <MsgUser> p, int IsFirst = 0)
        {
            if (IsFirst == 0)
            {
                PageOfItems <MsgUser> MsgUserList1 = new PageOfItems <MsgUser>(new List <MsgUser>(), 0, 10, 0, new Hashtable());
                ViewBag.MsgUserList = MsgUserList1;
                ViewBag.MsgUser     = MsgUser;
                return(View());
            }
            if (!MsgUser.Name.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.Name.Contains(MsgUser.Name));
            }
            if (!MsgUser.State.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.State == (MsgUser.State == 99 ? 0 : MsgUser.State));
            }
            p.SqlWhere.Add(f => f.PId == AdminUser.Id);
            p.OrderByList.Add("Id", "DESC");
            IPageOfItems <MsgUser> MsgUserList = Entity.Selects <MsgUser>(p);

            ViewBag.MsgUserList = MsgUserList;
            ViewBag.MsgUser     = MsgUser;
            return(View());
        }
 private void DistributionUserMessege(MsgUser newMsg)
 {
     for (int i = 0; i < userManager.GetActiveUsers.Count(); i++)
     {
         bf.Serialize(userManager.GetActiveUsers.ElementAt(i).GetTcpStream, newMsg);
     }
 }
Пример #3
0
        public ActionResult Index(MsgUser MsgUser, EFPagingInfo <MsgUser> p, int IsFirst = 0)
        {
            if (IsFirst == 0)
            {
                PageOfItems <MsgUser> MsgUserList1 = new PageOfItems <MsgUser>(new List <MsgUser>(), 0, 10, 0, new Hashtable());
                ViewBag.MsgUserList = MsgUserList1;
                ViewBag.MsgUser     = MsgUser;
                ViewBag.UsersList   = new List <Users>();
                ViewBag.IsMyDelete  = checkPower("Delete");
                ViewBag.IsMyEdit    = checkPower("Edit");
                ViewBag.IsMySave    = checkPower("Save");
                ViewBag.IsMyAdd     = checkPower("Add");
                return(View());
            }
            if (!MsgUser.Info.IsNullOrEmpty())
            {
                if (MsgUser.Info == "全体商户")
                {
                    p.SqlWhere.Add(f => f.UId == 0);
                }
                else
                {
                    IList <Users> UList = Entity.Users.Where(n => n.TrueName.Contains(MsgUser.Info) || n.NeekName.Contains(MsgUser.Info) || n.UserName == MsgUser.Info).ToList();
                    List <int>    UIds  = new List <int>();
                    foreach (var pp in UList)
                    {
                        UIds.Add(pp.Id);
                    }
                    p.SqlWhere.Add(f => UIds.Contains(f.UId));
                }
            }
            if (!MsgUser.Name.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.Name.Contains(MsgUser.Name));
            }
            if (!MsgUser.State.IsNullOrEmpty())
            {
                p.SqlWhere.Add(f => f.State == (MsgUser.State == 99 ? 0 : MsgUser.State));
            }
            p.OrderByList.Add("Id", "DESC");
            IPageOfItems <MsgUser> MsgUserList = Entity.Selects <MsgUser>(p);

            ViewBag.MsgUserList = MsgUserList;
            ViewBag.MsgUser     = MsgUser;
            IList <MsgUser> List = MsgUserList.GroupBy(n => n.UId).Select(n => n.First()).ToList();
            List <int>      UId  = new List <int>();

            foreach (var pp in List)
            {
                UId.Add(pp.UId);
            }
            ViewBag.UsersList = Entity.Users.Where(n => n.State == 1 && UId.Contains(n.Id)).ToList();

            ViewBag.IsMyDelete = checkPower("Delete");
            ViewBag.IsMyEdit   = checkPower("Edit");
            ViewBag.IsMySave   = checkPower("Save");
            ViewBag.IsMyAdd    = checkPower("Add");
            return(View());
        }
Пример #4
0
        public void Delete(MsgUser MsgUser, string InfoList, int?IsDel)
        {
            if (string.IsNullOrEmpty(InfoList))
            {
                InfoList = MsgUser.Id.ToString();
            }
            int Ret = Entity.MoveToDeleteEntity <MsgUser>(InfoList, IsDel, AdminUser.UserName);

            Entity.SaveChanges();
            Response.Write(Ret);
        }
        public void ChangeStatus(MsgUser MsgUser, string InfoList, string Clomn, string Value)
        {
            if (string.IsNullOrEmpty(InfoList))
            {
                InfoList = MsgUser.Id.ToString();
            }
            int Ret = Entity.ChangeEntity <MsgUser>(InfoList, Clomn, Value);

            Entity.SaveChanges();
            Response.Write(Ret);
        }
Пример #6
0
        public void Add(MsgUser MsgUser, string AgentId, bool?IsShowSupAgent)
        {
            if (MsgUser.UId == 0)
            {
                Response.Redirect("/Manage/home/error.html?msg=参数错误~");
                return;
            }
            string sendUsers = "";

            //根据代理商发送
            //if (IsState == "0")
            //{
            //    int AId = Convert.ToInt32(AgentId);

            //    IList<Users> listUser = new List<Users>();
            //    //获取代理商
            //    SysAgent LowerLevelAgent = Entity.SysAgent.Where(s => s.Id == AId).FirstOrNew();
            //    //是否要显示下级
            //    if ((bool)IsShowSupAgent)
            //    {
            //        IList<SysAgent> SysAgentList = LowerLevelAgent.GetSupAgent(Entity);
            //        listUser = SysAgentList.GetAgentUsers(Entity);
            //    }
            //    else
            //    {
            //        listUser = LowerLevelAgent.GetAgentUsers(Entity);

            //    }
            //    if (listUser.Count > 1)
            //    {
            //        MsgUser.UId = 0;
            //        foreach (var item in listUser)
            //        {
            //            sendUsers += item.Id + ",";
            //        }
            //    }
            //    else
            //    {
            //        MsgUser.UId = listUser[0].Id;
            //    }
            //}
            MsgUser.PId         = AdminUser.Id;
            MsgUser.SendUsers   = !string.IsNullOrWhiteSpace(sendUsers) ? "," + sendUsers : sendUsers;
            MsgUser.AddTime     = DateTime.Now;
            MsgUser.ReadUsers   = string.Empty;
            MsgUser.DeleteUsers = string.Empty;
            Entity.MsgUser.AddObject(MsgUser);
            Entity.SaveChanges();
            if (string.IsNullOrWhiteSpace(MsgUser.SendUsers))
            {
                MsgUser.PushMsg(Entity);
            }
            BaseRedirect();
        }
Пример #7
0
        public ActionResult Edit(MsgUser MsgUser, int UserId = 0)
        {
            Dictionary <int, string> userName = new Dictionary <int, string>();

            if (MsgUser.Id != 0)
            {
                MsgUser = Entity.MsgUser.FirstOrDefault(n => n.Id == MsgUser.Id);
                if (MsgUser == null)
                {
                    ViewBag.ErrorMsg = "数据不存在";
                    return(View("Error"));
                }
                //有多个用户的情况下
                if (MsgUser.UId == 0 && !string.IsNullOrEmpty(MsgUser.SendUsers))
                {
                    string[] uid = MsgUser.SendUsers.Substring(1, MsgUser.SendUsers.Length - 1).Split(',');
                    foreach (var item in uid)
                    {
                        if (!string.IsNullOrWhiteSpace(item))
                        {
                            int Uid       = Convert.ToInt32(item);
                            var userModel = Entity.Users.FirstOrDefault(x => x.Id == Uid);
                            if (userModel != null)
                            {
                                userName.Add(userModel.Id, string.IsNullOrWhiteSpace(userModel.TrueName) ? userModel.UserName : userModel.TrueName);
                            }
                        }
                    }
                }
                //全体商户的情况下
                else if (MsgUser.UId == 0 && string.IsNullOrWhiteSpace(MsgUser.SendUsers))
                {
                    userName.Add(0, "全体商户");
                }
                //单个用户的情况下
                else if (MsgUser.UId > 0 && string.IsNullOrWhiteSpace(MsgUser.SendUsers))
                {
                    var userModel = Entity.Users.FirstOrDefault(x => x.Id == MsgUser.UId);
                    if (userModel != null)
                    {
                        userName.Add(userModel.Id, string.IsNullOrWhiteSpace(userModel.TrueName) ? userModel.UserName : userModel.TrueName);
                    }
                }
            }
            ViewBag.UserName     = userName;
            ViewBag.SysAgentList = Entity.SysAgent.Where(x => x.Tier == 1 && x.State == 1).ToList();
            ViewBag.MsgUser      = MsgUser;
            if (Request.UrlReferrer != null)
            {
                Session["Url"] = Request.UrlReferrer.ToString();
            }
            return(View());
        }
        public ActionResult Edit(MsgUser MsgUser)
        {
            Dictionary <int, string> userName = new Dictionary <int, string>();

            if (MsgUser.Id != 0)
            {
                MsgUser = Entity.MsgUser.FirstOrDefault(x => x.Id == MsgUser.Id && x.PId == AdminUser.Id);
                if (MsgUser == null)
                {
                    ViewBag.ErrorMsg = AgentLanguage.Empty;
                    return(View("Error"));
                }
                //有多个用户的情况下
                if (MsgUser.UId == 0 && MsgUser.SendUsers != ",0,")
                {
                    string[] uid = MsgUser.SendUsers.Substring(1, MsgUser.SendUsers.Length - 1).Split(',');
                    foreach (var item in uid)
                    {
                        if (!string.IsNullOrWhiteSpace(item))
                        {
                            int Uid       = Convert.ToInt32(item);
                            var userModel = Entity.Users.FirstOrDefault(x => x.Id == Uid);
                            if (userModel != null)
                            {
                                userName.Add(userModel.Id, string.IsNullOrWhiteSpace(userModel.TrueName) ? userModel.UserName : userModel.TrueName);
                            }
                        }
                    }
                }
                //全体商户的情况下
                else if (MsgUser.UId == 0 && MsgUser.SendUsers == ",0,")
                {
                    userName.Add(0, "全体商户");
                }
                //单个用户的情况下
                else if (MsgUser.UId > 0 && MsgUser.SendUsers != ",0,")
                {
                    var userModel = Entity.Users.FirstOrDefault(x => x.Id == MsgUser.UId);
                    if (userModel != null)
                    {
                        userName.Add(userModel.Id, string.IsNullOrWhiteSpace(userModel.TrueName) ? userModel.UserName : userModel.TrueName);
                    }
                }
            }
            ViewBag.UserName = userName;
            ViewBag.MsgUser  = MsgUser;
            if (Request.UrlReferrer != null)
            {
                Session["Url"] = Request.UrlReferrer.ToString();
            }
            return(View());
        }
Пример #9
0
        public void Post()
        {
            string Data = DataObj.GetData();

            if (Data.IsNullOrEmpty())
            {
                DataObj.OutError("1000");
                return;
            }
            JObject json = new JObject();

            try
            {
                json = (JObject)JsonConvert.DeserializeObject(Data);
            }
            catch (Exception Ex)
            {
                Log.Write("[MsgUser]:", "【Data】" + Data, Ex);
            }
            if (json == null)
            {
                DataObj.OutError("1000");
                return;
            }
            MsgUser MsgUser = new MsgUser();

            MsgUser = JsonToObject.ConvertJsonToModel(MsgUser, json);

            Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == MsgUser.Token);

            if (baseUsers == null)//用户令牌不存在
            {
                DataObj.OutError("2004");
                return;
            }
            if (baseUsers.State != 1)//用户被锁定
            {
                DataObj.OutError("2003");
                return;
            }

            string uid = string.Format(",{0},", baseUsers.Id);

            int Count = Entity.MsgUser.Count(n => (n.UId == baseUsers.Id && n.State == 1) || (n.UId == 0 && !n.ReadUsers.Contains(uid) && !n.DeleteUsers.Contains(uid) && n.AddTime > baseUsers.AddTime && (n.SendUsers.Contains(uid) || n.SendUsers == null || n.SendUsers == "")));

            baseUsers.Cols     = "MsgCount";
            baseUsers.MsgCount = Count;

            DataObj.Data = baseUsers.OutJson();
            DataObj.Code = "0000";
            DataObj.OutString();
        }
Пример #10
0
        public void Save(MsgUser MsgUser)
        {
            if (MsgUser.UId == 0)
            {
                Response.Redirect("/Manage/home/error.html?msg=参数错误~");
                return;
            }
            MsgUser baseMsgUser = Entity.MsgUser.FirstOrDefault(n => n.Id == MsgUser.Id);

            baseMsgUser = Request.ConvertRequestToModel <MsgUser>(baseMsgUser, MsgUser);
            Entity.SaveChanges();
            BaseRedirect();
        }
 private void AddUserMessegeToDb(MsgUser newMsg)
 {
     if (newMsg != null)
     {
         newMsg.Sender = context.Users.FirstOrDefault(u => u.UserName == newMsg.Sender.UserName);
         if (newMsg.Sender != null)
         {
             context.UserMesseges.Attach(newMsg);
             context.UserMesseges.Add(newMsg);
             context.SaveChanges();
         }
     }
 }
        public void Add(MsgUser MsgUser, bool?IsShowSupAgent)
        {
            if (MsgUser.UId == 0)
            {
                Response.Redirect("/Agent/home/error.html?msg=参数错误~");
                return;
            }
            IList <Users> listUser  = new List <Users>();
            string        sendUsers = "";
            //获取代理商
            SysAgent LowerLevelAgent = null;

            #region 单个用户或者全体商户 处理
            //if (MsgUser.UId == 0)
            //{
            //    LowerLevelAgent = Entity.SysAgent.Where(s => s.Id == BasicAgent.Id).FirstOrNew();
            //    //是否要显示下级
            //    if ((bool)IsShowSupAgent)
            //    {
            //        IList<SysAgent> SysAgentList = LowerLevelAgent.GetSupAgent(Entity);
            //        listUser = SysAgentList.GetAgentUsers(Entity);
            //    }
            //    else
            //    {
            //        listUser = LowerLevelAgent.GetAgentUsers(Entity);
            //    }
            //    if (listUser.Count > 0)
            //    {
            //        MsgUser.UId = 0;
            //        foreach (var item in listUser)
            //        {
            //            sendUsers += item.Id + ",";
            //        }
            //    }
            //}
            #endregion

            MsgUser.PId = AdminUser.Id;
            //MsgUser.SendUsers = !string.IsNullOrWhiteSpace(sendUsers) ? "," + sendUsers : ",0,";
            MsgUser.SendUsers   = "";
            MsgUser.AddTime     = DateTime.Now;
            MsgUser.ReadUsers   = string.Empty;
            MsgUser.DeleteUsers = string.Empty;
            Entity.MsgUser.AddObject(MsgUser);
            Entity.SaveChanges();
            if (MsgUser.UId > 0)
            {
                MsgUser.PushMsg(Entity);
            }
            BaseRedirect();
        }
Пример #13
0
        public static void Process(ClientSocket userSocket, byte[] packet)
        {
            var msgLogin = (MsgLogin)packet;
            var username = msgLogin.GetUsername();
            var password = msgLogin.GetPassword();

            userSocket.UseCompression = msgLogin.ClientSupportCompression;
            FConsole.WriteLine($"MsgLogin: {username} with password {password} (compress: {userSocket.UseCompression}) requesting login.");

            var user = new User
            {
                Socket   = userSocket,
                Username = username,
                Password = password
            };

            user.Socket.OnDisconnect += user.OnDisconnect;
            user.Socket.StateObject   = user;

            if (Core.Db.Authenticate(username, password))
            {
                Core.Db.LoadUser(ref user);
            }
            else
            {
                Core.Db.AddUser(user);
            }

            msgLogin.UniqueId = user.Id;
            Collections.OnlineUsers.TryAdd(user.Id, user);
            user.Send(msgLogin, true);

            var userInfoPacket = MsgUser.Create(user.Id, user.Nickname, user.AvatarUrl, user.Email, true);

            foreach (var friendId in user.Friends)
            {
                var friend = Oracle.GetUserFromId(friendId);
                if (friend.Socket != null && friend.Socket.IsConnected)
                {
                    friend.Send(userInfoPacket);
                }
            }
            user.Send(userInfoPacket);
            FConsole.WriteLine($"MsgLogin Deserializing & Processing took {((((float)PacketRouter.Stopwatch.ElapsedTicks) / Stopwatch.Frequency) * 1000000):0} microsec");
        }
        public void Delete(MsgUser MsgUser, string InfoList, int?IsDel)
        {
            if (string.IsNullOrEmpty(InfoList))
            {
                InfoList = MsgUser.Id.ToString();
            }
            MsgUser baseMsgUser = Entity.MsgUser.FirstOrDefault(n => n.Id == MsgUser.Id && n.PId == AdminUser.Id);

            if (baseMsgUser == null)
            {
                Response.Redirect("/Agent/home/error.html?msg=无权限删除~");
                return;
            }
            int Ret = Entity.MoveToDeleteEntity <MsgUser>(InfoList, IsDel, AdminUser.UserName);

            Entity.SaveChanges();
            Response.Write(Ret);
        }
        public void Save(MsgUser MsgUser)
        {
            if (MsgUser.UId == 0)
            {
                Response.Redirect("/Agent/home/error.html?msg=参数错误~");
                return;
            }
            MsgUser baseMsgUser = Entity.MsgUser.FirstOrDefault(n => n.Id == MsgUser.Id && n.PId == AdminUser.Id);

            if (baseMsgUser == null)
            {
                Response.Redirect("/Agent/home/error.html?msg=无权限修改~");
                return;
            }
            MsgUser.SendUsers = baseMsgUser.SendUsers;
            MsgUser.UId       = baseMsgUser.UId;
            // MsgUser.SendUsers = baseMsgUser.SendUsers;
            baseMsgUser = Request.ConvertRequestToModel <MsgUser>(baseMsgUser, MsgUser);
            Entity.SaveChanges();
            BaseRedirect();
        }
        private void btnSend_Click(object sender, EventArgs e)
        {
            MsgUser msg = new MsgUser(newClient.GetUser);

            msg.TxtMessege = txtSendMessege.Text;
            newClient.SendMessege(msg);
            if (newClient.ServerError)
            {
                DialogResult dr = MessageBox.Show("Error! Please check the server activity.", "Server Error!",
                                                  MessageBoxButtons.RetryCancel, MessageBoxIcon.Error);
                if (dr == DialogResult.Retry)
                {
                    btnSend_Click(sender, e);
                    return;
                }
                else
                {
                    return;
                }
            }
            txtSendMessege.Clear();
        }
        void MessageLoop()
        {
            MsgLogin login = new MsgLogin();

            login.InitHeader("ahai", "gca");
            login.username = "******";
            login.password = "******";
            MessageHeader result = _TcpMessageClient.SendRecvMessage(login, 1000);

            if (result != null)
            {
                MsgText msgtext = (MsgText)result;
                Console.WriteLine(msgtext.text);
            }
            MsgUser user = new MsgUser();

            user.InitHeader("ahai", "gca");
            user.username = "******";
            user.password = "******";
            user.role     = "admin";
            if (!_TcpMessageClient.SendMessage <MsgUser>(user))
            {
                return;
            }
            MsgText text = new MsgText();

            text.InitHeader("ahai", "gca");
            do
            {
                string msg = Console.ReadLine();
                text.text = msg;
                if (!_TcpMessageClient.SendMessage <MsgText>(text))
                {
                    break;
                }
            } while (true);
        }
        public void Post()
        {
            string Data = DataObj.GetData();

            if (Data.IsNullOrEmpty())
            {
                DataObj.OutError("1000");
                return;
            }
            JObject json = new JObject();

            try
            {
                json = (JObject)JsonConvert.DeserializeObject(Data);
            }
            catch (Exception Ex)
            {
                Log.Write("[MsgUser]:", "【Data】" + Data, Ex);
            }
            if (json == null)
            {
                DataObj.OutError("1000");
                return;
            }
            MsgUser MsgUser = new MsgUser();

            MsgUser = JsonToObject.ConvertJsonToModel(MsgUser, json);

            Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == MsgUser.Token);

            if (baseUsers == null)//用户令牌不存在
            {
                DataObj.OutError("2004");
                return;
            }
            if (baseUsers.State != 1)//用户被锁定
            {
                DataObj.OutError("2003");
                return;
            }
            //if (baseUsers.CardStae != 2)//未实名认证
            //{
            //    DataObj.OutError("2006");
            //    return;
            //}
            //if (baseUsers.MiBao != 1)//未设置支付密码
            //{
            //    DataObj.OutError("2008");
            //    return;
            //}

            string uid = string.Format(",{0},", baseUsers.Id);

            EFPagingInfo <MsgUser> p = new EFPagingInfo <MsgUser>();

            if (!MsgUser.Pg.IsNullOrEmpty())
            {
                p.PageIndex = MsgUser.Pg;
            }
            if (!MsgUser.Pgs.IsNullOrEmpty())
            {
                p.PageSize = MsgUser.Pgs;
            }
            //p.SqlWhere.Add(f => f.UId == baseUsers.Id || ( !f.DeleteUsers.Contains(uid) && f.SendUsers.Contains(uid)) );群发功能检索
            p.SqlWhere.Add(f => f.UId == baseUsers.Id);
            p.SqlWhere.Add(f => f.State > 0 && f.AddTime > baseUsers.AddTime);

            p.OrderByList.Add("Id", "DESC");
            IPageOfItems <MsgUser> List = Entity.Selects <MsgUser>(p);

            foreach (var P in List.Where(n => n.UId == 0))
            { //处理已读
                if (P.ReadUsers.IsNullOrEmpty())
                {
                    P.ReadUsers = string.Empty;
                }
                if (P.ReadUsers.IndexOf(uid) != -1)
                {
                    P.State = 2;
                }
                P.Info = Utils.RemoveHtml(P.Info);
                P.Info = P.Info.Replace("	", "");
            }

            IList <MsgUser> iList = List.ToList();
            StringBuilder   sb    = new StringBuilder("");

            sb.Append("{");
            sb.Append(List.PageToString());
            sb.Append(",");
            sb.Append(iList.EntityToString());
            sb.Append("}");
            DataObj.Data = sb.ToString();
            DataObj.Code = "0000";
            DataObj.OutString();
        }
Пример #19
0
        public void Post()
        {
            string Data = DataObj.GetData();

            if (Data.IsNullOrEmpty())
            {
                DataObj.OutError("1000");
                return;
            }
            JObject json = new JObject();

            try
            {
                json = (JObject)JsonConvert.DeserializeObject(Data);
            }
            catch (Exception Ex)
            {
                Log.Write("[MsgUserInfo]:", "【Data】" + Data, Ex);
            }
            if (json == null)
            {
                DataObj.OutError("1000");
                return;
            }
            MsgUser MsgUser = new MsgUser();

            MsgUser = JsonToObject.ConvertJsonToModel(MsgUser, json);

            Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == MsgUser.Token);

            if (baseUsers == null)//用户令牌不存在
            {
                DataObj.OutError("2004");
                return;
            }
            if (baseUsers.State != 1)//用户被锁定
            {
                DataObj.OutError("2003");
                return;
            }
            //if (baseUsers.CardStae != 2)//未实名认证
            //{
            //    DataObj.OutError("2006");
            //    return;
            //}
            //if (baseUsers.MiBao != 1)//未设置支付密码
            //{
            //    DataObj.OutError("2008");
            //    return;
            //}

            string Delete = MsgUser.Delete;//要删除的ID列

            string[]   Arr  = Delete.Split(',');
            List <int> List = new List <int>();

            try
            {
                foreach (var p in Arr)
                {
                    string ppp = p.Trim();
                    int    pp  = Int32.Parse(ppp);
                    List.Add(pp);
                }
            }
            catch {
            }

            IList <MsgUser> MsgUserList = Entity.MsgUser.Where(n => List.Contains(n.Id)).ToList();
            //删除自己的
            string DeleteIds = "0";

            foreach (var p in MsgUserList.Where(n => n.UId == baseUsers.Id))
            {
                DeleteIds += "," + p.Id;
            }
            string SQL = "Update MsgUser Set IsDel=1 Where Id in (" + DeleteIds + ")";

            Entity.ExecuteStoreCommand(SQL);

            //全员标识已删除
            string uid = string.Format(",{0},", baseUsers.Id);

            foreach (var p in MsgUserList.Where(n => n.UId == 0))
            {
                if (p.DeleteUsers.IsNullOrEmpty())
                {
                    p.DeleteUsers = uid;
                }
                else if (p.DeleteUsers.IndexOf(uid) == -1)
                {
                    p.DeleteUsers += baseUsers.Id.ToString() + ",";
                }
            }
            Entity.SaveChanges();
            DataObj.Data = "";
            DataObj.Code = "0000";
            DataObj.OutString();
        }
        public void Post()
        {
            string Data = DataObj.GetData();

            if (Data.IsNullOrEmpty())
            {
                DataObj.OutError("1000");
                return;
            }
            JObject json = new JObject();

            try
            {
                json = (JObject)JsonConvert.DeserializeObject(Data);
            }
            catch (Exception Ex)
            {
                Log.Write("[MsgUserInfo]:", "【Data】" + Data, Ex);
            }
            if (json == null)
            {
                DataObj.OutError("1000");
                return;
            }
            MsgUser MsgUser = new MsgUser();

            MsgUser = JsonToObject.ConvertJsonToModel(MsgUser, json);

            Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == MsgUser.Token);

            if (baseUsers == null)//用户令牌不存在
            {
                DataObj.OutError("2004");
                return;
            }
            if (baseUsers.State != 1)//用户被锁定
            {
                DataObj.OutError("2003");
                return;
            }
            //if (baseUsers.CardStae != 2)//未实名认证
            //{
            //    DataObj.OutError("2006");
            //    return;
            //}
            //if (baseUsers.MiBao != 1)//未设置支付密码
            //{
            //    DataObj.OutError("2008");
            //    return;
            //}

            //获取信息
            MsgUser = Entity.MsgUser.FirstOrDefault(n => n.Id == MsgUser.Id && (n.UId == baseUsers.Id || n.UId == 0));
            if (MsgUser == null)//不存在
            {
                DataObj.OutError("1001");
                return;
            }
            else  //标识为已读
            {
                if (MsgUser.State == 1 && MsgUser.UId > 0)
                {
                    MsgUser.State = 2;
                    Entity.SaveChanges();
                }
                else if (MsgUser.UId == 0)
                {
                    string uid = string.Format(",{0},", baseUsers.Id);
                    if (MsgUser.ReadUsers.IsNullOrEmpty())
                    {
                        MsgUser.ReadUsers = uid;
                    }
                    else if (MsgUser.ReadUsers.IndexOf(uid) == -1)
                    {
                        MsgUser.ReadUsers += baseUsers.Id.ToString() + ",";
                    }
                    Entity.SaveChanges();
                }
            }

            MsgUser.Info = Utils.RemoveHtml(MsgUser.Info);
            MsgUser.Info = MsgUser.Info.Replace("	", "");

            MsgUser.Cols = "Id,Name,Info,UId,AddTime";
            DataObj.Data = MsgUser.OutJson();
            DataObj.Code = "0000";
            DataObj.OutString();
        }
Пример #21
0
        public static void Process(User user, byte[] packet)
        {
            var msg = (MsgDataRequest)packet;

            FConsole.WriteLine($"MsgDataRequest: {Oracle.GetUserFromId(msg.UserId).Username} requests {msg.Type} on {msg.TargetId} with param {msg.Param}");
            if (user == null)
            {
                return;
            }
            switch (msg.Type)
            {
            case MsgDataRequestType.Friends:
                foreach (var friendId in user.Friends)
                {
                    var friend = Oracle.GetUserFromId(friendId);
                    if (friend != null)
                    {
                        var online = false;
                        if (friend.Socket != null)
                        {
                            online = friend.Socket.IsConnected;
                        }

                        user.Send(MsgUser.Create(friend.Id, friend.Nickname, friend.AvatarUrl, friend.Email, online));
                    }
                }
                user.Send(msg);
                break;

            case MsgDataRequestType.VServers:
                foreach (var serverId in user.VirtualServers)
                {
                    var server = Oracle.GetServerFromId(serverId);
                    if (server != null)
                    {
                        user.Send(MsgVServer.Create(server.Id, server.Name, server.IconUrl, server.CreatedTime, server.LastActivity));
                    }
                }
                user.Send(msg);
                break;

            case MsgDataRequestType.Channels:
                var dbServer = Oracle.GetServerFromId(msg.TargetId);
                if (dbServer != null)
                {
                    foreach (var channelId in dbServer.Channels)
                    {
                        user.Send(MsgChannel.Create(channelId.Key, dbServer.Id, channelId.Value.Name));
                    }
                }

                user.Send(msg);
                break;

            case MsgDataRequestType.Messages:
                var dbChannel = Oracle.GetServerChannelFromId(msg.TargetId, msg.Param);
                if (dbChannel != null)
                {
                    foreach (var(_, message) in dbChannel.Messages)
                    {
                        user.Send(MsgText.Create(message.Id, message.AuthorId, message.Text, msg.TargetId, dbChannel.Id, message.Timestamp));
                    }
                }

                user.Send(msg);
                break;

            default:
                FConsole.WriteLine("Invalid packet received from " + user.Username);
                user.Socket.Disconnect("Server.Networking.PacketRouter.ProcessDataRequest() Invalid packet received");
                break;
            }

            FConsole.WriteLine($"MsgDataRequest Deserializing & Processing took {((((float)PacketRouter.Stopwatch.ElapsedTicks) / Stopwatch.Frequency) * 1000000):0} microsec");
        }