fix 优化查询

This commit is contained in:
2024-03-21 16:22:47 +08:00
parent 212a1fa073
commit 2ca8f2db49
4 changed files with 45 additions and 0 deletions

View File

@@ -1,6 +1,7 @@
using Dlhis.Basic.Dishes.Request; using Dlhis.Basic.Dishes.Request;
using Dlhis.Basic.Dishes.Response; using Dlhis.Basic.Dishes.Response;
using Dlhis.Basic.Dishes.Services; using Dlhis.Basic.Dishes.Services;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
@@ -31,6 +32,19 @@ public class DishesCategoriesController : ControllerBase
return await _dishesCategoryService.TreeAsync(); return await _dishesCategoryService.TreeAsync();
} }
/// <summary>
///
/// </summary>
/// <param name="businessPlaceCode"></param>
/// <returns></returns>
[HttpGet("tree-all")]
[IgnoreTenant]
public async Task<List<DishesCategoryTreeResponse>> TreeAllAsync(Guid businessPlaceCode)
{
return await _dishesCategoryService.TreeAllAsync(businessPlaceCode);
}
/// <summary> /// <summary>
/// 保存分类 /// 保存分类
/// </summary> /// </summary>

View File

@@ -60,6 +60,7 @@ public class DishesMenusController : ControllerBase
/// <param name="categoryCode"></param> /// <param name="categoryCode"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("dishes-selections")] [HttpGet("dishes-selections")]
[IgnoreTenant]
public async Task<List<DishesDetailResponse>> GetDishesUnderCurrentMenuAsync(Guid businessPlaceCode, public async Task<List<DishesDetailResponse>> GetDishesUnderCurrentMenuAsync(Guid businessPlaceCode,
DateTime date, DateTime date,
ShiftEnumType? shiftType, ShiftEnumType? shiftType,

View File

@@ -7,5 +7,9 @@ public interface IDishesCategoryService : IScopeDependency
{ {
Task<List<DishesCategoryTreeResponse>> TreeAsync(); Task<List<DishesCategoryTreeResponse>> TreeAsync();
Task<List<DishesCategoryTreeResponse>> TreeAllAsync(Guid businessPlaceCode);
Task SaveAsync(DishesCategorySaveRequest request); Task SaveAsync(DishesCategorySaveRequest request);
} }

View File

@@ -46,6 +46,32 @@ public class DishesCategoryService : IDishesCategoryService
return tops; return tops;
} }
public async Task<List<DishesCategoryTreeResponse>> TreeAllAsync(Guid businessPlaceCode)
{
var categories = await _dbContext.Queryable<DishesCategoryEntity>()
.LeftJoin<BusinessPlaceEntity>((x, bplace) => x.BusinessPlaceCode == bplace.Code)
.Where(x => x.BusinessPlaceCode == businessPlaceCode)
.Select((x, bplace) => new DishesCategoryTreeResponse
{
BusinessPlaceCode = bplace.Code,
Code = x.Code,
Name = x.Name,
PCode = x.PCode,
})
.ToListAsync();
var tops = categories.Where(x => !x.PCode.HasValue).ToList();
tops.ForEach(x =>
{
RecursionGetNext(x, categories);
});
return tops;
}
public async Task SaveAsync(DishesCategorySaveRequest request) public async Task SaveAsync(DishesCategorySaveRequest request)
{ {
await CheckBusinessPlacePermissionAsync(request.BusinessPlaceCode); await CheckBusinessPlacePermissionAsync(request.BusinessPlaceCode);