示例#1
0
        /// <summary>
        /// 查询用户Id授权
        /// </summary>
        /// <param name="username">用户名</param>
        /// <param name="appid">应用Id</param>
        /// <param name="pageindex"></param>
        /// <param name="pagesize"></param>
        /// <param name="total"></param>
        /// <returns></returns>
        public List <UserAppIdAuthDto> QueryUserAppId(string username, string appid, int pageindex, int pagesize, ref int total)
        {
            var list = CurrentDbContext.Queryable <UserAppIdAuthPo, UserInfoPo>((t1, t2) => new object[]
            {
                JoinType.Left, t1.UserId == t2.Id
            })
                       .Where((t1, t2) =>
                              t1.IsValid == 1 && t2.IsValid == 1 &&
                              (SqlFunc.IsNullOrEmpty(username) || t2.LoginName.Contains(username) || t2.Name.Contains(username)) &&
                              (SqlFunc.IsNullOrEmpty(appid) || t1.AppId.Contains(appid)))
                       .OrderBy((t1, t2) => t1.Id, OrderByType.Desc)
                       .Select((t1, t2) => new UserAppIdAuthDto
            {
                Id           = t1.Id,
                AppId        = t1.AppId,
                CreateTime   = t1.CreateTime,
                CreateUserId = t1.CreateUserId,
                IsValid      = t1.IsValid,
                Remark       = t1.Remark,
                UpdateTime   = t1.UpdateTime,
                UpdateUserId = t1.UpdateUserId,
                UserId       = t1.UserId,
                LoginName    = t2.LoginName,
                Name         = t2.Name,
                Email        = t2.Email
            }).ToPageList(pageindex, pagesize, ref total);

            return(list);
        }
示例#2
0
        /// <summary>
        /// 查询用户信息
        /// </summary>
        /// <param name="account">用户名</param>
        /// <param name="sex">性别(-1:全部;0:女;1:男)</param>
        /// <param name="pagesize">页面大小</param>
        /// <param name="total">合计</param>
        /// <param name="departmentid">部门Id</param>
        /// <param name="pageindex">页面索引</param>
        /// <returns></returns>
        public List <UserInfoDto> QueryUserInfo(string account, int?sex, int departmentid, int pageindex, int pagesize, ref int total)
        {
            var list = CurrentDbContext.Queryable <UserInfoPo, UserDepartmentJoinPo, DepartmentPo>((ui, udj, d) => new object[]
            {
                JoinType.Left, (ui.Id == udj.UserId && udj.IsValid == 1),
                JoinType.Left, (udj.DepartmentId == d.Id && d.IsValid == 1)
            }).Where((ui, udj, d) =>
                     ui.IsValid == 1 &&
                     (SqlFunc.IsNullOrEmpty(account) || ui.LoginName.Contains(account) || ui.Email.Contains(account)) &&
                     (sex == -1 || ui.Sex == sex) &&
                     (departmentid == 0 || udj.DepartmentId == departmentid)
                     ).OrderBy((ui, udj) => ui.Id, OrderByType.Desc)
                       .Select((ui, udj, d) => new UserInfoDto
            {
                Id              = ui.Id,
                LoginName       = ui.LoginName,
                Email           = ui.Email,
                Password        = ui.Password,
                Name            = ui.Name,
                Sex             = ui.Sex,
                HeadimgUrl      = ui.HeadimgUrl,
                Mobile          = ui.Mobile,
                CreateUserId    = ui.CreateUserId,
                CreateTime      = ui.CreateTime,
                UpdateUserId    = ui.UpdateUserId,
                UpdateTime      = ui.UpdateTime,
                Remark          = ui.Remark,
                IsValid         = ui.IsValid,
                DepartmentId    = udj.DepartmentId,
                DepartementName = d.Name
            }).ToPageList(pageindex, pagesize, ref total);

            return(list);
        }
示例#3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="requestImUserId">用户标识</param>
        /// <param name="requestGroupName">组名</param>
        /// <param name="requestPageIndex">页面索引</param>
        /// <param name="requestPageSize">页面大小</param>
        /// <param name="total"></param>
        /// <returns></returns>
        public List <GroupInfoDto> QueryGroup(Guid requestImUserId, string requestGroupName, int requestPageIndex, int requestPageSize, out int total)
        {
            List <GroupInfoDto> datalist = new List <GroupInfoDto>();

            total = 0;
            if (requestImUserId != Guid.Empty)
            {
                //查询用户类型
                var usertype = CurrentDbContext.Queryable <ImUserInfoPo>().With(SqlSugar.SqlWith.NoLock).Where(e => e.IsValid == 1 && e.ImUserId == requestImUserId).Select(e => e.UserType).First();

                datalist = CurrentDbContext.Queryable <GroupInfoPo>().With(SqlSugar.SqlWith.NoLock)
                           .Where(e => e.IsValid == 1 && e.GroupUserTypes.Contains(usertype.ToString()))
                           .WhereIF(!string.IsNullOrEmpty(requestGroupName), e => e.GroupName.Contains(requestGroupName))
                           .WhereIF(usertype == 0, e => false)
                           .Select(e => new GroupInfoDto
                {
                    GroupId          = e.GroupId,
                    GroupName        = e.GroupName,
                    GroupMaxCapacity = e.GroupMaxCapacity,
                    GroupPicture     = e.GroupPicture,
                    GroupUserTypes   = e.GroupUserTypes,
                    Remark           = e.Remark,
                    CreateTime       = e.CreateTime,
                    UpdateTime       = e.UpdateTime,
                    UserGroupId      = SqlSugar.SqlFunc.Subqueryable <UserGroupPo>()
                                       .Where(o => o.IsValid == 1 && o.GroupId == e.GroupId && o.ImUserId == requestImUserId)
                                       .Select(o => o.UserGroupId)
                }).ToPageList(requestPageIndex, requestPageSize, ref total);
            }

            return(datalist);
        }
示例#4
0
        /// <summary>
        /// 查询所有用户
        /// </summary>
        /// <param name="groupId">组标识</param>
        /// <param name="nickName">昵称</param>
        /// <param name="roletype">角色类型</param>
        /// <param name="total">合计</param>
        /// <param name="pageIndex">页面索引</param>
        /// <param name="pageSize">页面大小</param>
        /// <returns></returns>
        public List <ImUserInfoDto> QueryGroupUser(Guid groupId, string nickName, int?roletype, int pageIndex, int pageSize, out int total)
        {
            var totalcount = 0;

            #region 在组内查询用户信息
            var datalist = CurrentDbContext.Queryable <ImUserInfoPo, UserGroupPo>((t1, t2) => new object[]
            {
                JoinType.Left, t1.ImUserId == t2.ImUserId
            })
                           .Where((t1, t2) => t1.IsValid == 1 && t2.IsValid == 1 && t2.GroupId == groupId)
                           .WhereIF(!string.IsNullOrEmpty(nickName), (t1, t2) => t2.NickName.Contains(nickName))
                           .WhereIF(roletype.HasValue, (t1, t2) => t2.RoleType == roletype.Value)
                           .With(SqlWith.NoLock)
                           .OrderBy((t1, t2) => t2.CreateTime)
                           .Select((t1, t2) => new ImUserInfoDto
            {
                UserGroupId = t2.UserGroupId,
                ImUserId    = t1.ImUserId,
                ImUserName  = t2.NickName,
                UserHeadimg = t1.UserHeadimg,
                Gender      = t1.Gender,
                UserId      = t1.UserId,
                UserType    = t1.UserType,
                Remark      = t1.Remark,
                RoleType    = t2.RoleType
            })
                           .ToPageList(pageIndex, pageSize, ref totalcount);
            #endregion

            total = totalcount;
            return(datalist);
        }
示例#5
0
        /// <summary>
        /// 查询用户组信息 根据用户标识、通道标识
        /// </summary>
        /// <param name="imUserId">用户标识</param>
        /// <param name="channelId">通道标识</param>
        /// <returns></returns>
        public GroupInfoPo FindGroupInfo(Guid imUserId, Guid channelId)
        {
            var entity = CurrentDbContext.Queryable <GroupInfoPo, UserGroupPo>((t1, t2) => new object[]
            {
                SqlSugar.JoinType.Left, t1.GroupId == t2.GroupId
            }).With(SqlSugar.SqlWith.NoLock)
                         .Where((t1, t2) => t1.IsValid == 1 && t2.IsValid == 1 && t2.ImUserId == imUserId && t1.ChannelId == channelId).First();

            return(entity);
        }
示例#6
0
        /// <summary>
        /// 查询组内所有的用户信息
        /// </summary>
        /// <param name="groupid">组标识</param>
        /// <returns></returns>
        public List <ImUserInfoPo> QueryAllUser(Guid groupid)
        {
            var list = new List <ImUserInfoPo>();

            if (!groupid.IsNullGuid())
            {
                list = CurrentDbContext.Queryable <ImUserInfoPo, UserGroupPo>((t1, t2) => new object[]
                {
                    JoinType.Left, t1.ImUserId == t2.ImUserId
                }).Where((t1, t2) => t2.GroupId == groupid && t2.IsValid == 1
                         ).With(SqlWith.NoLock).OrderBy((t1, t2) => t2.CreateTime).Select((t1, t2) => t1).ToList();
            }

            return(list);
        }
示例#7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="requestImUserName">用户名</param>
        /// <param name="requestUserId">用户标示</param>
        /// <param name="requestUserType">用户类型(1:内部用户,2:会员用户;3:第三方用户;4:临时用户)</param>
        /// <param name="requestGroupId">组标识</param>
        /// <param name="pageSize">页面大小</param>
        /// <param name="total">合计</param>
        /// <param name="pageIndex">页面索引</param>
        /// <returns></returns>
        public List <ImUserInfoPo> QueryImUserInfo(string requestImUserName, string requestUserId, int?requestUserType, Guid?requestGroupId, int pageIndex, int pageSize, out int total)
        {
            List <ImUserInfoPo> list = new List <ImUserInfoPo>();
            var totalcount           = 0;

            if (requestGroupId == null)
            {
                #region 根据用户信息查询
                var datalist = CurrentDbContext.Queryable <ImUserInfoPo>().With(SqlWith.NoLock).Where(e =>
                                                                                                      e.IsValid == 1 &&
                                                                                                      (SqlFunc.IsNullOrEmpty(requestImUserName) || e.ImUserName.Contains(requestImUserName)) &&
                                                                                                      (SqlFunc.IsNullOrEmpty(requestUserId) || e.UserId == requestUserId) &&
                                                                                                      (SqlFunc.IsNullOrEmpty(requestUserType) || e.UserType == requestUserType))
                               .OrderBy(e => e.CreateTime)
                               .ToPageList(pageIndex, pageSize, ref totalcount);

                if (datalist != null)
                {
                    list = datalist;
                }
                #endregion
            }
            else
            {
                #region 在组内查询用户信息
                var datalist = CurrentDbContext.Queryable <ImUserInfoPo, UserGroupPo>((t1, t2) => new object[]
                {
                    JoinType.Left, t1.ImUserId == t2.ImUserId
                }).Where((t1, t2) =>
                         t2.GroupId == requestGroupId.Value &&
                         t1.IsValid == 1 && t2.IsValid == 1 &&
                         (SqlFunc.IsNullOrEmpty(requestImUserName) || t1.ImUserName.Contains(requestImUserName)) &&
                         (SqlFunc.IsNullOrEmpty(requestUserId) || t1.UserId == requestUserId) &&
                         (SqlFunc.IsNullOrEmpty(requestUserType) || t1.UserType == requestUserType)
                         ).With(SqlWith.NoLock).OrderBy((t1, t2) => t2.CreateTime).Select((t1, t2) => t1).ToPageList(pageIndex, pageSize, ref totalcount);
                #endregion

                if (datalist != null)
                {
                    list = datalist;
                }
            }

            total = totalcount;
            return(list);
        }
示例#8
0
        /// <summary>
        /// 查询用户组列表
        /// </summary>
        /// <param name="requestImUserId">用户标识</param>
        /// <param name="requestGroupName">用户组名</param>
        /// <param name="requestPageIndex">页面索引</param>
        /// <param name="requestPageSize">也没大小</param>
        /// <param name="total"></param>
        /// <returns></returns>
        public List <GroupInfoDto> QueryGroup(Guid requestImUserId, string requestGroupName, int requestPageIndex, int requestPageSize, out int total)
        {
            total = 0;
            var datalist = CurrentDbContext.Queryable <UserGroupPo, GroupInfoPo>((t1, t2) => new object[]
            {
                JoinType.Left, t1.GroupId == t2.GroupId
            }).With(SqlWith.NoLock)
                           .Where((t1, t2) => t1.IsValid == 1)
                           .WhereIF(!string.IsNullOrEmpty(requestGroupName), (t1, t2) => t2.GroupName.Contains(requestGroupName))
                           .Select((t1, t2) => new GroupInfoDto
            {
                GroupId          = t2.GroupId,
                GroupName        = t2.GroupName,
                GroupMaxCapacity = t2.GroupMaxCapacity,
                GroupPicture     = t2.GroupPicture,
                GroupUserTypes   = t2.GroupUserTypes,
                Remark           = t2.Remark,
                CreateTime       = t2.CreateTime,
                UpdateTime       = t2.UpdateTime,
                UserGroupId      = t1.UserGroupId
            }).ToPageList(requestPageIndex, requestPageSize, ref total);

            return(datalist);
        }
示例#9
0
 /// <summary>
 /// 查询持久状态
 /// </summary>
 /// <param name="channelId">通道标识</param>
 /// <returns></returns>
 public int FindStorageStatus(Guid channelId)
 {
     return(CurrentDbContext.Queryable <ChannelInfoPo>().With(SqlSugar.SqlWith.NoLock)
            .Where(e => e.IsValid == 1 && e.ChannelId == channelId)
            .Select(e => e.StorageStatus).First());
 }