fix 订餐分页查询优化
This commit is contained in:
@@ -179,6 +179,14 @@ public class BookingOrderService : BaseOrderService, IBookingOrderService
|
||||
.Where(x => myCodes.Contains(x.BusinessPlaceCode))
|
||||
.WhereIF(request.OrderStatus.HasValue, x => x.OrderStatus == request.OrderStatus)
|
||||
.WhereIF(request.Search.IsPresent(), (x, ga) => x.UserCode == request.Search || ga.Name.Contains(request.Search))
|
||||
.WhereIF(request.BookingPeriod?.Start.HasValue == true && request.BookingPeriod?.End.HasValue == true, x =>
|
||||
SqlFunc.Subqueryable<CanteenOrderDetailEntity>()
|
||||
.Where(p => p.OrderNo == x.No)
|
||||
.Where(p => p.BookingDate >= request.BookingPeriod.Start)
|
||||
.Where(p => p.BookingDate <= request.BookingPeriod.End)
|
||||
.Any()
|
||||
)
|
||||
.WhereIF(request.ShiftTpe.HasValue, x => x.ShiftType == request.ShiftTpe)
|
||||
.Select((x, ga) => new OrderBookingResponse
|
||||
{
|
||||
No = x.No,
|
||||
@@ -189,10 +197,22 @@ public class BookingOrderService : BaseOrderService, IBookingOrderService
|
||||
ShiftType = x.ShiftType,
|
||||
Status = x.OrderStatus,
|
||||
UserCode = x.UserCode,
|
||||
UserName = ga.Name
|
||||
UserName = ga.Name,
|
||||
Source = x.Source,
|
||||
})
|
||||
.ToPageListAsync(request);
|
||||
|
||||
var nos = page.Data.Select(x => x.No).ToList();
|
||||
var details = await DbContext.Queryable<CanteenOrderDetailEntity>()
|
||||
.Where(x => nos.Contains(x.OrderNo))
|
||||
.Select(x => new { x.OrderNo, x.BookingDate }).
|
||||
ToListAsync();
|
||||
|
||||
page.Data.ForEach(x =>
|
||||
{
|
||||
x.BookingDate = details.FirstOrDefault(item => item.OrderNo == x.No).BookingDate;
|
||||
});
|
||||
|
||||
return page;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user