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 0f42efaa..1307f09b 100644 Binary files a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/yi-sqlsugar-dev.db and b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/yi-sqlsugar-dev.db differ