Ejemplo n.º 1
0
        /// <summary>
        /// 判断登陆用户信息(如无则添加)
        /// </summary>
        /// <param name="md"></param>
        /// <returns></returns>
        public mjuserinfo AddUser(mjuserinfo md, GameSession session)
        {
            int           returnid = 0;
            mjuserinfoDAL dal      = new mjuserinfoDAL();
            mjuserinfo    model    = dal.GetModel(md.openid);
            login_logDAL  Ldal     = new login_logDAL();
            login_log     Lmodel   = new login_log();



            if (model == null)
            {
                try
                {
                    returnid   = dal.GetMaxID() + 1;
                    md.id      = returnid;
                    md.addtime = DateTime.Now;
                    string fileName = string.Empty;
                    string imgurl   = PictureUtility.SavePicture(md.headimg, out fileName); //将图片保存至本地返回详细路径和文件名
                    if (!string.IsNullOrEmpty(imgurl))                                      //验证是否保存成功
                    {
                        md.headimg = PutObjectSample.PutObjectFromFile(imgurl, fileName);
                    }
                    dal.Add(md);
                    Lmodel.id          = Ldal.GetMaxID() + 1;
                    Lmodel.login_state = 1;
                    Lmodel.login_time  = DateTime.Now;
                    Lmodel.openid      = md.openid;
                    Ldal.Add(Lmodel);
                }
                catch (Exception ex)
                {
                    session.Logger.Error(ex);
                }



                return(md);
            }
            else
            {
                try
                {
                    Lmodel.id          = Ldal.GetMaxID() + 1;
                    Lmodel.login_state = 1;
                    Lmodel.login_time  = DateTime.Now;
                    Lmodel.openid      = md.openid;
                    Ldal.Add(Lmodel);
                }
                catch (Exception)
                {
                    throw;
                }

                return(model);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 判断登陆用户信息(如无则添加)
        /// </summary>
        /// <param name="md"></param>
        /// <returns></returns>
        public mjuserinfo AddUser(mjuserinfo md, GameSession session)
        {
            mjuserinfoDAL dal    = new mjuserinfoDAL();
            mjuserinfo    model  = dal.GetModel(md.openid);
            LogDAL        Ldal   = new LogDAL();
            login_log     Lmodel = new login_log();

            if (model == null)
            {
                try
                {
                    md.addtime = DateTime.Now;
                    // string fileName =Guid.NewGuid() + ".jpg"; ;
                    //  string imgurl = PictureUtility.SavePicture(md.headimg, out fileName);//将图片保存至本地返回详细路径和文件名
                    //    if (!string.IsNullOrEmpty(imgurl))//验证是否保存成功
                    //     md.headimg = PutObjectSample.PutObjectFromFile(md.headimg, fileName, -1);//服务器没有图片,因此不能存储至图片服务器

                    dal.Add(md);
                    Lmodel.ID          = Guid.NewGuid().ToString();
                    Lmodel.login_state = 1;
                    Lmodel.login_time  = DateTime.Now;
                    Lmodel.openid      = md.openid;
                    Lmodel.City        = md.city;
                    Ldal.Add(Lmodel);
                }
                catch (Exception ex)
                {
                    session.Logger.Error(ex);
                }
                return(dal.GetModel(md.openid));;
            }
            else
            {
                try
                {
                    md.id = model.id;
                    //if (!md.Oldheadimg.Equals(model.Oldheadimg))
                    //{
                    //    string fileName = Guid.NewGuid() + ".jpg"; ;
                    //    //服务器没有图片,因此不能存储至图片服务器  md.headimg = PutObjectSample.PutObjectFromFile(md.headimg, fileName, -1);
                    //}
                    dal.Update(md);
                    Lmodel.ID          = Guid.NewGuid().ToString();
                    Lmodel.login_state = 1;
                    Lmodel.login_time  = DateTime.Now;
                    Lmodel.openid      = md.openid;
                    Lmodel.City        = md.city;
                    Ldal.Add(Lmodel);
                }
                catch (Exception ex)
                {
                    session.Logger.Error(ex);
                }

                return(md);
            }
        }
        public void ExecuteCommand(GameSession session, ProtobufRequestInfo requestInfo)
        {
            var sendData = SendGroupUserInfoByGroupID.ParseFrom(requestInfo.Body);
            var userInfo = RedisUtility.Get <RedisUserInfoModel>(RedisUtility.GetKey(GameInformationBase.COMMUNITYUSERINFO, sendData.Openid, sendData.Unionid));

            if (userInfo == null || !userInfo.GroupID.Any(w => w == sendData.GroupID))
            {
                // session.Close();
                return;
            }
            GroupInfoDAL groupInfoDAL    = new GroupInfoDAL();
            var          groupInfo       = groupInfoDAL.GetGroupInfoByGroupID(sendData.GroupID, userInfo.Type);
            var          returnGroupInfo = ReturnGroupUserInfoByGroupID.CreateBuilder();

            if (groupInfo != null)
            {
                var list = groupInfoDAL.GetGroupStaffInfoByGroupID(sendData.GroupID);
                if (list != null)
                {
                    foreach (var item in list)
                    {
                        var userInfoDB = new mjuserinfoDAL().GetModel(item.GroupUserID);
                        if (userInfoDB != null)
                        {
                            var groupUserInfo = GroupUserInfo.CreateBuilder();
                            groupUserInfo.SetGroupUserID(item.GroupUserID).SetNickName(HttpUtility.UrlDecode(HttpUtility.UrlDecode(userInfoDB.nickname)))
                            .SetPicture(userInfoDB.headimg).SetStatus(0);
                            if (Gongyong.userlist.Any(w => w.UserID.Equals(item.GroupUserID)))
                            {
                                groupUserInfo.SetStatus(1);
                            }
                            if (RedisUtility.Get <RedisGameModel>(RedisUtility.GetKey(GameInformationBase.COMMUNITYUSERGAME, userInfoDB.openid, userInfoDB.unionid)) != null)
                            {
                                groupUserInfo.SetStatus(2);
                            }
                            returnGroupInfo.AddUserList(groupUserInfo);
                        }
                    }
                    var data = returnGroupInfo.SetStatus(1).Build().ToByteArray();
                    session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1035, data.Length, requestInfo.MessageNum, data)));
                    return;
                }
            }
            var dataF = returnGroupInfo.SetStatus(0).Build().ToByteArray();

            session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1035, dataF.Length, requestInfo.MessageNum, dataF)));
        }
Ejemplo n.º 4
0
        public void ExecuteCommand(GameSession session, ProtobufRequestInfo requestInfo)
        {
            GroupInfoDAL groupInfoDAL     = new GroupInfoDAL();
            var          sendSearchPlayer = SendSearchPlayer.ParseFrom(requestInfo.Body);

            mjuserinfoDAL mjuserinfoDAL = new mjuserinfoDAL();
            var           userinfo      = mjuserinfoDAL.GetModel(sendSearchPlayer.UserID);

            if (userinfo != null)
            {
                var returnDate = Player.CreateBuilder().SetGroupUserID(userinfo.id).SetNickName(HttpUtility.UrlDecode(HttpUtility.UrlDecode(userinfo.nickname))).SetPicture(userinfo.headimg).Build().ToByteArray();
                session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER, returnDate.Length, requestInfo.MessageNum, returnDate)));
            }
            else
            {
                var returnMessage = ReturnMessgae.CreateBuilder().SetStatue(0).SetMessage("该用户不存在").Build().ToByteArray();
                session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1104, returnMessage.Length, requestInfo.MessageNum, returnMessage)));
            }
        }
Ejemplo n.º 5
0
        public void ExecuteCommand(GameSession session, ProtobufRequestInfo requestInfo)
        {
            GroupInfoDAL groupInfoDAL = new GroupInfoDAL();


            var sendQuitGroup = SendQuitGroup.ParseFrom(requestInfo.Body);

            byte[] resultData  = null;
            var    deluserInfo = new mjuserinfoDAL().GetModel(sendQuitGroup.UserID);
            var    groupInfo   = groupInfoDAL.GetGroupInfoByGroupID(sendQuitGroup.GroupID, deluserInfo.is_band.Value);

            if (groupInfo == null)
            {
                session.Logger.Debug("用户退出不存在朋友圈 关闭连接");
                session.Close();
                return;
            }
            if (groupInfoDAL.GetIsExistenceInGroup(sendQuitGroup.GroupID, sendQuitGroup.UserID, 4) != 1)
            {
                resultData = ReturnQuitGroup.CreateBuilder().SetStatus(1).SetMessage("您不是该圈子的成员!").Build().ToByteArray();
                session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1091, resultData.Length, requestInfo.MessageNum, resultData)));
                return;
            }
            if (groupInfoDAL.GetIsExistenceApplyStatus(sendQuitGroup.GroupID, sendQuitGroup.UserID, 4) == 1)
            {
                resultData = ReturnQuitGroup.CreateBuilder().SetStatus(1).SetMessage("您已经申请过退出,请等待群主通过!").Build().ToByteArray();
                session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1091, resultData.Length, requestInfo.MessageNum, resultData)));
            }
            else if (groupInfoDAL.ApplyUsersOutByUserIDTransaction(sendQuitGroup.GroupID, sendQuitGroup.UserID, 4, groupInfo.CreateUserID, true) != 0)
            {
                // groupInfoDAL.DelApplyByUserID(sendQuitGroup.GroupID, sendQuitGroup.UserID);
                //groupInfoDAL.ChangeApplyStatus(sendQuitGroup.GroupID, sendQuitGroup.UserID, 4);
                resultData = ReturnQuitGroup.CreateBuilder().SetStatus(1).SetMessage("申请退出成功,等待群主通过!").Build().ToByteArray();
                session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1091, resultData.Length, requestInfo.MessageNum, resultData)));
            }
            else
            {
                resultData = ReturnQuitGroup.CreateBuilder().SetStatus(1).SetMessage("申请退出失败!").Build().ToByteArray();
                session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1091, resultData.Length, requestInfo.MessageNum, resultData)));
            }
        }
Ejemplo n.º 6
0
        public void ExecuteCommand(GameSession session, ProtobufRequestInfo requestInfo)
        {
            GroupInfoDAL groupInfoDAL = new GroupInfoDAL();


            var groupUsersManager = SendAgentGroupUsersManager.ParseFrom(requestInfo.Body);
            // RedisUserInfoModel user = RedisUtility.Get<RedisUserInfoModel>(RedisUtility.GetKey(GameInformationBase.COMMUNITYUSERINFO,  groupUsersManager.Openid,  groupUsersManager.Unionid));

            var player           = Player.CreateBuilder();
            var returnPlayerList = ReturnPlayerList.CreateBuilder();
            var list             = groupInfoDAL.GetUsersIDListByGroupID(groupUsersManager.GroupID);
            var deluserInfo      = new mjuserinfoDAL().GetModel(groupUsersManager.DelByUserID);

            byte[] returnMessage = null;
            if (deluserInfo == null)
            {
                returnMessage = ReturnMessgae.CreateBuilder().SetStatue(0).SetMessage("没有该用户").Build().ToByteArray();
                session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1104, returnMessage.Length, requestInfo.MessageNum, returnMessage)));
                // session.Close();
                return;
            }
            var groupInfo = groupInfoDAL.GetGroupInfoByGroupID(groupUsersManager.GroupID, deluserInfo.is_band.Value);

            if (groupInfo == null)
            {
                returnMessage = ReturnMessgae.CreateBuilder().SetStatue(0).SetMessage("没有该用户").Build().ToByteArray();
                session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1104, returnMessage.Length, requestInfo.MessageNum, returnMessage)));
                // session.Close();
                return;
            }
            //删除用户
            if (groupUsersManager.HasDelByUserID && !groupUsersManager.HasAddUsers)
            {
                if (groupInfo.CreateUserID == groupUsersManager.DelByUserID)
                {
                    returnMessage = ReturnMessgae.CreateBuilder().SetStatue(0).SetMessage("群主不能删除自己").Build().ToByteArray();
                    session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1104, returnMessage.Length, requestInfo.MessageNum, returnMessage)));
                    return;
                }

                // groupInfoDAL.DelUsersByUserIDTransaction( groupUsersManager.GroupID,  groupUsersManager.DelByUserID);
                groupInfoDAL.DelUsersByUserIDTransaction(groupUsersManager.GroupID, groupUsersManager.DelByUserID, 3, groupUsersManager.DelByUserID);
                returnMessage = ReturnMessgae.CreateBuilder().SetStatue(1).SetMessage("删除成功").Build().ToByteArray();
                session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1104, returnMessage.Length, requestInfo.MessageNum, returnMessage)));
                return;
            }
            //添加用户
            else if (!groupUsersManager.HasDelByUserID && groupUsersManager.HasAddUsers)
            {
                //var groupInfo = groupInfoDAL.GetGroupInfoByGroupID(groupUsersManager.GroupID);
                //if (groupInfo.CreateUserID == groupUsersManager.AddUsers)
                //{
                //    returnMessage = ReturnMessgae.CreateBuilder().SetStatue(0).SetMessage("添加失败").Build().ToByteArray();
                //    session.Send(new ArraySegment<byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1104, returnMessage.Length, requestInfo.MessageNum, returnMessage)));
                //    return;
                //}
                if (new DAL.DAL.mjuserinfoDAL().GetModel(groupUsersManager.AddUsers) != null)
                {
                    //加入类型,1圈主添加,2申请加入,3推荐加入
                    var err = groupInfoDAL.AddUserToGroup(groupUsersManager.GroupID, groupUsersManager.AddUsers, 1);
                    if (err == 0)
                    {
                        returnMessage = ReturnMessgae.CreateBuilder().SetStatue(0).SetMessage("添加失败,已存在该用户").Build().ToByteArray();
                        session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1104, returnMessage.Length, requestInfo.MessageNum, returnMessage)));
                    }
                    else
                    {
                        returnMessage = ReturnMessgae.CreateBuilder().SetStatue(1).SetMessage("添加成功").Build().ToByteArray();
                        groupInfoDAL.AddGroupTips(groupUsersManager.GroupID, groupUsersManager.AddUsers, 1);

                        //添加成狗后把用户丢到RedisUs  避免需重复登陆问题
                        RedisUserInfoModel user = RedisUtility.Get <RedisUserInfoModel>(RedisUtility.GetKey(GameInformationBase.COMMUNITYUSERINFO, groupUsersManager.AddUsers.ToString(), groupUsersManager.AddUsers.ToString()));
                        if (user != null)
                        {
                            user.GroupID.Add((int)groupUsersManager.GroupID);
                            RedisUtility.Set(RedisUtility.GetKey(GameInformationBase.COMMUNITYUSERINFO, user.Openid, user.Unionid), user);
                            var userInfo = Gongyong.userlist.Find(w => w.UserID == user.UserID);
                            if (userInfo != null)
                            {
                                userInfo.GroupID.Add((int)groupUsersManager.GroupID);
                            }
                        }

                        session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1104, returnMessage.Length, requestInfo.MessageNum, returnMessage)));
                    }
                }
                else
                {
                    returnMessage = ReturnMessgae.CreateBuilder().SetStatue(0).SetMessage("无此用户").Build().ToByteArray();
                    session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1104, returnMessage.Length, requestInfo.MessageNum, returnMessage)));
                    return;
                }
                return;
            }


            foreach (var userID in list)
            {
                DAL.Model.mjuserinfo userinfo = new DAL.DAL.mjuserinfoDAL().GetModel(userID);
                if (userinfo == null)
                {
                    groupInfoDAL.DelUsersByUserID(groupUsersManager.GroupID, userID);
                }
                else
                {
                    player.SetGroupUserID(userID).SetNickName(HttpUtility.UrlDecode(HttpUtility.UrlDecode(userinfo.nickname))).SetPicture(userinfo.headimg);
                    returnPlayerList.AddPlayerList(player);
                }
            }

            //返回待审核人数
            int counts = groupInfoDAL.GroupApplyRecord(groupUsersManager.GroupID).Count();

            returnPlayerList.SetApplyUsers(counts);
            var returnPlayerListData = returnPlayerList.Build().ToByteArray();

            session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1051, returnPlayerListData.Length, requestInfo.MessageNum, returnPlayerListData)));
        }
Ejemplo n.º 7
0
        public void ExecuteCommand(GameSession session, ProtobufRequestInfo requestInfo)
        {
            var sendChangeApplyStatus = SendChangeApplyStatus.ParseFrom(requestInfo.Body);

            GroupInfoDAL groupInfoDAL = new GroupInfoDAL();

            byte[] resultData = null;
            DAL.DAL.mjuserinfoDAL mjuserinfo = new mjuserinfoDAL();
            if (sendChangeApplyStatus.ApplyStatus == 1 || sendChangeApplyStatus.ApplyStatus == 2)
            {
                var userinfo = mjuserinfo.GetModel(sendChangeApplyStatus.UserID);
                if (userinfo != null)
                {//=========================================================
                    if (groupInfoDAL.GetIsExistenceApplyStatus(sendChangeApplyStatus.GroupID, sendChangeApplyStatus.UserID, 0) == 1)
                    {
                        if (groupInfoDAL.AgreeApplyStatus(sendChangeApplyStatus.GroupID, sendChangeApplyStatus.UserID, sendChangeApplyStatus.ApplyStatus, 0) != 0)
                        {
                            if (sendChangeApplyStatus.ApplyStatus == 1)
                            {
                                groupInfoDAL.AddUserToGroup(sendChangeApplyStatus.GroupID, sendChangeApplyStatus.UserID, 2);
                                RedisUserInfoModel user = RedisUtility.Get <RedisUserInfoModel>(RedisUtility.GetKey(GameInformationBase.COMMUNITYUSERINFO, userinfo.openid, userinfo.unionid));
                                if (user != null)
                                {
                                    user.GroupID.Add((int)sendChangeApplyStatus.GroupID);
                                    RedisUtility.Set(RedisUtility.GetKey(GameInformationBase.COMMUNITYUSERINFO, user.Openid, user.Unionid), user);
                                    var userInfo = Gongyong.userlist.Find(w => w.UserID == user.UserID);
                                    if (userInfo != null)
                                    {
                                        userInfo.GroupID.Add((int)sendChangeApplyStatus.GroupID);
                                    }
                                }
                                resultData = ReturnChangeApplyStatus.CreateBuilder().SetStatus(1).SetMessage("修改成功").Build().ToByteArray();
                                session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1071, resultData.Length, requestInfo.MessageNum, resultData)));
                            }
                        }
                    }
                    resultData = ReturnChangeApplyStatus.CreateBuilder().SetStatus(1).SetMessage("修改失败").Build().ToByteArray();
                    session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1071, resultData.Length, requestInfo.MessageNum, resultData)));
                }
            }
            else if (sendChangeApplyStatus.ApplyStatus == 5 || sendChangeApplyStatus.ApplyStatus == 6)
            {
                var userinfo = mjuserinfo.GetModel(sendChangeApplyStatus.UserID);
                if (userinfo != null)
                {
                    if (groupInfoDAL.GetIsExistenceApplyStatus(sendChangeApplyStatus.GroupID, sendChangeApplyStatus.UserID, 4) == 1)
                    {
                        if (groupInfoDAL.AgreeApplyStatus(sendChangeApplyStatus.GroupID, sendChangeApplyStatus.UserID, sendChangeApplyStatus.ApplyStatus) != 0)
                        {
                            if (sendChangeApplyStatus.ApplyStatus == 5)
                            {
                                groupInfoDAL.DelUsersByUserIDTransaction(sendChangeApplyStatus.GroupID, sendChangeApplyStatus.UserID, 5);
                                RedisUserInfoModel user = RedisUtility.Get <RedisUserInfoModel>(RedisUtility.GetKey(GameInformationBase.COMMUNITYUSERINFO, userinfo.openid, userinfo.unionid));
                                if (user != null)
                                {
                                    user.GroupID.Remove((int)sendChangeApplyStatus.GroupID);
                                    RedisUtility.Set(RedisUtility.GetKey(GameInformationBase.COMMUNITYUSERINFO, user.Openid, user.Unionid), user);
                                    var userInfo = Gongyong.userlist.Find(w => w.UserID == user.UserID);
                                    if (userInfo != null)
                                    {
                                        userInfo.GroupID.Remove((int)sendChangeApplyStatus.GroupID);
                                    }
                                }
                                resultData = ReturnChangeApplyStatus.CreateBuilder().SetStatus(1).SetMessage("修改成功").Build().ToByteArray();
                                session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1071, resultData.Length, requestInfo.MessageNum, resultData)));
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 8
0
        public void ExecuteCommand(GameSession session, ProtobufRequestInfo requestInfo)
        {
            var             userInfo = SendGetUserRecord.ParseFrom(requestInfo.Body);
            RedisLoginModel olduser  = RedisUtility.Get <RedisLoginModel>(RedisUtility.GetKey(GameInformationBase.COMMUNITYUSERLIST, userInfo.Openid, userInfo.Unionid));

            if (olduser == null)
            {
                return;
            }
            var list        = new userRecordLOGDAL().Get48hourInfoByUserID(userInfo.UserID, userInfo.HasGroupID? userInfo.GroupID:0);
            var userinfoDAL = new mjuserinfoDAL();

            var  returnUserRecord = ReturnUserRecord.CreateBuilder();
            long userid;

            foreach (var item in list)
            {
                var userRecord = UserRecord.CreateBuilder();
                userRecord.SetRoomInfoID(item.RoomInfoID);
                userRecord.SetCreateDate(TimeToLong.ConvertDateTimeInt(item.CreateDate));
                userRecord.SetEndTime(TimeToLong.ConvertDateTimeInt(item.EndTime));
                userRecord.SetUserID(item.CreateUserID);//需要显示房主标签
                userRecord.SetRoomMsg(
                    ReturnRoomMsg.CreateBuilder()
                    .SetCount(item.RoomNumber)
                    .SetIsBenji(item.IsBenJi)
                    .SetIsLianzhuang(item.CountPointsType == 3 ? 1 : 0)
                    .SetIsShangxiaji(item.IsSangXiaJi)
                    .SetIsWgj(item.IsWGJ)
                    .SetIsXinqiji(item.IsXinQiJi)
                    .SetIsYikousan(item.CountPointsType == 1 ? 1 : 0)
                    .SetIsYuanque(item.IsYuanQue)
                    .SetQuickCard(item.QuickCard)
                    .SetRoomPeo(item.RoomPeo)
                    );
                foreach (var userWinLose in item.UserWinLose.Split('|'))
                {
                    long     userID = 0;
                    string[] info   = userWinLose.Split(',');
                    if (long.TryParse(info[0], out userID))
                    {
                        if (userRecord.RecordUserInfoList.Any(w => w.UserID == userID))
                        {
                            var userInfoData = userRecord.RecordUserInfoList.First(w => w.UserID == userID);
                            userRecord.AddRecordUserInfo(RecordUserInfo.CreateBuilder()
                                                         .SetHeadimg(userInfoData.Headimg)
                                                         .SetNickname(HttpUtility.UrlDecode(HttpUtility.UrlDecode(userInfoData.Nickname)))
                                                         .SetOpenid(userInfoData.Openid)
                                                         .SetScore(info[1])
                                                         .SetSex(userInfoData.Sex)
                                                         .SetUserID(userInfoData.UserID));
                        }
                        else
                        {
                            var userInfoData = userinfoDAL.GetModel(userID);
                            userRecord.AddRecordUserInfo(RecordUserInfo.CreateBuilder()
                                                         .SetHeadimg(userInfoData.headimg)
                                                         .SetNickname(HttpUtility.UrlDecode(HttpUtility.UrlDecode(userInfoData.nickname)))
                                                         .SetOpenid(userInfoData.openid)
                                                         .SetScore(info[1])
                                                         .SetSex(userInfoData.sex.Value)
                                                         .SetUserID(userInfoData.id));
                        }
                    }
                }
                returnUserRecord.AddUserRecord(userRecord);
            }
            var data = returnUserRecord.Build().ToByteArray();

            session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 9002, data.Length, requestInfo.MessageNum, data)));
        }