using Edge.Core.Core.database; using Edge.Core.Domain.FccOrderInfo.Input; using Edge.Core.Domain.FccOrderInfo.Output; using Microsoft.EntityFrameworkCore; namespace FccLite.Web.Repositories.FccOrderInfo { public class OrderInfoReposity : IOrderInfoReposity { static NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger(); private readonly MysqlDbContext _dbContext; public OrderInfoReposity(MysqlDbContext mysqlDbContext) { _dbContext = mysqlDbContext; } /// /// 分页查询订单 /// /// /// public async Task> GetPage(OrderInfoPageInput orderInfoPageInput) { Edge.Core.Domain.FccStationInfo.FccStationInfo? fccStationInfo = await _dbContext.FccStationInfos.FirstOrDefaultAsync(); var stationName = fccStationInfo?.Name ?? ""; var query = from qo in _dbContext.FccOrderInfos join qn in _dbContext.NozzleInfos on qo.NozzleNum equals qn.ExternalNum join qm in _dbContext.FccMachineInfos on qn.MachineId equals qm.Id where qo.IsDelete == 0 where string.IsNullOrEmpty(orderInfoPageInput.oilName) || qo.OilName == orderInfoPageInput.oilName where orderInfoPageInput.nozzleNum == null || qo.NozzleNum == orderInfoPageInput.nozzleNum where orderInfoPageInput.paymentType == null || qo.PayType == orderInfoPageInput.paymentType where (orderInfoPageInput.startCheckTime == null || orderInfoPageInput.endCheckTime == null || qo.EndTime == null) || qo.EndTime >= orderInfoPageInput.startCheckTime && qo.EndTime <= orderInfoPageInput.endCheckTime where string.IsNullOrEmpty(orderInfoPageInput.phoneNumberOruserName) || qo.UserName == orderInfoPageInput.phoneNumberOruserName || qo.PhoneNumber == orderInfoPageInput.phoneNumberOruserName orderby qo.AuthorizationTime descending select new OrderInfo(qo, stationName, qm.Name); return await query.Skip((orderInfoPageInput.page - 1) * orderInfoPageInput.pageSize).Take(orderInfoPageInput.pageSize).ToListAsync(); } public async Task> GetOrderFilter(OrderInfoPageInput orderInfoPageInput) { Edge.Core.Domain.FccStationInfo.FccStationInfo? fccStationInfo = await _dbContext.FccStationInfos.FirstOrDefaultAsync(); var stationName = fccStationInfo?.Name ?? ""; var query = from qo in _dbContext.FccOrderInfos join qn in _dbContext.NozzleInfos on qo.NozzleNum equals qn.ExternalNum join qm in _dbContext.FccMachineInfos on qn.MachineId equals qm.Id where qo.IsDelete == 0 where string.IsNullOrEmpty(orderInfoPageInput.oilName) || qo.OilName == orderInfoPageInput.oilName where orderInfoPageInput.nozzleNum == null || qo.NozzleNum == orderInfoPageInput.nozzleNum where orderInfoPageInput.paymentType == null || qo.PayType == orderInfoPageInput.paymentType where (orderInfoPageInput.startCheckTime == null || orderInfoPageInput.endCheckTime == null || qo.EndTime == null) || qo.EndTime >= orderInfoPageInput.startCheckTime && qo.EndTime <= orderInfoPageInput.endCheckTime where string.IsNullOrEmpty(orderInfoPageInput.phoneNumberOruserName) || qo.UserName == orderInfoPageInput.phoneNumberOruserName || qo.PhoneNumber == orderInfoPageInput.phoneNumberOruserName orderby qo.AuthorizationTime descending select new OrderInfo(qo, stationName, qm.Name); return await query.ToListAsync(); } } }