Пример #1
0
        public ApiResult <GroupUserInfoResponse> GroupUserInfo(GroupUserInfoRequest request)
        {
            var response = new GroupUserInfoResponse();

            if (request == null)
            {
                return(Error <GroupUserInfoResponse>("1", "参数无能为空"));
            }
            var usergroup = _userGroupService.FindUserGroup(request.ImUserId.ToGuid(), request.GroupId.ToGuid());

            if (usergroup == null)
            {
                return(Error <GroupUserInfoResponse>("2", "用户组不存在"));
            }

            var userinfo = _imUserInfoService.Find(request.ImUserId.ToGuid());

            if (userinfo == null)
            {
                return(Error <GroupUserInfoResponse>("3", "用户信息不存在"));
            }

            response.ImUserId    = userinfo.ImUserId;
            response.GroupId     = usergroup.GroupId;
            response.NickName    = usergroup.NickName;
            response.UserGroupId = usergroup.UserGroupId;
            response.RoleType    = usergroup.RoleType;
            response.UserHeadimg = userinfo.UserHeadimg;

            return(Success(response));
        }
Пример #2
0
        /// <summary>
        /// 获取用户组信息
        /// </summary>
        /// <param name="imuid"></param>
        /// <param name="groupid"></param>
        /// <returns></returns>
        internal Hashtable FindUserGroupInfo(Guid imuid, Guid groupid)
        {
            Hashtable ht = new Hashtable();

            var key  = string.Concat(imuid.ToString(), ":", groupid.ToString()).AddCachePrefix("tb:UserGroup");
            var data = CacheManager.RunTimeCache.Get(key, () => _userGroupService.FindUserGroup(imuid, groupid), 10);

            if (data != null)
            {
                if (string.IsNullOrEmpty(data.NickName))
                {
                    data.NickName = _userGroupService.UdpateNickName(imuid, groupid);
                }

                ht.Add("ImUserId", data.ImUserId);
                ht.Add("NickName", data.NickName);
                ht.Add("RoleType", data.RoleType);
            }

            return(ht);
        }
Пример #3
0
        /// <summary>
        /// 检查组信息
        /// </summary>
        /// <param name="imuserid">用户标识</param>
        /// <param name="groupid">组标识</param>
        /// <returns></returns>
        private bool CheckGroupInfo(string imuserid, string groupid)
        {
            if (groupid.IsNullOrEmpty())
            {
                System.Web.HttpContext.Current.AcceptWebSocketRequest((e) =>
                {
                    CancellationToken cancellationToken = new CancellationToken();
                    var data = new { status = 0, msg = "参数无效", buginfo = "参数无效" }.ToJson();
                    return(e.WebSocket.SendMessage(cancellationToken, data));
                });
                System.Web.HttpContext.Current.Response.End();
                return(false);
            }

            //检查组
            var usergougroup = _userGroupService.FindUserGroup(imuserid.ToGuid(), groupid.ToGuid());

            if (usergougroup == null)
            {
                System.Web.HttpContext.Current.AcceptWebSocketRequest((e) =>
                {
                    CancellationToken cancellationToken = new CancellationToken();
                    var data = new { status = 0, msg = "非法用户", buginfo = "非法用户" }.ToJson();
                    return(e.WebSocket.SendMessage(cancellationToken, data));
                });
                System.Web.HttpContext.Current.Response.End();
                return(false);
            }
            if (usergougroup.IsValid == 0)
            {
                System.Web.HttpContext.Current.AcceptWebSocketRequest((e) =>
                {
                    CancellationToken cancellationToken = new CancellationToken();
                    var data = new { status = 0, msg = "您已被移除", buginfo = "您已被移除" }.ToJson();
                    return(e.WebSocket.SendMessage(cancellationToken, data));
                });
                System.Web.HttpContext.Current.Response.End();
                return(false);
            }

            //组信息
            var groupinfo = _groupInfoService.Find(usergougroup.GroupId);

            if (groupinfo == null)
            {
                System.Web.HttpContext.Current.AcceptWebSocketRequest((e) =>
                {
                    CancellationToken cancellationToken = new CancellationToken();
                    var data = new { status = 0, msg = "非法组", buginfo = "非法组" }.ToJson();
                    return(e.WebSocket.SendMessage(cancellationToken, data));
                });
                System.Web.HttpContext.Current.Response.End();
                return(false);
            }
            if (groupinfo.IsValid == 0)
            {
                System.Web.HttpContext.Current.AcceptWebSocketRequest((e) =>
                {
                    CancellationToken cancellationToken = new CancellationToken();
                    var data = new { status = 0, msg = "组已被移除", buginfo = "组已被移除" }.ToJson();
                    return(e.WebSocket.SendMessage(cancellationToken, data));
                });
                System.Web.HttpContext.Current.Response.End();
                return(false);
            }

            //检查用户
            var userinfo = _imUserInfoService.Find(imuserid.ToGuid());

            if (!groupinfo.GroupUserTypes.Contains(userinfo.UserType.ToString()))
            {
                System.Web.HttpContext.Current.AcceptWebSocketRequest((e) =>
                {
                    CancellationToken cancellationToken = new CancellationToken();
                    var data = new { status = 0, msg = "用户没有权限", buginfo = "用户没有权限" }.ToJson();
                    return(e.WebSocket.SendMessage(cancellationToken, data));
                });
                System.Web.HttpContext.Current.Response.End();
                return(false);
            }

            _channelid = groupinfo.ChannelId.ToString();
            return(true);
        }