From 867c212222eaa1446bee5f1a92e018f6d58c332f Mon Sep 17 00:00:00 2001 From: liguoyang Date: Tue, 2 Apr 2024 13:41:36 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=BA=BA=E4=BA=8B=E8=8C=83=E5=9B=B4?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/WerksController.cs | 25 +++++---- .../Organization/Request/WerkRequest.cs | 22 ++++++++ .../Organization/Response/WerkResponse.cs | 21 ++++++++ .../Organization/Services/IWerkService.cs | 8 +-- .../Services/Implements/WerkService.cs | 52 +++++++++++-------- Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs | 2 + 6 files changed, 95 insertions(+), 35 deletions(-) create mode 100644 Src/Dlhis.Basic/Organization/Request/WerkRequest.cs create mode 100644 Src/Dlhis.Basic/Organization/Response/WerkResponse.cs diff --git a/Src/Dlhis.Basic/Organization/Controllers/WerksController.cs b/Src/Dlhis.Basic/Organization/Controllers/WerksController.cs index 1c9cc3e2..0cfb14fe 100644 --- a/Src/Dlhis.Basic/Organization/Controllers/WerksController.cs +++ b/Src/Dlhis.Basic/Organization/Controllers/WerksController.cs @@ -1,5 +1,7 @@ -using Dlhis.Basic.Organization.Services; -using Dlhis.Sys.Api.Response; +using Dlhis.Basic.Organization.Request; +using Dlhis.Basic.Organization.Response; +using Dlhis.Basic.Organization.Services; +using Kurisu.Core.DataAccess.Dto; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -11,7 +13,6 @@ namespace Dlhis.Basic.Organization.Controllers; [Authorize] [Route("api/[controller]")] [ApiController] -[Obsolete] public class WerksController : ControllerBase { private readonly IWerkService _werkService; @@ -22,22 +23,24 @@ public class WerksController : ControllerBase } /// - /// 获取人事范围列表 + /// 分页 /// + /// /// - [HttpGet("list")] - public async Task> GetListAsync() + [HttpGet("page")] + public async Task> GetPageAsync([FromQuery] PageDto request) { - return await _werkService.GetListAsync(); + return await _werkService.GetPageAsync(request); } /// - /// 获取当前组织信息 + /// 保存人事范围 /// + /// /// - [HttpGet("current")] - public async Task GetCurrentAsync() + [HttpPost("save")] + public async Task SaveAsync(WerkRequest request) { - return await _werkService.GetCurrentAsync(); + await _werkService.SaveAsync(request); } } diff --git a/Src/Dlhis.Basic/Organization/Request/WerkRequest.cs b/Src/Dlhis.Basic/Organization/Request/WerkRequest.cs new file mode 100644 index 00000000..a591f8e2 --- /dev/null +++ b/Src/Dlhis.Basic/Organization/Request/WerkRequest.cs @@ -0,0 +1,22 @@ +using System.ComponentModel.DataAnnotations; + +namespace Dlhis.Basic.Organization.Request; + +public class WerkRequest +{ + public long? Id { get; set; } + + /// + /// 人事范围 + /// + [Required] + public string Werk { get; set; } + + /// + /// 名称 + /// + [Required] + public string Name { get; set; } + + public bool Enable { get; set; } +} diff --git a/Src/Dlhis.Basic/Organization/Response/WerkResponse.cs b/Src/Dlhis.Basic/Organization/Response/WerkResponse.cs new file mode 100644 index 00000000..6f1cf331 --- /dev/null +++ b/Src/Dlhis.Basic/Organization/Response/WerkResponse.cs @@ -0,0 +1,21 @@ +namespace Dlhis.Basic.Organization.Response; + +public class WerkResponse +{ + public long Id { get; set; } + + /// + /// 人事范围 + /// + public string Werk { get; set; } + + /// + /// 名称 + /// + public string Name { get; set; } + + /// + /// 是否启用 + /// + public bool Enable { get; set; } +} diff --git a/Src/Dlhis.Basic/Organization/Services/IWerkService.cs b/Src/Dlhis.Basic/Organization/Services/IWerkService.cs index 42b1a90e..087f5bc2 100644 --- a/Src/Dlhis.Basic/Organization/Services/IWerkService.cs +++ b/Src/Dlhis.Basic/Organization/Services/IWerkService.cs @@ -1,10 +1,12 @@ -using Dlhis.Sys.Api.Response; +using Dlhis.Basic.Organization.Request; +using Dlhis.Basic.Organization.Response; +using Kurisu.Core.DataAccess.Dto; namespace Dlhis.Basic.Organization.Services; public interface IWerkService : IScopeDependency { - Task> GetListAsync(); + Task> GetPageAsync(PageDto request); - Task GetCurrentAsync(); + Task SaveAsync(WerkRequest request); } diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/WerkService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/WerkService.cs index 99517d8a..58acac62 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/WerkService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/WerkService.cs @@ -1,38 +1,48 @@ -using Dlhis.Sys.Api; -using Dlhis.Sys.Api.Response; +using Dlhis.Basic.Organization.Request; +using Dlhis.Basic.Organization.Response; +using Dlhis.Entity.Basic.Entity; using Kurisu.AspNetCore.Utils.Extensions; -using Kurisu.Core.Result; -using Kurisu.Core.User.Abstractions; +using Kurisu.Core.DataAccess.Dto; +using Kurisu.SqlSugar.Extensions; +using Kurisu.SqlSugar.Services; +using Mapster; namespace Dlhis.Basic.Organization.Services.Implements; public class WerkService : IWerkService { - private readonly ICurrentUser _currentUser; - private readonly ITenantApi _tenantApi; + private readonly IDbContext _dbContext; - public WerkService(ICurrentUser currentUser, ITenantApi tenantApi) + public WerkService(IDbContext dbContext) { - _currentUser = currentUser; - _tenantApi = tenantApi; + _dbContext = dbContext; } - public async Task> GetListAsync() + public async Task> GetPageAsync(PageDto request) { - var tenantResult = await _tenantApi.GetTenantsAsync(); - (tenantResult.Code == ApiStateCode.Success).ThrowIfFalse(tenantResult.Msg); - - var tenants = tenantResult.Data; - return tenants; + return await _dbContext.Queryable() + .WhereIF(request.Search.IsPresent(), x => x.Name.Contains(request.Search)) + .Select() + .ToPageListAsync(request); } - public async Task GetCurrentAsync() + public async Task SaveAsync(WerkRequest request) { - var tenant = _currentUser.GetStringTenantId(); - var tenantResult = await _tenantApi.GetTenantsAsync(); - (tenantResult.Code == ApiStateCode.Success).ThrowIfFalse(tenantResult.Msg); + if (!request.Id.HasValue) + { + var entity = request.Adapt(); + entity.Werk = request.Werk; - var tenants = tenantResult.Data; - return tenants.FirstOrDefault(x => x.Code == tenant); + await _dbContext.InsertAsync(entity); + } + else + { + var entity = await _dbContext.Queryable().Where(x => x.Id == request.Id).SingleAsync(); + entity.ThrowIfNull("人事范围不存在,无法更新!"); + + request.Adapt(entity); + + await _dbContext.UpdateAsync(entity); + } } } diff --git a/Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs b/Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs index 845dc6bf..46607582 100644 --- a/Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs +++ b/Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs @@ -1,4 +1,5 @@ using Kurisu.SqlSugar; +using Mapster; using SqlSugar; namespace Dlhis.Entity.Basic.Entity; @@ -9,6 +10,7 @@ public class WerkEntity : SugarBaseEntity /// /// 人事范围 /// + [AdaptIgnore(MemberSide.Destination)] [SugarColumn(UniqueGroupNameList = new[] { "idx_Werk_Werk" })] public string Werk { get; set; }