From 97fb157c9f6d33d135b0a45c67187f6bf8a852aa Mon Sep 17 00:00:00 2001 From: liguoyang Date: Fri, 15 Mar 2024 20:49:44 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E8=90=A5=E4=B8=9A=E7=82=B9=E6=9D=83?= =?UTF-8?q?=E9=99=90=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IBusinessPlacePermissionsApi.cs | 22 ++--- .../BusinessPlacePermissionsController.cs | 81 ++++++++++--------- .../BusinessPlacePermissionPageRequest.cs | 7 ++ .../SaveBusinessPlacePermissionRequest.cs | 24 +++--- .../BusinessPlacePermissionPageResponse.cs | 26 ++++++ .../IBusinessPlacePermissionsService.cs | 15 ++-- .../BusinessPlacePermissionsService.cs | 73 +++++++++-------- .../BusinessPlaceManagerRelationshipEntity.cs | 2 + 8 files changed, 151 insertions(+), 99 deletions(-) create mode 100644 Src/Dlhis.Basic/BusinessPlace/Request/BusinessPlacePermissionPageRequest.cs create mode 100644 Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlacePermissionPageResponse.cs diff --git a/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs b/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs index 64a43edd..6d7e32c4 100644 --- a/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs +++ b/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs @@ -1,18 +1,12 @@ -using Dlhis.Basic.Api.Request; -using Kurisu.Core.Result; +using Kurisu.Core.Result; using Kurisu.RemoteCall.Attributes; -namespace Dlhis.Basic.Api -{ - [EnableRemoteClient(Name = "basic-service", BaseUrl = "${InternalRequest:BasicRequestUrl}")] - public interface IBusinessPlacePermissionsApi - { - [Auth] - [Get("/api/businessplacepermissions/getPlaces")] - Task>> GetPlaceByUserIdAsync(); +namespace Dlhis.Basic.Api; - [Auth] - [Post("/api/businessplacepermissions/savePlace")] - Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request); - } +[EnableRemoteClient(Name = "basic-service", BaseUrl = "${InternalRequest:BasicRequestUrl}")] +public interface IBusinessPlacePermissionsApi +{ + [Auth] + [Get("/api/businessplacepermissions/my")] + Task>> GetMyBussinessPlacesAsync(); } diff --git a/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs index 05c8003e..6a1e5913 100644 --- a/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs +++ b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacePermissionsController.cs @@ -1,48 +1,57 @@ using Dlhis.Basic.BusinessPlace.Request; +using Dlhis.Basic.BusinessPlace.Response; using Dlhis.Basic.BusinessPlace.Services; +using Kurisu.Core.DataAccess.Dto; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Org.BouncyCastle.Asn1.Ocsp; -namespace Dlhis.Basic.BusinessPlace.Controllers +namespace Dlhis.Basic.BusinessPlace.Controllers; + +/// +/// 营业点管理 +/// +[Authorize(Roles = "admin")] +[Route("api/[controller]")] +[ApiController] +public class BusinessPlacePermissionsController { - /// - /// 营业点管理 - /// - [Authorize] - [Route("api/[controller]")] - [ApiController] - public class BusinessPlacePermissionsController + private readonly IBusinessPlacePermissionsService _businessPlacePermissionsService; + + public BusinessPlacePermissionsController(IBusinessPlacePermissionsService businessPlacePermissionsService) { - private readonly IBusinessPlacePermissionsService _businessPlacePermissionsService; + _businessPlacePermissionsService = businessPlacePermissionsService; + } - public BusinessPlacePermissionsController(IBusinessPlacePermissionsService businessPlacePermissionsService) - { - _businessPlacePermissionsService = businessPlacePermissionsService; - } + /// + /// 分页 + /// + /// + /// + [HttpGet("page")] + public async Task> GetPageAsync([FromQuery] BusinessPlacePermissionPageRequest request) + { + return await _businessPlacePermissionsService.GetPageAsync(request); + } + + /// + /// 获取我的营业点 + /// + /// + [HttpGet("my")] + public async Task> GetMy() + { + return await _businessPlacePermissionsService.GetMyAsync(); + } - /// - /// 根据用户获取管理点 - /// - /// - /// - [HttpGet("getPlaces")] - public async Task> GetPlaceByUserIdAsync() - { - return await _businessPlacePermissionsService.GetPlaceByUserIdAsync(); - } - - - /// - /// 保存营业点 - /// - /// - /// - [HttpPost("savePlace")] - public async Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request) - { - await _businessPlacePermissionsService.SaveBusinessPlacePermissionAsync(request); - } + /// + /// 保存营业点 + /// + /// + /// + [HttpPost("save")] + public async Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request) + { + await _businessPlacePermissionsService.SaveBusinessPlacePermissionAsync(request); } } diff --git a/Src/Dlhis.Basic/BusinessPlace/Request/BusinessPlacePermissionPageRequest.cs b/Src/Dlhis.Basic/BusinessPlace/Request/BusinessPlacePermissionPageRequest.cs new file mode 100644 index 00000000..4efbd299 --- /dev/null +++ b/Src/Dlhis.Basic/BusinessPlace/Request/BusinessPlacePermissionPageRequest.cs @@ -0,0 +1,7 @@ +using Kurisu.Core.DataAccess.Dto; + +namespace Dlhis.Basic.BusinessPlace.Request; + +public class BusinessPlacePermissionPageRequest : PageDto +{ +} diff --git a/Src/Dlhis.Basic/BusinessPlace/Request/SaveBusinessPlacePermissionRequest.cs b/Src/Dlhis.Basic/BusinessPlace/Request/SaveBusinessPlacePermissionRequest.cs index d0ab51f1..744ab2da 100644 --- a/Src/Dlhis.Basic/BusinessPlace/Request/SaveBusinessPlacePermissionRequest.cs +++ b/Src/Dlhis.Basic/BusinessPlace/Request/SaveBusinessPlacePermissionRequest.cs @@ -1,14 +1,18 @@ using SqlSugar; -namespace Dlhis.Basic.BusinessPlace.Request -{ - public class SaveBusinessPlacePermissionRequest - { - public long? Id { get; set; } +namespace Dlhis.Basic.BusinessPlace.Request; - /// - /// 营业点 - /// - public Guid BusinessPlaceCode { get; set; } - } +public class SaveBusinessPlacePermissionRequest +{ + public long? Id { get; set; } + + /// + /// 管理人员userId + /// + public int UserId { get; set; } + + /// + /// 营业点 + /// + public Guid BusinessPlaceCode { get; set; } } diff --git a/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlacePermissionPageResponse.cs b/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlacePermissionPageResponse.cs new file mode 100644 index 00000000..cac2e41e --- /dev/null +++ b/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlacePermissionPageResponse.cs @@ -0,0 +1,26 @@ +namespace Dlhis.Basic.BusinessPlace.Response; + +public class BusinessPlacePermissionPageResponse +{ + public long Id { get; set; } + + /// + /// 用户id + /// + public string UserId { get; set; } + + /// + /// 用户name + /// + public string UserName { get; set; } + + /// + /// 营业点code + /// + public Guid BusinessPlaceCode { get; set; } + + /// + /// 营业点名称 + /// + public string BusinessPlaceName { get; set; } +} diff --git a/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlacePermissionsService.cs b/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlacePermissionsService.cs index 7268363f..ee6980f4 100644 --- a/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlacePermissionsService.cs +++ b/Src/Dlhis.Basic/BusinessPlace/Services/IBusinessPlacePermissionsService.cs @@ -1,11 +1,14 @@ using Dlhis.Basic.BusinessPlace.Request; +using Dlhis.Basic.BusinessPlace.Response; +using Kurisu.Core.DataAccess.Dto; -namespace Dlhis.Basic.BusinessPlace.Services +namespace Dlhis.Basic.BusinessPlace.Services; + +public interface IBusinessPlacePermissionsService : IScopeDependency { - public interface IBusinessPlacePermissionsService : IScopeDependency - { - Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request); + Task> GetPageAsync(BusinessPlacePermissionPageRequest request); - Task> GetPlaceByUserIdAsync(); - } + Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request); + + Task> GetMyAsync(); } diff --git a/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs b/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs index 52161922..87f9f422 100644 --- a/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs +++ b/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlacePermissionsService.cs @@ -1,48 +1,55 @@ using Dlhis.Basic.BusinessPlace.Request; +using Dlhis.Basic.BusinessPlace.Response; using Dlhis.Entity.Basic.Entity; +using Kurisu.Core.DataAccess.Dto; using Kurisu.Core.User.Abstractions; using Kurisu.SqlSugar.Services; using Mapster; -namespace Dlhis.Basic.BusinessPlace.Services.Implements +namespace Dlhis.Basic.BusinessPlace.Services.Implements; + +public class BusinessPlacePermissionsService : IBusinessPlacePermissionsService { - public class BusinessPlacePermissionsService : IBusinessPlacePermissionsService + private readonly IDbContext _dbContext; + private readonly ICurrentUser _currentUser; + + public BusinessPlacePermissionsService(IDbContext dbContext) { - private readonly IDbContext _dbContext; - private readonly IBusinessPlaceService _businessPlaceService; - private readonly ICurrentUser _currentUser; + _dbContext = dbContext; + } - public BusinessPlacePermissionsService(IDbContext dbContext, IBusinessPlaceService businessPlaceService) + public async Task> GetPageAsync(BusinessPlacePermissionPageRequest request) + { + throw new NotImplementedException(); + } + + public async Task> GetMyAsync() + { + var userId = _currentUser.GetIntSubjectId(); + + return await _dbContext.Queryable() + .Where(x => x.ManagerUserId == userId) + .Select(x => x.BusinessPlaceCode) + .Distinct() + .ToListAsync(); + } + + public async Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request) + { + var userId = _currentUser.GetIntSubjectId(); + if (request.Id.HasValue) { - _dbContext = dbContext; - _businessPlaceService = businessPlaceService; + var entity = await _dbContext.Queryable() + .Where(x => x.Id == request.Id).FirstAsync(); + + request.Adapt(entity); + await _dbContext.UpdateAsync(entity); } - - public async Task> GetPlaceByUserIdAsync() + else { - var userId = _currentUser.GetIntSubjectId(); - return await _dbContext.Queryable() - .Where(x => x.ManagerUserId == userId) - .Select(x => x.BusinessPlaceCode) - .ToListAsync(); - } - - public async Task SaveBusinessPlacePermissionAsync(SaveBusinessPlacePermissionRequest request) - { - var userId = _currentUser.GetIntSubjectId(); - if (request.Id.HasValue) - { - var entity =await _dbContext.Queryable() - .Where(x => x.Id == request.Id).FirstAsync(); - request.Adapt(entity); - await _dbContext.UpdateAsync(entity); - } - else - { - var entity = request.Adapt(); - entity.ManagerUserId = userId; - await _dbContext.InsertAsync(entity); - } + var entity = request.Adapt(); + entity.ManagerUserId = userId; + await _dbContext.InsertAsync(entity); } } } diff --git a/Src/Dlhis.Entity/Basic/Entity/BusinessPlaceManagerRelationshipEntity.cs b/Src/Dlhis.Entity/Basic/Entity/BusinessPlaceManagerRelationshipEntity.cs index 8c9d1b07..44fae7a8 100644 --- a/Src/Dlhis.Entity/Basic/Entity/BusinessPlaceManagerRelationshipEntity.cs +++ b/Src/Dlhis.Entity/Basic/Entity/BusinessPlaceManagerRelationshipEntity.cs @@ -1,4 +1,5 @@ using Kurisu.SqlSugar; +using Mapster; using SqlSugar; namespace Dlhis.Entity.Basic.Entity; @@ -12,6 +13,7 @@ public class BusinessPlaceManagerRelationshipEntity : SugarBaseEntity /// /// 管理人员 /// + [AdaptIgnore(MemberSide.Destination)] [SugarColumn(ColumnDescription = "管理人员", IsNullable = false)] public int ManagerUserId { get; set; }