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();
+ }
}