AiOrderVisitApplication.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using Hotline.Orders;
  2. using Hotline.Share.Dtos.Ai;
  3. using SqlSugar;
  4. using XF.Domain.Dependency;
  5. using XF.Domain.Repository;
  6. namespace Hotline.Application.OrderApp
  7. {
  8. public class AiOrderVisitApplication : IAiOrderVisitApplication, IScopeDependency
  9. {
  10. private readonly IRepository<AiOrderVisit> _aiOrderVisitRepository;
  11. private readonly IRepository<AiOrderVisitDetail> _aiOrderVisitDetailRepository;
  12. public AiOrderVisitApplication(IRepository<AiOrderVisit> aiOrderVisitRepository, IRepository<AiOrderVisitDetail> aiOrderVisitDetailRepository)
  13. {
  14. _aiOrderVisitRepository = aiOrderVisitRepository;
  15. _aiOrderVisitDetailRepository = aiOrderVisitDetailRepository;
  16. }
  17. public ISugarQueryable<AiOrderVisit> QuerysAiOrderVisit(AiVisitListDto dto)
  18. {
  19. return _aiOrderVisitRepository.Queryable()
  20. .WhereIF(!string.IsNullOrEmpty(dto.Keyword), x => x.Name.Contains(dto.Keyword))
  21. .WhereIF(dto.AiOrderVisitTaskState != null, x => x.TaskState == dto.AiOrderVisitTaskState)
  22. .WhereIF(dto.StartTime.HasValue, x => x.CreationTime >= dto.StartTime)
  23. .WhereIF(dto.EndTime.HasValue, x => x.CreationTime <= dto.EndTime)
  24. .WhereIF(dto.AiVisitTimeBeginStart.HasValue,x=>x.BeginTime>= dto.AiVisitTimeBeginStart)
  25. .WhereIF(dto.AiVisitTimeBeginEnd.HasValue,x=>x.BeginTime<= dto.AiVisitTimeBeginEnd)
  26. .WhereIF(dto.AiVisitTimeEndStart.HasValue,x=>x.EndTime>= dto.AiVisitTimeEndStart)
  27. .WhereIF(dto.AiVisitTimeEndEnd.HasValue,x=>x.EndTime<= dto.AiVisitTimeEndEnd)
  28. .OrderByDescending(x => x.CreationTime);
  29. }
  30. public ISugarQueryable<AiOrderVisitDetail> QueryAiOrderVisitDetail(AiVisitDetailListDto dto)
  31. {
  32. return _aiOrderVisitDetailRepository.Queryable()
  33. //.Includes(x => x.OrderVisit, x => x.OrderVisitDetails)
  34. .Includes(x => x.Order)
  35. .Where(x => x.AiOrderVisitId == dto.Id)
  36. .WhereIF(dto.AiOrderVisitState.HasValue, x => x.AiOrderVisitState == dto.AiOrderVisitState)
  37. .WhereIF(!string.IsNullOrEmpty(dto.Keyword), x => x.Order.No.Contains(dto.Keyword) || x.Order.Title.Contains(dto.Keyword))
  38. .OrderByDescending(x => x.CreationTime);
  39. }
  40. }
  41. }