|
@@ -7,6 +7,7 @@ using Hotline.Identity.Roles;
|
|
|
using Hotline.Orders;
|
|
|
using Hotline.Repository.SqlSugar.DataPermissions;
|
|
|
using Hotline.Repository.SqlSugar.Extensions;
|
|
|
+using Hotline.Settings;
|
|
|
using Hotline.Settings.TimeLimits;
|
|
|
using Hotline.Share.Consts;
|
|
|
using Hotline.Share.Dtos.Order;
|
|
@@ -14,6 +15,7 @@ using Hotline.Share.Enums.Order;
|
|
|
using SqlSugar;
|
|
|
using XF.Domain.Dependency;
|
|
|
using XF.Domain.Exceptions;
|
|
|
+using XF.Domain.Repository;
|
|
|
|
|
|
namespace Hotline.Repository.SqlSugar.Orders
|
|
|
{
|
|
@@ -22,7 +24,10 @@ namespace Hotline.Repository.SqlSugar.Orders
|
|
|
private readonly IDataPermissionFilterBuilder _dataPermissionFilterBuilder;
|
|
|
private readonly ITimeLimitDomainService _timeLimitDomainService;
|
|
|
|
|
|
- public OrderRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, ITimeLimitDomainService timeLimitDomainService) : base(uow, dataPermissionFilterBuilder)
|
|
|
+ public OrderRepository(ISugarUnitOfWork<HotlineDbContext> uow,
|
|
|
+ IDataPermissionFilterBuilder dataPermissionFilterBuilder,
|
|
|
+ ITimeLimitDomainService timeLimitDomainService
|
|
|
+ ) : base(uow, dataPermissionFilterBuilder)
|
|
|
{
|
|
|
_dataPermissionFilterBuilder = dataPermissionFilterBuilder;
|
|
|
_timeLimitDomainService = timeLimitDomainService;
|
|
@@ -88,25 +93,49 @@ namespace Hotline.Repository.SqlSugar.Orders
|
|
|
await Db.Deleteable(orderReport).ExecuteCommandAsync();
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 即将超期列表
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <param name="AboutToExpireNum"></param>
|
|
|
+ /// <param name="cancellationToken"></param>
|
|
|
+ /// <returns></returns>
|
|
|
public async Task<List<AboutToExpireDto>> GetAboutToExpireAsync(AboutToExpireListDto dto,int AboutToExpireNum, CancellationToken cancellationToken)
|
|
|
{
|
|
|
- DateTime stTime= DateTime.Now;
|
|
|
- //判断是否在工作日
|
|
|
- if (_timeLimitDomainService.IsWorkDay(stTime))
|
|
|
- {
|
|
|
-
|
|
|
- }
|
|
|
- // var oders = await Db.Queryable<Order>()
|
|
|
- // .WhereIF(dto.IsProvince.HasValue, x => x.IsProvince == dto.IsProvince)
|
|
|
- // .WhereIF(!string.IsNullOrEmpty(dto.No), x => x.No == dto.No)
|
|
|
- // .WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.Title.Contains(dto.Title!))
|
|
|
- // .Select(x => new AboutToExpireDto()
|
|
|
- // {
|
|
|
- // IntervalText = _timeLimitDomainService.CalcTimeInterval(DateTime.Now,x.)
|
|
|
- //}, true)
|
|
|
+ DateTime stTime = _timeLimitDomainService.WorkDay(DateTime.Now);
|
|
|
+ var oders = await Db.Queryable<Order>()
|
|
|
+ .WhereIF(dto.IsProvince.HasValue, x => x.IsProvince == dto.IsProvince)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.No), x => x.No == dto.No)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.Title.Contains(dto.Title!))
|
|
|
+ .Where(x=> x.ExpiredTime != null && stTime <= x.ExpiredTime.Value)
|
|
|
+ .Where(x => x.ExpiredTime != null && (x.ExpiredTime.Value - stTime).TotalHours <= AboutToExpireNum)
|
|
|
+ .Select(x => new AboutToExpireDto()
|
|
|
+ {
|
|
|
+ IntervalText = _timeLimitDomainService.CalcTimeInterval(stTime, x.ExpiredTime.Value, false)
|
|
|
+ }, true).ToListAsync();
|
|
|
+ return oders;
|
|
|
+ }
|
|
|
|
|
|
- return new List<AboutToExpireDto>();
|
|
|
+ /// <summary>
|
|
|
+ /// 已超期列表
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <param name="cancellationToken"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public async Task<List<AboutToExpireDto>> GetToExpireAsync(AboutToExpireListDto dto, CancellationToken cancellationToken)
|
|
|
+ {
|
|
|
+ DateTime stTime = _timeLimitDomainService.WorkDay(DateTime.Now);
|
|
|
+ var oders = await Db.Queryable<Order>()
|
|
|
+ .WhereIF(dto.IsProvince.HasValue, x => x.IsProvince == dto.IsProvince)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.No), x => x.No == dto.No)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.Title.Contains(dto.Title!))
|
|
|
+ .Where(x => x.ExpiredTime != null && stTime > x.ExpiredTime.Value)
|
|
|
+ .Select(x => new AboutToExpireDto()
|
|
|
+ {
|
|
|
+ IntervalText = _timeLimitDomainService.CalcTimeInterval(stTime, x.ExpiredTime.Value, false)
|
|
|
+ }, true).ToListAsync();
|
|
|
+ return oders;
|
|
|
}
|
|
|
|
|
|
- }
|
|
|
+ }
|
|
|
}
|