diff --git a/Src/Dlhis.Basic/Dishes/Controller/DishesCategoriesController.cs b/Src/Dlhis.Basic/Dishes/Controller/DishesCategoriesController.cs index 12e48ba9..fd642e4c 100644 --- a/Src/Dlhis.Basic/Dishes/Controller/DishesCategoriesController.cs +++ b/Src/Dlhis.Basic/Dishes/Controller/DishesCategoriesController.cs @@ -25,16 +25,17 @@ public class DishesCategoriesController : ControllerBase /// /// 获取分类树 /// + /// /// [HttpGet("tree")] - public async Task> TreeAsync() + public async Task> TreeAsync(Guid businessPlaceCode) { - return await _dishesCategoryService.TreeAsync(); + return await _dishesCategoryService.TreeAsync(businessPlaceCode); } /// - /// + /// 获取分类树(无权限) /// /// /// diff --git a/Src/Dlhis.Basic/Dishes/Services/IDishesCategoryService.cs b/Src/Dlhis.Basic/Dishes/Services/IDishesCategoryService.cs index 637c93ed..09d738d8 100644 --- a/Src/Dlhis.Basic/Dishes/Services/IDishesCategoryService.cs +++ b/Src/Dlhis.Basic/Dishes/Services/IDishesCategoryService.cs @@ -5,7 +5,7 @@ namespace Dlhis.Basic.Dishes.Services; public interface IDishesCategoryService : IScopeDependency { - Task> TreeAsync(); + Task> TreeAsync(Guid businessPlaceCode); Task> TreeAllAsync(Guid businessPlaceCode); diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesCategoryService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesCategoryService.cs index 528c33d6..9a36e161 100644 --- a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesCategoryService.cs +++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesCategoryService.cs @@ -20,9 +20,10 @@ public class DishesCategoryService : IDishesCategoryService _businessPlacePermissionsService = businessPlacePermissionsService; } - public async Task> TreeAsync() + public async Task> TreeAsync(Guid businessPlaceCode) { var mybCodes = await GetMyBusinessPlaceCodesAsync(); + mybCodes = mybCodes.Where(x => x == businessPlaceCode).ToList(); var categories = await _dbContext.Queryable() .LeftJoin((x, bplace) => x.BusinessPlaceCode == bplace.Code) diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs index d3fbf30c..7810608e 100644 --- a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs +++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesService.cs @@ -1,4 +1,5 @@ -using Dlhis.Basic.Dishes.Request; +using Dlhis.Basic.BusinessPlace.Services; +using Dlhis.Basic.Dishes.Request; using Dlhis.Basic.Dishes.Response; using Dlhis.Entity.Basic.Entity; using Dlhis.Entity.Canteen.Entities; @@ -16,21 +17,24 @@ public class DishesService : IDishesService { private readonly IDbContext _dbContext; private readonly ICurrentUser _currentUser; + private readonly IBusinessPlacePermissionsService _businessPlacePermissionsService; - public DishesService(IDbContext dbContext, ICurrentUser currentUser) + public DishesService(IDbContext dbContext, ICurrentUser currentUser, IBusinessPlacePermissionsService businessPlacePermissionsService) { _dbContext = dbContext; _currentUser = currentUser; + _businessPlacePermissionsService = businessPlacePermissionsService; } public async Task> GetDishesPageAsync(DishesPageRequest request) { - //todo 营业点权限 + var myCodes = await GetMyBusinessPlaceCodesAsync(); return await _dbContext.Queryable() .LeftJoin((x, category) => x.CategoryCode == category.Code) .WhereIF(request.Search.IsPresent(), x => x.CustomCode == request.Search || x.Name.Contains(request.Search)) .WhereIF(request.BusinessPlaceCodes.IsPresent(), x => request.BusinessPlaceCodes.Contains(x.BusinessPlaceCode)) + .Where(x => myCodes.Contains(x.BusinessPlaceCode)) .OrderBy(x => x.CreateTime, SqlSugar.OrderByType.Desc) .Select((x, category) => new DishesResponse { @@ -109,5 +113,17 @@ public class DishesService : IDishesService .Select() .SingleAsync(); } + + + + + /// + /// 获取我的营业点 + /// + /// + private async Task> GetMyBusinessPlaceCodesAsync() + { + return (await _businessPlacePermissionsService.GetMyAsync()).Select(x => x.Code).ToList(); + } }