From 1c8f20440c7bd37c76fb8c13fc94f84ed9be80bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A9=99=E5=AD=90?= <454313500@qq.com> Date: Tue, 31 Jan 2023 20:09:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=9B=B4=E6=96=B0=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Abstract/IPagedAllResultRequestDto.cs | 3 ++- .../Dtos/PagedAllResultRequestDto.cs | 2 +- .../Services/CrudAppService.cs | 6 ++++- .../Identity/Dtos/User/UserGetListInputVo.cs | 22 ++++-------------- .../Dtos/User/UserGetListOutputDto.cs | 2 ++ .../Identity/Dtos/User/UserGetOutputDto.cs | 2 ++ .../ApplicationSwaggerDoc.xml | 7 ++++++ .../Identity/UserService.cs | 21 +++++++++++++++++ .../rbac/Yi.RBAC.Domain/DomainSwaggerDoc.xml | 8 +++++++ .../Identity/Repositories/IUserRepository.cs | 10 ++++++++ .../Repositories/UserRepository.cs | 15 +++++++++++- .../rbac/Yi.RBAC.Web/yi-sqlsugar-dev.db | Bin 90112 -> 90112 bytes 12 files changed, 77 insertions(+), 21 deletions(-) diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Dtos/Abstract/IPagedAllResultRequestDto.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Dtos/Abstract/IPagedAllResultRequestDto.cs index 0158dc66..72f7914e 100644 --- a/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Dtos/Abstract/IPagedAllResultRequestDto.cs +++ b/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Dtos/Abstract/IPagedAllResultRequestDto.cs @@ -3,10 +3,11 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Yi.Framework.Ddd.Services.Abstract; namespace Yi.Framework.Ddd.Dtos.Abstract { - public interface IPagedAllResultRequestDto + public interface IPagedAllResultRequestDto: IPageTimeResultRequestDto, IPagedAndSortedResultRequestDto { DateTime? StartTime { get; set; } DateTime? EndTime { get; set; } diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Dtos/PagedAllResultRequestDto.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Dtos/PagedAllResultRequestDto.cs index 186ce02a..45384dfa 100644 --- a/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Dtos/PagedAllResultRequestDto.cs +++ b/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Dtos/PagedAllResultRequestDto.cs @@ -8,7 +8,7 @@ using Yi.Framework.Ddd.Services.Abstract; namespace Yi.Framework.Ddd.Dtos { - public class PagedAllResultRequestDto : PagedAndSortedResultRequestDto, IPageTimeResultRequestDto, IPagedAndSortedResultRequestDto + public class PagedAllResultRequestDto : PagedAndSortedResultRequestDto, IPagedAllResultRequestDto, IPagedAndSortedResultRequestDto, IPageTimeResultRequestDto { public DateTime? StartTime { get; set; } public DateTime? EndTime { get; set; } diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Services/CrudAppService.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Services/CrudAppService.cs index daf9217e..fe707eb7 100644 --- a/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Services/CrudAppService.cs +++ b/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Services/CrudAppService.cs @@ -57,6 +57,11 @@ namespace Yi.Framework.Ddd.Services where TGetListOutputDto : IEntityDto { + protected virtual Task MapToEntityAsync(TGetListInput getListinput) + { + return Task.FromResult(_mapper.Map(getListinput)); + } + protected virtual Task MapToEntityAsync(TCreateInput createInput) { @@ -153,7 +158,6 @@ namespace Yi.Framework.Ddd.Services { throw new ArgumentNullException(nameof(id)); } - var entity = await MapToEntityAsync(input); entity.Id = id; await _repository.UpdateIgnoreNullAsync(entity); diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/User/UserGetListInputVo.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/User/UserGetListInputVo.cs index 5b2d5c20..64ea4966 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/User/UserGetListInputVo.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/User/UserGetListInputVo.cs @@ -8,25 +8,13 @@ using Yi.RBAC.Domain.Shared.Identity.EnumClasses; namespace Yi.RBAC.Application.Contracts.Identity.Dtos { - public class UserGetListInputVo : PagedAndSortedResultRequestDto + public class UserGetListInputVo : PagedAllResultRequestDto { - public long Id { get; set; } public string? Name { get; set; } - public int? Age { get; set; } - public string UserName { get; set; } = string.Empty; - public string Password { get; set; } = string.Empty; - public string Salt { get; set; } = string.Empty; - public string? Icon { get; set; } - public string? Nick { get; set; } - public string? Email { get; set; } - public string? Ip { get; set; } - public string? Address { get; set; } + public string? UserName { get; set; } public long? Phone { get; set; } - public string? Introduction { get; set; } - public string? Remark { get; set; } - public SexEnum Sex { get; set; } = SexEnum.Unknown; - public long? DeptId { get; set; } - public DateTime CreationTime { get; set; } = DateTime.Now; - public long? CreatorId { get; set; } + + public bool IsDeleted { get; set; } + } } diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/User/UserGetListOutputDto.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/User/UserGetListOutputDto.cs index d89c3ba2..7819173d 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/User/UserGetListOutputDto.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/User/UserGetListOutputDto.cs @@ -28,5 +28,7 @@ namespace Yi.RBAC.Application.Contracts.Identity.Dtos public long? DeptId { get; set; } public DateTime CreationTime { get; set; } = DateTime.Now; public long? CreatorId { get; set; } + + public bool State { get; set; } } } diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/User/UserGetOutputDto.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/User/UserGetOutputDto.cs index 0241d50b..9c52a361 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/User/UserGetOutputDto.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/User/UserGetOutputDto.cs @@ -28,5 +28,7 @@ namespace Yi.RBAC.Application.Contracts.Identity.Dtos public long? DeptId { get; set; } public DateTime CreationTime { get; set; } = DateTime.Now; public long? CreatorId { get; set; } + + public bool State { get; set; } } } diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/ApplicationSwaggerDoc.xml b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/ApplicationSwaggerDoc.xml index 0deac0b3..95b149fb 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/ApplicationSwaggerDoc.xml +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/ApplicationSwaggerDoc.xml @@ -36,6 +36,13 @@ User服务实现 + + + 查询用户 + + + + 添加用户 diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/UserService.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/UserService.cs index bdf4b594..f3c1edc2 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/UserService.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/UserService.cs @@ -6,6 +6,8 @@ using Yi.Framework.Ddd.Services; using Yi.RBAC.Domain.Shared.Identity.ConstClasses; using Yi.RBAC.Domain.Identity; using Yi.Framework.Uow; +using Yi.Framework.Ddd.Dtos; +using Yi.RBAC.Domain.Identity.Repositories; namespace Yi.RBAC.Application.Identity { @@ -21,6 +23,25 @@ namespace Yi.RBAC.Application.Identity [Autowired] private IUnitOfWorkManager _unitOfWorkManager { get; set; } + + [Autowired] + private IUserRepository _userRepository { get; set; } + + /// + /// 查询用户 + /// + /// + /// + public override async Task> GetListAsync(UserGetListInputVo input) + { + var entity = await MapToEntityAsync(input); + var entities = await _userRepository.SelctGetListAsync(entity, input); + var result = new PagedResultDto(); + result.Items = await MapToGetListOutputDtosAsync(entities); + result.Total = await _repository.CountAsync(_ => true); + return result; + } + /// /// 添加用户 /// diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/DomainSwaggerDoc.xml b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/DomainSwaggerDoc.xml index 3683070d..3969952a 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/DomainSwaggerDoc.xml +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/DomainSwaggerDoc.xml @@ -579,6 +579,14 @@ + + + 动态分页选择 + + + + + 给用户设置角色 diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/Identity/Repositories/IUserRepository.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/Identity/Repositories/IUserRepository.cs index 8303d8d3..b97c63f8 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/Identity/Repositories/IUserRepository.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/Identity/Repositories/IUserRepository.cs @@ -3,6 +3,8 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Yi.Framework.Ddd.Dtos; +using Yi.Framework.Ddd.Dtos.Abstract; using Yi.Framework.Ddd.Repositories; using Yi.RBAC.Domain.Identity.Dtos; using Yi.RBAC.Domain.Identity.Entities; @@ -18,5 +20,13 @@ namespace Yi.RBAC.Domain.Identity.Repositories /// /// Task GetUserAllInfoAsync(long userId); + + /// + /// 动态分页选择 + /// + /// + /// + /// + Task> SelctGetListAsync(UserEntity input, IPagedAllResultRequestDto pageInput); } } diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Sqlsugar/Repositories/UserRepository.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Sqlsugar/Repositories/UserRepository.cs index a867ceb8..327aedda 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Sqlsugar/Repositories/UserRepository.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Sqlsugar/Repositories/UserRepository.cs @@ -5,6 +5,8 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Yi.Framework.Core.Sqlsugar.Repositories; +using Yi.Framework.Ddd.Dtos; +using Yi.Framework.Ddd.Dtos.Abstract; using Yi.Framework.Ddd.Repositories; using Yi.RBAC.Domain.Identity.Dtos; using Yi.RBAC.Domain.Identity.Entities; @@ -21,6 +23,17 @@ namespace Yi.RBAC.Sqlsugar.Repositories { } + + public async Task> SelctGetListAsync(UserEntity input, IPagedAllResultRequestDto pageInput) + { + var entities = await _DbQueryable.WhereIF(!string.IsNullOrEmpty(input.UserName), x => x.UserName.Contains(input.UserName!)). + WhereIF(input.Phone is not null, x => x.Phone.ToString()! .Contains(input.Phone.ToString()!)). + WhereIF(!string.IsNullOrEmpty(input.Name), x => x.Name!.Contains(input.Name!)). + WhereIF(pageInput.StartTime is not null && pageInput.EndTime is not null, x => x.CreationTime >= pageInput.StartTime && x.CreationTime <= pageInput.EndTime).ToPageListAsync(pageInput.PageIndex, pageInput.PageSize); + + return entities; + } + /// /// 获取用户id的全部信息 /// @@ -71,7 +84,7 @@ namespace Yi.RBAC.Sqlsugar.Repositories } //刚好可以去除一下多余的导航属性 - role.Menus =new List(); + role.Menus = new List(); userRoleMenu.Roles.Add(role); } diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/yi-sqlsugar-dev.db b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/yi-sqlsugar-dev.db index 0f42efaaade8513f8854dbc314f7807eaa26c56a..1307f09bae18a46b7f33adde0dca455c9b67dbca 100644 GIT binary patch delta 435 zcmZoTz}j$tb%Hdb*hCp;MzM_vOZ2&zdEYVcEAt)ZeYaUq-~n%aV-T|>8;2l=V56n2 zq@*N+B!{FV2Zu8Q0|N)ASk2ylADILgl7S#Q*TNvJ!qO$8Agnk&IUpj$vZyG&IK|y5 z)z#N6!Z9GgJGac)uiP!UJU_zKKsVXE%Azp9D7`qUOgG&;FfTI8-N4J-tisjF#k0)7 zAT-6z-PEhdu|Tw-sw^tc)6CE!KhQ8jUpw11B*mkA@_u_G6-z5a11kd~Jwrn?V^d3u zI3@`;PC*V{US60p89A&cU$JxIFg3F>vIHudtYrU)i<$ox1OFHP=lr)e3p$+P=jCB$ zV}$vGdGm9B*#kf&`xy9N@n7NJw^>kO1HY&UGYcCV2T0MsCIJSh;^~*=84Yoo22#j8 h{kcA)ELPJv*g&TIbwV=D9*=1th0NQZ`!h-k003DBf~f!i delta 283 zcmZoTz}j$tb%Hdb@I)DBM&XSKOY}LI`1UjKEA#E&EGXd0SAUg_Ly$wT(b85@Qj$TE zLsF81!>o4m3<+k^tGq%gYP3 zjzyA@!+G)zJ0~6kb1MTAJu?#vGjo&4O7@R9nE0PF@PFZdzF9EfHvi`5{;~&vLRT30 lU-4hrEa-58fBF@9Mgvq;)1T`z%A%{XM_0A|xj&<%003PWQ>_31