From f4e401d64901406ce03653d424a1c4e85a4259cd Mon Sep 17 00:00:00 2001 From: liguoyang Date: Mon, 8 Jan 2024 10:35:25 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E7=94=A8=E6=88=B7=E5=92=8C=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=9D=83=E9=99=90=E8=81=94=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Src/Dlhis.Sys/Dlhis.Sys.csproj | 2 + Src/Dlhis.Sys/Dockerfile | 12 +- .../Menu/Controllers/MenusController.cs | 24 ++-- .../MenuPermissionAssignmentRequest.cs | 6 +- Src/Dlhis.Sys/Menu/Request/SaveMenuRequest.cs | 4 +- Src/Dlhis.Sys/Menu/Response/MenuResponse.cs | 6 - Src/Dlhis.Sys/Menu/Services/IMenuService.cs | 4 +- .../Menu/Services/Implements/MenuService.cs | 115 ++++++++++++------ Src/Dlhis.Sys/Program.cs | 19 ++- Src/Dlhis.Sys/Properties/launchSettings.json | 10 +- Src/Dlhis.Sys/SqlSugarPack.cs | 14 +++ Src/Dlhis.Sys/appsettings.Development.json | 4 + Src/Dlhis.Sys/appsettings.json | 15 ++- Src/Dlhis.User.Api/Dlhis.User.Api.csproj | 13 ++ Src/Dlhis.User.Api/IUserApi.cs | 13 ++ Src/Dlhis.User.Api/Response/UserResponse.cs | 28 +++++ Src/Dlhis.User/Dlhis.User.csproj | 2 + .../Identity/Controllers/RolesController.cs | 8 ++ .../Identity/Controllers/UsersController.cs | 20 +++ .../Identity/Services/IUserService.cs | 4 + .../Services/Implements/UserService.cs | 13 ++ Src/Dlhis.User/Properties/launchSettings.json | 14 +-- 22 files changed, 257 insertions(+), 93 deletions(-) create mode 100644 Src/Dlhis.Sys/SqlSugarPack.cs create mode 100644 Src/Dlhis.User.Api/Dlhis.User.Api.csproj create mode 100644 Src/Dlhis.User.Api/IUserApi.cs create mode 100644 Src/Dlhis.User.Api/Response/UserResponse.cs diff --git a/Src/Dlhis.Sys/Dlhis.Sys.csproj b/Src/Dlhis.Sys/Dlhis.Sys.csproj index 8a6887a8..763d284c 100644 --- a/Src/Dlhis.Sys/Dlhis.Sys.csproj +++ b/Src/Dlhis.Sys/Dlhis.Sys.csproj @@ -18,10 +18,12 @@ + + diff --git a/Src/Dlhis.Sys/Dockerfile b/Src/Dlhis.Sys/Dockerfile index d0ee9cec..036437ee 100644 --- a/Src/Dlhis.Sys/Dockerfile +++ b/Src/Dlhis.Sys/Dockerfile @@ -6,17 +6,17 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build WORKDIR /src -COPY ["Src/Dlhis.Permission/Dlhis.Permission.csproj", "Src/Dlhis.Permission/"] +COPY ["Src/Dlhis.Sys/Dlhis.Sys.csproj", "Src/Dlhis.Sys/"] COPY ["Src/Dlhis.Entity/Dlhis.Entity.csproj", "Src/Dlhis.Entity/"] -RUN dotnet restore "Src/Dlhis.Permission/Dlhis.Permission.csproj" +RUN dotnet restore "Src/Dlhis.Sys/Dlhis.Sys.csproj" COPY . . -WORKDIR "/src/Src/Dlhis.Permission" -RUN dotnet build "Dlhis.Permission.csproj" -c Release -o /app/build +WORKDIR "/src/Src/Dlhis.Sys" +RUN dotnet build "Dlhis.Sys.csproj" -c Release -o /app/build FROM build AS publish -RUN dotnet publish "Dlhis.Permission.csproj" -c Release -o /app/publish /p:UseAppHost=false +RUN dotnet publish "Dlhis.Sys.csproj" -c Release -o /app/publish /p:UseAppHost=false FROM base AS final WORKDIR /app COPY --from=publish /app/publish . -ENTRYPOINT ["dotnet", "Dlhis.Permission.dll"] \ No newline at end of file +ENTRYPOINT ["dotnet", "Dlhis.Sys.dll"] \ No newline at end of file diff --git a/Src/Dlhis.Sys/Menu/Controllers/MenusController.cs b/Src/Dlhis.Sys/Menu/Controllers/MenusController.cs index bc162d0b..d301c770 100644 --- a/Src/Dlhis.Sys/Menu/Controllers/MenusController.cs +++ b/Src/Dlhis.Sys/Menu/Controllers/MenusController.cs @@ -8,6 +8,9 @@ using Dlhis.Entity.Sys.Enums; namespace Dlhis.Sys.Menu.Controllers; +/// +/// 菜单 +/// [Authorize] [Route("api/[controller]")] [ApiController] @@ -23,14 +26,11 @@ public class MenusController : ControllerBase /// /// 菜单列表 /// + /// 菜单平台类型 PlatformEnumType /// [HttpGet("list")] - public async Task> GetListAsync([EnumDataType(typeof(PlatformEnumType))] PlatformEnumType? platform) + public async Task> GetListAsync([EnumDataType(typeof(PlatformEnumType))] PlatformEnumType? platform = PlatformEnumType.PCAdmin) { - if (!platform.HasValue) - { - platform = PlatformEnumType.UserMobile; - } return await _menuService.GetListAsync(platform.Value); } @@ -59,17 +59,19 @@ public class MenusController : ControllerBase /// /// 当前类型的权限分配 /// - /// 权限类型 + /// 权限分配类型 MenuAssignmentTypeEnumType /// 类型对应的唯一值 /// [HttpGet("assignments")] - public async Task> GetAssignmentsAsync([EnumDataType(typeof(MenuPermissionTypeEnumType))] MenuPermissionTypeEnumType permissionType, [Required] string uniqueValue) + public async Task> GetAssignmentsAsync( + [EnumDataType(typeof(MenuAssignmentTypeEnumType))] MenuAssignmentTypeEnumType uniqueType, + [Required] string uniqueValue) { - return await _menuService.GetAssignmentCodesAsync(permissionType, uniqueValue); + return await _menuService.GetAssignmentCodesAsync(uniqueType, uniqueValue); } /// - /// 获取所有权限分配 + /// 获取我的所有权限 /// /// [HttpGet("assignments/all")] @@ -79,7 +81,7 @@ public class MenusController : ControllerBase } /// - /// 我的菜单 + /// 获取我的菜单 /// /// [HttpGet("my")] @@ -89,7 +91,7 @@ public class MenusController : ControllerBase } /// - /// 重置 + /// 重置所有路由 /// /// /// diff --git a/Src/Dlhis.Sys/Menu/Request/MenuPermissionAssignmentRequest.cs b/Src/Dlhis.Sys/Menu/Request/MenuPermissionAssignmentRequest.cs index d7945625..09860fb1 100644 --- a/Src/Dlhis.Sys/Menu/Request/MenuPermissionAssignmentRequest.cs +++ b/Src/Dlhis.Sys/Menu/Request/MenuPermissionAssignmentRequest.cs @@ -6,10 +6,10 @@ namespace Dlhis.Sys.Menu.Request; public class MenuPermissionAssignmentRequest { /// - /// 权限类型 + /// 权限类型 MenuAssignmentTypeEnumType /// - [EnumDataType(typeof(MenuPermissionTypeEnumType))] - public MenuPermissionTypeEnumType UniqueType { get; set; } + [EnumDataType(typeof(MenuAssignmentTypeEnumType))] + public MenuAssignmentTypeEnumType UniqueType { get; set; } /// /// 唯一值 diff --git a/Src/Dlhis.Sys/Menu/Request/SaveMenuRequest.cs b/Src/Dlhis.Sys/Menu/Request/SaveMenuRequest.cs index 4e72baab..a7f6ae81 100644 --- a/Src/Dlhis.Sys/Menu/Request/SaveMenuRequest.cs +++ b/Src/Dlhis.Sys/Menu/Request/SaveMenuRequest.cs @@ -60,13 +60,13 @@ public class SaveMenuRequest : IValidatableObject public int Sequence { get; set; } /// - /// 菜单类型 + /// 菜单类型 MenuEnumType /// [EnumDataType(typeof(MenuEnumType))] public MenuEnumType MenuType { get; set; } /// - /// 平台 + /// 平台 PlatformEnumType /// [EnumDataType(typeof(PlatformEnumType))] public PlatformEnumType Platform { get; set; } diff --git a/Src/Dlhis.Sys/Menu/Response/MenuResponse.cs b/Src/Dlhis.Sys/Menu/Response/MenuResponse.cs index cc1400ab..0f84c250 100644 --- a/Src/Dlhis.Sys/Menu/Response/MenuResponse.cs +++ b/Src/Dlhis.Sys/Menu/Response/MenuResponse.cs @@ -68,12 +68,6 @@ public class MenuResponse /// public PlatformEnumType Platform { get; set; } - - /// - /// 手机端才会有 - /// - public List HotelIds { get; set; } = new List(); - /// /// 子菜单 /// diff --git a/Src/Dlhis.Sys/Menu/Services/IMenuService.cs b/Src/Dlhis.Sys/Menu/Services/IMenuService.cs index 5e19b56c..8a1646ba 100644 --- a/Src/Dlhis.Sys/Menu/Services/IMenuService.cs +++ b/Src/Dlhis.Sys/Menu/Services/IMenuService.cs @@ -5,7 +5,7 @@ using Dlhis.Sys.Menu.Response; namespace Dlhis.Sys.Menu.Services; -public interface IMenuService +public interface IMenuService : IScopeDependency { Task> GetListAsync(PlatformEnumType platform); @@ -13,7 +13,7 @@ public interface IMenuService Task AssignmentAsync(MenuPermissionAssignmentRequest request); - Task> GetAssignmentCodesAsync(MenuPermissionTypeEnumType permissionType, string uniqueData); + Task> GetAssignmentCodesAsync(MenuAssignmentTypeEnumType permissionType, string uniqueData); Task> GetAllAssignmentPermissionsAsync(); diff --git a/Src/Dlhis.Sys/Menu/Services/Implements/MenuService.cs b/Src/Dlhis.Sys/Menu/Services/Implements/MenuService.cs index 5606c08b..10cffed3 100644 --- a/Src/Dlhis.Sys/Menu/Services/Implements/MenuService.cs +++ b/Src/Dlhis.Sys/Menu/Services/Implements/MenuService.cs @@ -2,8 +2,10 @@ using Dlhis.Entity.Sys.Enums; using Dlhis.Sys.Menu.Request; using Dlhis.Sys.Menu.Response; +using Dlhis.User.Api; using Kurisu.AspNetCore.Utils.Extensions; using Kurisu.Core.User.Abstractions; +using Kurisu.SqlSugar.Attributes; using Kurisu.SqlSugar.Services; using Mapster; @@ -13,11 +15,13 @@ public class MenuService : IMenuService { private readonly IDbContext _dbContext; private readonly ICurrentUser _currentUser; + private readonly IUserApi _userApi; - public MenuService(IDbContext dbContext, ICurrentUser currentUser) + public MenuService(IDbContext dbContext, ICurrentUser currentUser, IUserApi userApi) { _dbContext = dbContext; _currentUser = currentUser; + _userApi = userApi; } public async Task> GetListAsync(PlatformEnumType platform) @@ -37,6 +41,7 @@ public class MenuService : IMenuService return top; } + [Transactional] public async Task SaveMenuAsync(SaveMenuRequest request) { await CheckAsync(request); @@ -57,27 +62,9 @@ public class MenuService : IMenuService } } - - private async Task ChangeIfCodeEditAsync(string beforeCode, string pcode) - { - if (beforeCode != pcode) - { - //修改下级的PCode为当前的code - var menus = await _dbContext.Queryable().Where(x => x.PCode == beforeCode).ToListAsync(); - menus.ForEach(x => { x.PCode = pcode; }); - - //修改权限code为当前的code,避免权限丢失 - var permissions = await _dbContext.Queryable().Where(x => x.Code == beforeCode).ToListAsync(); - permissions.ForEach(x => { x.Code = pcode; }); - - await _dbContext.UpdateAsync(menus); - await _dbContext.UpdateAsync(permissions); - } - } - public async Task AssignmentAsync(MenuPermissionAssignmentRequest request) { - (request.UniqueType == MenuPermissionTypeEnumType.Role).ThrowIfTrue("暂不支持角色分配"); + (request.UniqueType == MenuAssignmentTypeEnumType.Role).ThrowIfTrue("暂不支持角色分配"); //清空覆盖 var permissionsToDelete = await _dbContext.Queryable() @@ -98,15 +85,57 @@ public class MenuService : IMenuService await _dbContext.InsertAsync(permissions); } - public Task> GetAssignmentCodesAsync(MenuPermissionTypeEnumType permissionType, string uniqueData) + public async Task> GetAssignmentCodesAsync(MenuAssignmentTypeEnumType uniqueType, string uniqueData) { - throw new NotImplementedException(); + var permissionCodes = await _dbContext.Queryable() + .Where(x => x.UniqueType == uniqueType) + .Where(x => x.UniqueValue == uniqueData) + .Select(x => x.Code) + .ToListAsync(); + + var menus = await GetListAsync(PlatformEnumType.PCAdmin); + + foreach (var menu in menus) + { + if (menu.Items.Any()) + { + var codes = RecursionHandler(menu.Items, permissionCodes); + permissionCodes.RemoveAll(x => codes.Contains(x)); + } + } + + return permissionCodes; + + static List RecursionHandler(List menus, List innerPermissions) + { + var codes = new HashSet(); + foreach (var menu in menus) + { + if (menu.Items.Any()) + { + var innerPermissionCodes = RecursionHandler(menu.Items, innerPermissions); + foreach (var item in innerPermissionCodes) + { + codes.Add(item); + } + } + + if (!innerPermissions.Contains(menu.Code)) + { + foreach (var item in menu.Items.Select(x => x.Code)) + { + codes.Add(item); + } + } + } + + return codes.ToList(); + } } public async Task> GetAllAssignmentPermissionsAsync() { var all = await GetAllAssignmentCodesAsync(); - return await _dbContext.Queryable().Where(x => all.Contains(x.Code)).Select(x => x.Permission).ToListAsync(); } @@ -238,20 +267,34 @@ public class MenuService : IMenuService private async Task> GetAllAssignmentCodesAsync() { - var user = await _dbContext.Queryable().Where(x => x.Id == _currentUser.GetIntSubjectId()).FirstAsync(); - if (user == null) + var userApiResult = await _userApi.GetUserByIdAsync(_currentUser.GetIntSubjectId()); + (userApiResult.Code == Kurisu.Core.Result.ApiStateCode.Success).ThrowIfFalse(userApiResult.Msg); + var user = userApiResult.Data; + + // var groupCodes = await GetAssignmentCodesAsync(MenuPermissionTypeEnumType.Group, manager.usergrp); + + //user + var userCodes = await GetAssignmentCodesAsync(MenuAssignmentTypeEnumType.User, user.Id.ToString()); + var all = userCodes;// gP.Concat(uP).Distinct().ToList(); + + return all; + } + + + private async Task ChangeIfCodeEditAsync(string beforeCode, string pcode) + { + if (beforeCode != pcode) { - return new List(); + //修改下级的PCode为当前的code + var menus = await _dbContext.Queryable().Where(x => x.PCode == beforeCode).ToListAsync(); + menus.ForEach(x => { x.PCode = pcode; }); + + //修改权限code为当前的code,避免权限丢失 + var permissions = await _dbContext.Queryable().Where(x => x.Code == beforeCode).ToListAsync(); + permissions.ForEach(x => { x.Code = pcode; }); + + await _dbContext.UpdateAsync(menus); + await _dbContext.UpdateAsync(permissions); } - - // var gP = await GetAssignmentCodesAsync(MenuPermissionTypeEnumType.Group, manager.usergrp); - // - // //user - // var uP = await GetAssignmentCodesAsync(MenuPermissionTypeEnumType.User, manager.account); - // var all = gP.Concat(uP).Distinct().ToList(); - - //return all; - - return new List(); } } \ No newline at end of file diff --git a/Src/Dlhis.Sys/Program.cs b/Src/Dlhis.Sys/Program.cs index 2f2202fc..2539a772 100644 --- a/Src/Dlhis.Sys/Program.cs +++ b/Src/Dlhis.Sys/Program.cs @@ -1,21 +1,20 @@ using Kurisu.AspNetCore.Startup; using Kurisu.Startup; -namespace Dlhis.Sys +namespace Dlhis.Sys; + +class Program { - class Program + static void Main(string[] args) { - static void Main(string[] args) - { - KurisuHost.Run(true, args); - } + KurisuHost.Run(true, args); } +} - public class Startup : DefaultStartup +public class Startup : DefaultStartup +{ + public Startup(IConfiguration configuration) : base(configuration) { - public Startup(IConfiguration configuration) : base(configuration) - { - } } } \ No newline at end of file diff --git a/Src/Dlhis.Sys/Properties/launchSettings.json b/Src/Dlhis.Sys/Properties/launchSettings.json index b5d66c45..f52c9c8c 100644 --- a/Src/Dlhis.Sys/Properties/launchSettings.json +++ b/Src/Dlhis.Sys/Properties/launchSettings.json @@ -1,20 +1,12 @@ { "profiles": { - "Dlhis.Permission": { + "Dlhis.Sys": { "commandName": "Project", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" }, "dotnetRunMessages": true, "applicationUrl": "http://localhost:5003" - }, - "Docker": { - "commandName": "Docker", - "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}", - "environmentVariables": { - "ASPNETCORE_URLS": "http://+:80" - }, - "publishAllPorts": true } } } \ No newline at end of file diff --git a/Src/Dlhis.Sys/SqlSugarPack.cs b/Src/Dlhis.Sys/SqlSugarPack.cs new file mode 100644 index 00000000..26d783d6 --- /dev/null +++ b/Src/Dlhis.Sys/SqlSugarPack.cs @@ -0,0 +1,14 @@ +using Kurisu.AspNetCore.Startup; +using Kurisu.SqlSugar.Extensions; + +namespace Dlhis.Sys; + +public class SqlSugarPack : BaseAppPack +{ + public override bool IsBeforeUseRouting { get; } + + public override void ConfigureServices(IServiceCollection services) + { + services.AddSqlSugar(); + } +} diff --git a/Src/Dlhis.Sys/appsettings.Development.json b/Src/Dlhis.Sys/appsettings.Development.json index 0c208ae9..b6aea76a 100644 --- a/Src/Dlhis.Sys/appsettings.Development.json +++ b/Src/Dlhis.Sys/appsettings.Development.json @@ -4,5 +4,9 @@ "Default": "Information", "Microsoft.AspNetCore": "Warning" } + }, + "InternalRequest": { + "CommonRequestUrl": "http://common", + "UserRequestUrl": "http://localhost:5010" } } diff --git a/Src/Dlhis.Sys/appsettings.json b/Src/Dlhis.Sys/appsettings.json index 369aba6b..808230bd 100644 --- a/Src/Dlhis.Sys/appsettings.json +++ b/Src/Dlhis.Sys/appsettings.json @@ -6,13 +6,26 @@ } }, "AllowedHosts": "*", + "InternalRequest": { + "CommonRequestUrl": "http://common", + "UserRequestUrl": "http://user" + }, + "SqlSugarOptions": { + "DefaultConnectionString": "server=192.168.199.124;port=3306;userid=root;password=dlhis123;database=yikatong;charset=utf8mb4;", + "SlaveConnectionString": [], + "Timeout": 30, + "SlowSqlTime": 1, + "EnableSqlLog": true + }, "SwaggerOptions": { "Enable": true, "Authority": "https://yikatong.isawesome.cn/oauth2", "ClientId": "4fb184324eac4180", "ClientSecret": "8ac8f235152f1524", "Scopes": { - "openid": "openid" + "openid": "openid", + "profile": "profile", + "yikatong": "yikatong" } }, "IdentityServerOptions": { diff --git a/Src/Dlhis.User.Api/Dlhis.User.Api.csproj b/Src/Dlhis.User.Api/Dlhis.User.Api.csproj new file mode 100644 index 00000000..71b4a337 --- /dev/null +++ b/Src/Dlhis.User.Api/Dlhis.User.Api.csproj @@ -0,0 +1,13 @@ + + + + net6.0 + enable + disable + + + + + + + diff --git a/Src/Dlhis.User.Api/IUserApi.cs b/Src/Dlhis.User.Api/IUserApi.cs new file mode 100644 index 00000000..1e52028b --- /dev/null +++ b/Src/Dlhis.User.Api/IUserApi.cs @@ -0,0 +1,13 @@ +using Dlhis.User.Api.Response; +using Kurisu.Core.Result; +using Kurisu.RemoteCall.Attributes; + +namespace Dlhis.User.Api; + +[EnableRemoteClient(Name = "user-service", BaseUrl = "${InternalRequest:UserRequestUrl}")] +public interface IUserApi +{ + [Auth] + [Get("/api/users")] + Task> GetUserByIdAsync(int id); +} \ No newline at end of file diff --git a/Src/Dlhis.User.Api/Response/UserResponse.cs b/Src/Dlhis.User.Api/Response/UserResponse.cs new file mode 100644 index 00000000..391341d2 --- /dev/null +++ b/Src/Dlhis.User.Api/Response/UserResponse.cs @@ -0,0 +1,28 @@ +namespace Dlhis.User.Api.Response; + +public class UserResponse +{ + public int Id { get; set; } + + public string UserName { get; set; } + + public string NormalizedUserName { get; set; } + + public string Email { get; set; } + + public string NormalizedEmail { get; set; } + + public bool EmailConfirmed { get; set; } + + public string PhoneNumber { get; set; } + + public string PhoneNumberConfirmed { get; set; } + + public bool TwoFactorEnabled { get; set; } + + public bool LockoutEnd { get; set; } + + public bool LockoutEnabled { get; set; } + + public int AccessFailedCount { get; set; } +} diff --git a/Src/Dlhis.User/Dlhis.User.csproj b/Src/Dlhis.User/Dlhis.User.csproj index 6ac4aa28..b15a865e 100644 --- a/Src/Dlhis.User/Dlhis.User.csproj +++ b/Src/Dlhis.User/Dlhis.User.csproj @@ -4,6 +4,8 @@ net6.0 disable enable + Linux + ..\.. diff --git a/Src/Dlhis.User/Identity/Controllers/RolesController.cs b/Src/Dlhis.User/Identity/Controllers/RolesController.cs index 0f8e0f99..be7468ac 100644 --- a/Src/Dlhis.User/Identity/Controllers/RolesController.cs +++ b/Src/Dlhis.User/Identity/Controllers/RolesController.cs @@ -7,6 +7,9 @@ using Microsoft.AspNetCore.Mvc; namespace Dlhis.User.Identity.Controllers; +/// +/// 角色 +/// [Authorize(Roles = "admin")] [Route("api/[controller]")] [ApiController] @@ -19,6 +22,11 @@ public class RolesController : ControllerBase _roleService = roleService; } + /// + /// 获取角色分页 + /// + /// + /// [HttpGet] public async Task> GetPageAsync(RolePageRequest request) { diff --git a/Src/Dlhis.User/Identity/Controllers/UsersController.cs b/Src/Dlhis.User/Identity/Controllers/UsersController.cs index 0700500c..e0d5d519 100644 --- a/Src/Dlhis.User/Identity/Controllers/UsersController.cs +++ b/Src/Dlhis.User/Identity/Controllers/UsersController.cs @@ -7,6 +7,9 @@ using Microsoft.AspNetCore.Mvc; namespace Dlhis.User.Identity.Controllers; +/// +/// 用户 +/// [Authorize(Roles = "admin")] [Route("api/[controller]")] [ApiController] @@ -29,4 +32,21 @@ public class UsersController : ControllerBase { return await _userService.GetPageAsync(request); } + + /// + /// 获取用户列表 + /// + /// + [HttpGet("list")] + public async Task> GetUsersAsync() + { + return await _userService.GetUsersAsync(); + } + + [Authorize] + [HttpGet] + public async Task GetUserByIdAsync(int id) + { + return await _userService.GetUserByIdAsync(id); + } } diff --git a/Src/Dlhis.User/Identity/Services/IUserService.cs b/Src/Dlhis.User/Identity/Services/IUserService.cs index 227bdf6e..e07ac0d6 100644 --- a/Src/Dlhis.User/Identity/Services/IUserService.cs +++ b/Src/Dlhis.User/Identity/Services/IUserService.cs @@ -9,4 +9,8 @@ public interface IUserService : IScopeDependency Task> GetPageAsync(UserPageRequest request); Task ResetAccessFailedCountAsync(int id); + + Task> GetUsersAsync(); + + Task GetUserByIdAsync(int id); } diff --git a/Src/Dlhis.User/Identity/Services/Implements/UserService.cs b/Src/Dlhis.User/Identity/Services/Implements/UserService.cs index b4c0844a..e7ebc36a 100644 --- a/Src/Dlhis.User/Identity/Services/Implements/UserService.cs +++ b/Src/Dlhis.User/Identity/Services/Implements/UserService.cs @@ -38,4 +38,17 @@ public class UserService : IUserService user.AccessFailedCount = 0; await _dbContext.UpdateAsync(user); } + + public async Task> GetUsersAsync() + { + //todo tenant + var users = await _dbContext.Queryable().Select().ToListAsync(); + return users; + } + + public async Task GetUserByIdAsync(int id) + { + var user = await _dbContext.Queryable().Where(x => x.Id == id).Select().FirstAsync(); + return user; + } } diff --git a/Src/Dlhis.User/Properties/launchSettings.json b/Src/Dlhis.User/Properties/launchSettings.json index ebd6db88..67846e57 100644 --- a/Src/Dlhis.User/Properties/launchSettings.json +++ b/Src/Dlhis.User/Properties/launchSettings.json @@ -1,13 +1,13 @@ -{ - "$schema": "https://json.schemastore.org/launchsettings.json", +{ "profiles": { "Dlhis.User": { "commandName": "Project", - "dotnetRunMessages": true, - "applicationUrl": "http://localhost:5010", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" - } + }, + "dotnetRunMessages": true, + "applicationUrl": "http://localhost:5010" } - } -} + }, + "$schema": "https://json.schemastore.org/launchsettings.json" +} \ No newline at end of file