diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/SwaggerDoc.xml b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/SwaggerDoc.xml index c4c4d6a5..2a275347 100644 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/SwaggerDoc.xml +++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/SwaggerDoc.xml @@ -394,12 +394,13 @@ 用户管理 - + 动态条件分页查询 + diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/UserController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/UserController.cs index 13c3d009..d82df68e 100644 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/UserController.cs +++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/UserController.cs @@ -34,11 +34,12 @@ namespace Yi.Framework.ApiMicroservice.Controllers /// /// /// + /// /// [HttpGet] - public async Task PageList([FromQuery] UserEntity user, [FromQuery] PageParModel page) + public async Task PageList([FromQuery] UserEntity user, [FromQuery] PageParModel page,[FromQuery] long? deptId) { - return Result.Success().SetData(await _iUserService.SelctPageList(user, page)); + return Result.Success().SetData(await _iUserService.SelctPageList(user, page, deptId)); } /// diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db index 5c8c1e1d..6b7267aa 100644 Binary files a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db and b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db differ diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/IUserService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/IUserService.cs index 2e6d49e9..7791f6b2 100644 --- a/Yi.Framework.Net6/Yi.Framework.Interface/IUserService.cs +++ b/Yi.Framework.Net6/Yi.Framework.Interface/IUserService.cs @@ -76,7 +76,7 @@ namespace Yi.Framework.Interface /// /// /// - Task>> SelctPageList(UserEntity user, PageParModel page); + Task>> SelctPageList(UserEntity user, PageParModel page,long ? deptId); /// diff --git a/Yi.Framework.Net6/Yi.Framework.Service/UserService.cs b/Yi.Framework.Net6/Yi.Framework.Service/UserService.cs index c8aaf644..5f48733d 100644 --- a/Yi.Framework.Net6/Yi.Framework.Service/UserService.cs +++ b/Yi.Framework.Net6/Yi.Framework.Service/UserService.cs @@ -118,7 +118,7 @@ namespace Yi.Framework.Service List userPostEntities = new(); foreach (var post in postIds) { - userPostEntities.Add(new UserPostEntity() { UserId = userId,PostId = post }); + userPostEntities.Add(new UserPostEntity() { UserId = userId, PostId = post }); } //一次性批量添加 @@ -131,7 +131,7 @@ namespace Yi.Framework.Service public async Task GetInfoById(long userId) { - return await _repository._DbQueryable.Includes(u => u.Roles).Includes(u=>u.Posts).Includes(u=>u.Dept).InSingleAsync(userId); + return await _repository._DbQueryable.Includes(u => u.Roles).Includes(u => u.Posts).Includes(u => u.Dept).InSingleAsync(userId); } public async Task GetUserAllInfo(long userId) @@ -160,7 +160,7 @@ namespace Yi.Framework.Service if (!string.IsNullOrEmpty(menu.PermissionCode)) { userRoleMenu.PermissionCodes.Add(menu.PermissionCode); - + } userRoleMenu.Menus.Add(menu); @@ -184,21 +184,29 @@ namespace Yi.Framework.Service - public async Task>> SelctPageList(UserEntity user, PageParModel page) + public async Task>> SelctPageList(UserEntity user, PageParModel page, long? deptId) { - RefAsync total = 0; - var data = await _repository._DbQueryable - .WhereIF(!string.IsNullOrEmpty(user.UserName), u => u.UserName.Contains(user.UserName)) - .WhereIF(!string.IsNullOrEmpty(user.Name), u => u.Name.Contains(user.Name)) - .WhereIF(!string.IsNullOrEmpty(user.Phone), u => u.Phone.Contains(user.Phone)) - .WhereIF(page.StartTime.IsNotNull() && page.EndTime.IsNotNull(), u => u.CreateTime >= page.StartTime && u.CreateTime <= page.EndTime) - .WhereIF(user.IsDeleted.IsNotNull(),u => u.IsDeleted == user.IsDeleted) - .Includes(u => u.Roles) - .Includes(u=>u.Posts) - .Includes(u=>u.Dept) - .OrderBy(u => u.OrderNum, OrderByType.Desc) - .ToPageListAsync(page.PageNum, page.PageSize, total); + RefAsync total = 0; + List data = null; + var query = _repository._DbQueryable + .WhereIF(!string.IsNullOrEmpty(user.UserName), u => u.UserName.Contains(user.UserName)) + .WhereIF(!string.IsNullOrEmpty(user.Name), u => u.Name.Contains(user.Name)) + .WhereIF(!string.IsNullOrEmpty(user.Phone), u => u.Phone.Contains(user.Phone)) + .WhereIF(page.StartTime.IsNotNull() && page.EndTime.IsNotNull(), u => u.CreateTime >= page.StartTime && u.CreateTime <= page.EndTime) + .WhereIF(user.IsDeleted.IsNotNull(), u => u.IsDeleted == user.IsDeleted) + .Includes(u => u.Roles) + .Includes(u => u.Posts) + .Includes(u => u.Dept); + if (deptId is not null) + { + //如果deptId不为空,部门id以下及自己都可以 + List deptIds = (await _repository._Db.Queryable().ToChildListAsync(it => it.ParentId, deptId)).Select(d => d.Id).ToList(); + query = query.Where(u => u.DeptId!=null&& deptIds.Contains((long)u.DeptId)); + } + + data = await query.OrderBy(u => u.OrderNum, OrderByType.Desc) + .ToPageListAsync(page.PageNum, page.PageSize, total); return new PageModel>(data, total); } @@ -217,7 +225,7 @@ namespace Yi.Framework.Service var res1 = await _repository.UpdateIgnoreNullAsync(userDto.User); var res2 = await GiveUserSetRole(new List { userDto.User.Id }, userDto.RoleIds); var res3 = await GiveUserSetPost(new List { userDto.User.Id }, userDto.PostIds); - return res1 && res2&& res3; + return res1 && res2 && res3; } public async Task AddInfo(UserInfoDto userDto) @@ -226,7 +234,7 @@ namespace Yi.Framework.Service var res1 = await _repository.InsertReturnSnowflakeIdAsync(userDto.User); var res2 = await GiveUserSetRole(new List { res1 }, userDto.RoleIds); var res3 = await GiveUserSetPost(new List { res1 }, userDto.PostIds); - return !0.Equals(res1) && res2&& res3; + return !0.Equals(res1) && res2 && res3; } public async Task RestPassword(long userId, string password) diff --git a/Yi.Vue3.X.RuoYi/src/views/system/user/index.vue b/Yi.Vue3.X.RuoYi/src/views/system/user/index.vue index 2c61a5d6..af419287 100644 --- a/Yi.Vue3.X.RuoYi/src/views/system/user/index.vue +++ b/Yi.Vue3.X.RuoYi/src/views/system/user/index.vue @@ -165,8 +165,10 @@ + {{form.user.isDeleted}} - {{ dict.label + + {{dict.value+ dict.label }} @@ -353,7 +355,6 @@ function handleQuery() { }; /** 重置按钮操作 */ function resetQuery() { - dateRange.value = []; proxy.resetForm("queryRef"); handleQuery(); };