From a5dcab1d072a3c5f6c3d1c84dab91237e28c4d70 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Thu, 21 Mar 2024 11:16:23 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E8=90=A5=E4=B8=9A=E7=82=B9=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/DishesMenusController.cs | 2 +- .../Controllers/BusinessPlacesController.cs | 1 + .../Implements/BusinessPlaceService.cs | 20 +++++++++++++++++-- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs b/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs index a5537dd4..de956b28 100644 --- a/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs +++ b/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs @@ -57,7 +57,7 @@ public class DishesMenusController : ControllerBase /// /// /// - /// + /// /// [HttpGet("dishes-selections")] public async Task> GetDishesUnderCurrentMenuAsync(Guid businessPlaceCode, diff --git a/Src/Dlhis.Basic/Places/Controllers/BusinessPlacesController.cs b/Src/Dlhis.Basic/Places/Controllers/BusinessPlacesController.cs index 249b3774..46a23303 100644 --- a/Src/Dlhis.Basic/Places/Controllers/BusinessPlacesController.cs +++ b/Src/Dlhis.Basic/Places/Controllers/BusinessPlacesController.cs @@ -64,6 +64,7 @@ public class BusinessPlacesController : ControllerBase /// /// /// + [Authorize(Roles = "admin,tenant-admin")] [HttpPost("save")] public async Task SaveAsync(BusinessPlaceSaveRequest request) { diff --git a/Src/Dlhis.Basic/Places/Services/Implements/BusinessPlaceService.cs b/Src/Dlhis.Basic/Places/Services/Implements/BusinessPlaceService.cs index 35a72463..23508ed8 100644 --- a/Src/Dlhis.Basic/Places/Services/Implements/BusinessPlaceService.cs +++ b/Src/Dlhis.Basic/Places/Services/Implements/BusinessPlaceService.cs @@ -13,15 +13,18 @@ namespace Dlhis.Basic.BusinessPlace.Services.Implements; public class BusinessPlaceService : IBusinessPlaceService { private readonly IDbContext _dbContext; + private readonly IBusinessPlacePermissionsService _businessPlacePermissionsService; - public BusinessPlaceService(IDbContext dbContext) + public BusinessPlaceService(IDbContext dbContext, IBusinessPlacePermissionsService businessPlacePermissionsService) { _dbContext = dbContext; + _businessPlacePermissionsService = businessPlacePermissionsService; } - public async Task> GetPageAsync(BusinessPlacePageRequest request) { + var myCodes = await GetMyBusinessPlaceCodesAsync(); + var page = await _dbContext.Queryable() .LeftJoin((x, ps) => x.Code == ps.PlaceCode) .LeftJoin((x, ps, s) => s.Code == ps.ShiftCode) @@ -30,6 +33,7 @@ public class BusinessPlaceService : IBusinessPlaceService .WhereIF(request.Catalog.HasValue, x => x.Catalog == request.Catalog) .WhereIF(request.Status.HasValue, x => x.Status == request.Status) .WhereIF(request.Source.HasValue, x => x.Source == request.Source) + .Where(x => myCodes.Contains(x.Code)) .Select((x, ps, s) => new BusinessPlaceResponse { Id = x.Id, @@ -51,12 +55,15 @@ public class BusinessPlaceService : IBusinessPlaceService public async Task> GetOpenedListAsync(Guid? placeCode = null, string tenant = null) { + var myCodes = await GetMyBusinessPlaceCodesAsync(); + var list = await _dbContext.Queryable() .LeftJoin((x, ps) => x.Code == ps.PlaceCode) .LeftJoin((x, ps, s) => s.Code == ps.ShiftCode) .Where(x => x.Status == CanteenBusinessPlaceStatusEnumType.Opened) .WhereIF(placeCode.HasValue, x => x.Code == placeCode) .WhereIF(tenant.IsPresent(), x => x.TenantId == tenant) + .Where(x => myCodes.Contains(x.Code)) .Select((x, ps, s) => new BusinessPlaceListResponse { Id = x.Id, @@ -151,4 +158,13 @@ public class BusinessPlaceService : IBusinessPlaceService existsSameCustomCode.ThrowIfTrue($"自定义手工号[{request.CustomCode}]存在重复,请检查."); } + + /// + /// 获取我的营业点 + /// + /// + private async Task> GetMyBusinessPlaceCodesAsync() + { + return (await _businessPlacePermissionsService.GetMyAsync()).Select(x => x.Code).ToList(); + } }