OrderInfoReposity.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using Edge.Core.Core.database;
  2. using Edge.Core.Domain.FccOrderInfo.Input;
  3. using Edge.Core.Domain.FccOrderInfo.Output;
  4. using Microsoft.EntityFrameworkCore;
  5. namespace FccLite.Web.Repositories.FccOrderInfo
  6. {
  7. public class OrderInfoReposity : IOrderInfoReposity
  8. {
  9. static NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger();
  10. private readonly MysqlDbContext _dbContext;
  11. public OrderInfoReposity(MysqlDbContext mysqlDbContext)
  12. {
  13. _dbContext = mysqlDbContext;
  14. }
  15. /// <summary>
  16. /// 分页查询订单
  17. /// </summary>
  18. /// <param name="orderInfoPageInput"></param>
  19. /// <returns></returns>
  20. public async Task<IEnumerable<OrderInfo>> GetPage(OrderInfoPageInput orderInfoPageInput)
  21. {
  22. Edge.Core.Domain.FccStationInfo.FccStationInfo? fccStationInfo = await _dbContext.FccStationInfos.FirstOrDefaultAsync();
  23. var stationName = fccStationInfo?.Name ?? "";
  24. var query = from qo in _dbContext.FccOrderInfos
  25. join qn in _dbContext.NozzleInfos on qo.NozzleNum equals qn.ExternalNum
  26. join qm in _dbContext.FccMachineInfos on qn.MachineId equals qm.Id
  27. where qo.IsDelete == 0
  28. where string.IsNullOrEmpty(orderInfoPageInput.oilName) || qo.OilName == orderInfoPageInput.oilName
  29. where orderInfoPageInput.nozzleNum == null || qo.NozzleNum == orderInfoPageInput.nozzleNum
  30. where orderInfoPageInput.paymentType == null || qo.PayType == orderInfoPageInput.paymentType
  31. where (orderInfoPageInput.startCheckTime == null || orderInfoPageInput.endCheckTime == null || qo.EndTime == null)
  32. || qo.EndTime >= orderInfoPageInput.startCheckTime && qo.EndTime <= orderInfoPageInput.endCheckTime
  33. where string.IsNullOrEmpty(orderInfoPageInput.phoneNumberOruserName) || qo.UserName == orderInfoPageInput.phoneNumberOruserName || qo.PhoneNumber == orderInfoPageInput.phoneNumberOruserName
  34. orderby qo.AuthorizationTime descending
  35. select new OrderInfo(qo, stationName, qm.Name);
  36. return await query.Skip((orderInfoPageInput.page - 1) * orderInfoPageInput.pageSize).Take(orderInfoPageInput.pageSize).ToListAsync();
  37. }
  38. public async Task<IEnumerable<OrderInfo>> GetOrderFilter(OrderInfoPageInput orderInfoPageInput)
  39. {
  40. Edge.Core.Domain.FccStationInfo.FccStationInfo? fccStationInfo = await _dbContext.FccStationInfos.FirstOrDefaultAsync();
  41. var stationName = fccStationInfo?.Name ?? "";
  42. var query = from qo in _dbContext.FccOrderInfos
  43. join qn in _dbContext.NozzleInfos on qo.NozzleNum equals qn.ExternalNum
  44. join qm in _dbContext.FccMachineInfos on qn.MachineId equals qm.Id
  45. where qo.IsDelete == 0
  46. where string.IsNullOrEmpty(orderInfoPageInput.oilName) || qo.OilName == orderInfoPageInput.oilName
  47. where orderInfoPageInput.nozzleNum == null || qo.NozzleNum == orderInfoPageInput.nozzleNum
  48. where orderInfoPageInput.paymentType == null || qo.PayType == orderInfoPageInput.paymentType
  49. where (orderInfoPageInput.startCheckTime == null || orderInfoPageInput.endCheckTime == null || qo.EndTime == null)
  50. || qo.EndTime >= orderInfoPageInput.startCheckTime && qo.EndTime <= orderInfoPageInput.endCheckTime
  51. where string.IsNullOrEmpty(orderInfoPageInput.phoneNumberOruserName) || qo.UserName == orderInfoPageInput.phoneNumberOruserName || qo.PhoneNumber == orderInfoPageInput.phoneNumberOruserName
  52. orderby qo.AuthorizationTime descending
  53. select new OrderInfo(qo, stationName, qm.Name);
  54. return await query.ToListAsync();
  55. }
  56. }
  57. }