/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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()); }