From aecb488045fac3ad1b292f7a3cc19e21fa555523 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=86=9B?= <2357729423@qq.com> Date: Mon, 22 Apr 2024 14:14:45 +0800 Subject: [PATCH 1/3] =?UTF-8?q?change=EF=BC=9A=E8=BD=A8=E8=BF=B9=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E6=9C=80=E7=9F=ADcd=2060min?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/TrackPull/TrackPullService.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/SJZY.Track.Application/Services/TrackPull/TrackPullService.cs b/src/SJZY.Track.Application/Services/TrackPull/TrackPullService.cs index d23937e9..cd027698 100644 --- a/src/SJZY.Track.Application/Services/TrackPull/TrackPullService.cs +++ b/src/SJZY.Track.Application/Services/TrackPull/TrackPullService.cs @@ -86,6 +86,8 @@ public class TrackPullService : ApplicationService [HttpPost("Edit")] public async Task EditAsync([FromBody] EditTrackPullConfigInput input) { + if (input.PullInterval < 60) input.PullInterval = 60; + if (input.Options != OptionTypeNoNull.删除) { Expression> isAnyExp = x => From d95bcb70c029421e5ec65c9a81090fcac0305f8b Mon Sep 17 00:00:00 2001 From: moyongzhen <2534173414@qq.com> Date: Mon, 22 Apr 2024 14:42:40 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix=EF=BC=9A=E8=BD=A8=E8=BF=B9=E6=A0=87?= =?UTF-8?q?=E8=AE=B0=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?code=E6=A8=A1=E7=B3=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dtos/TrackFlags/GetTrackFlagListDto.cs | 10 +++++----- .../Dtos/TrackFlags/GetPageTrackFlagVO.cs | 8 ++++---- .../Repositories/TrackFlagRepository.cs | 3 ++- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/SJZY.Track.Application.Contract/Dtos/TrackFlags/GetTrackFlagListDto.cs b/src/SJZY.Track.Application.Contract/Dtos/TrackFlags/GetTrackFlagListDto.cs index 3964caea..505536e1 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/TrackFlags/GetTrackFlagListDto.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/TrackFlags/GetTrackFlagListDto.cs @@ -58,11 +58,11 @@ /// /// 选中的轨迹标记id /// - public List? SelectIds { get; set; } + public List? SelectIds { get; set; } - ///// - ///// 关键字 - ///// - //public string Keywords { get; set; } + /// + /// 关键字 + /// + public string? Keywords { get; set; } } } \ No newline at end of file diff --git a/src/SJZY.Track.Domain/Dtos/TrackFlags/GetPageTrackFlagVO.cs b/src/SJZY.Track.Domain/Dtos/TrackFlags/GetPageTrackFlagVO.cs index adbf1a5d..f838b37d 100644 --- a/src/SJZY.Track.Domain/Dtos/TrackFlags/GetPageTrackFlagVO.cs +++ b/src/SJZY.Track.Domain/Dtos/TrackFlags/GetPageTrackFlagVO.cs @@ -18,10 +18,10 @@ namespace SJZY.Track.Domain.Dtos.TrackFlags /// public List? SelectIds { get; set; } - ///// - ///// 关键字 - ///// - //public string Keywords { get; set; } + /// + /// 关键字 + /// + public string? Keywords { get; set; } } public class GetTrackFlagListVO diff --git a/src/SJZY.Track.Repository/Repositories/TrackFlagRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackFlagRepository.cs index d2227924..ed92d283 100644 --- a/src/SJZY.Track.Repository/Repositories/TrackFlagRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/TrackFlagRepository.cs @@ -46,8 +46,9 @@ public class TrackFlagRepository : BasicRepository, ITrackFlagR .LeftJoin((a, b, c) => a.CreateUserId == c.Id && c.IsDeleted == false) .LeftJoin((a, b, c, d) => a.UpdateUserId == d.Id && d.IsDeleted == false) .WhereIF(input.SubSystemId > 0, (a, b, c, d) => a.SubSystemId == input.SubSystemId) + .WhereIF(!input.Keywords.IsNullOrWhiteSpace(), (a, b, c, d) => SqlFunc.Contains(a.Code, input.Keywords)) .OrderByIF(input.SelectIds.IsNullOrEmpty(), (a, b, c, d) => a.CreateTime, OrderByType.Desc) - .OrderByIF(!input.SelectIds.IsNullOrEmpty(), (a, b, c, d) => SqlFunc.IIF(input.SelectIds.Contains(a.Id), SqlFunc.DateAdd(SqlFunc.GetDate(), 1), a.CreateTime), OrderByType.Desc) + .OrderByIF(!input.SelectIds.IsNullOrEmpty(), (a, b, c, d) => SqlFunc.IIF(input.SelectIds!.Contains(a.Id), SqlFunc.DateAdd(SqlFunc.GetDate(), 1), a.CreateTime), OrderByType.Desc) .Select((a, b, c, d) => new GetTrackFlagListVO { Id = a.Id, From 2c5aa4f35a750e3904e3ac20f9157f98a2b91503 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=86=9B?= <2357729423@qq.com> Date: Mon, 22 Apr 2024 15:05:01 +0800 Subject: [PATCH 3/3] =?UTF-8?q?opt=EF=BC=9A=E5=AE=9A=E6=97=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=88=B7=E6=96=B0=E8=BD=A8=E8=BF=B9=E5=88=86=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProvideServices/TrackPullService.cs | 42 ++++++++++--------- .../Queries/IProvideQueries.cs | 5 ++- .../Queries/ProvideQueries.cs | 5 ++- 3 files changed, 31 insertions(+), 21 deletions(-) diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs index 7cf315b2..354af4e1 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs @@ -88,32 +88,36 @@ public class TrackPullService : ApplicationService continue; } - var orders = await _provideQueries.FindOrderWithServiceProviderAsync(config.ServiceProviderId); - var serviceProviderCode = orders.FirstOrDefault()?.ServiceProviderCode; - var serviceProviderName = orders.FirstOrDefault()?.ServiceProviderName; - - foreach (var group in orders.GroupBy(x => - new { x.SubSystemId, x.OrderType })) + var page = 1; + var orders = await _provideQueries.FindOrderWithServiceProviderAsync(config.ServiceProviderId, page); + while (orders.Any()) { - var data = group.Select(x => new - { - x.OrderNo - }).ToList(); + var serviceProviderCode = orders.FirstOrDefault()?.ServiceProviderCode; + var serviceProviderName = orders.FirstOrDefault()?.ServiceProviderName; - var attach = Base64Helper.SerializeObject(new TrackRefreshAttach(config.ServiceProviderId, - serviceProviderName!, - group.Key.SubSystemId, group.Key.OrderType)); - // 批量获取轨迹 - await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync( - InterfaceRelayConst.GetTrackInterfaceCode, serviceProviderCode, data, - GlobalConst.TrackRefreshSubscribe, attach); + foreach (var group in orders.GroupBy(x => + new { x.SubSystemId, x.OrderType })) + { + var data = group.Select(x => new + { + x.OrderNo + }).ToList(); + + var attach = Base64Helper.SerializeObject(new TrackRefreshAttach(config.ServiceProviderId, + serviceProviderName!, + group.Key.SubSystemId, group.Key.OrderType)); + // 批量获取轨迹 + await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync( + InterfaceRelayConst.GetTrackInterfaceCode, serviceProviderCode, data, + GlobalConst.TrackRefreshSubscribe, attach); + } + + orders = await _provideQueries.FindOrderWithServiceProviderAsync(config.ServiceProviderId, ++page); } - if (config.PullInterval < 60) config.PullInterval = 60; await RedisHelper.Client.SetExAsync(redisKey, config.PullInterval * 60, orders.Count); } - return true; } } \ No newline at end of file diff --git a/src/SJZY.Track.Domain/Queries/IProvideQueries.cs b/src/SJZY.Track.Domain/Queries/IProvideQueries.cs index 2795df48..7d043a9f 100644 --- a/src/SJZY.Track.Domain/Queries/IProvideQueries.cs +++ b/src/SJZY.Track.Domain/Queries/IProvideQueries.cs @@ -60,6 +60,9 @@ public interface IProvideQueries /// 获取服务商下所有单(未完成的) /// /// + /// + /// /// - Task> FindOrderWithServiceProviderAsync(int serviceProvider); + Task> FindOrderWithServiceProviderAsync(int serviceProvider, int pageIndex, + int pageSize = 1000); } \ No newline at end of file diff --git a/src/SJZY.Track.Repository/Queries/ProvideQueries.cs b/src/SJZY.Track.Repository/Queries/ProvideQueries.cs index 7f144688..82e4993f 100644 --- a/src/SJZY.Track.Repository/Queries/ProvideQueries.cs +++ b/src/SJZY.Track.Repository/Queries/ProvideQueries.cs @@ -113,7 +113,8 @@ public class ProvideQueries : ISugarRepository, IProvideQueries, .ToListAsync(); } - public async Task> FindOrderWithServiceProviderAsync(int serviceProvider) + public async Task> FindOrderWithServiceProviderAsync(int serviceProvider, + int pageIndex, int pageSize = 1000) { return await Context.Queryable() .RightJoin((a, b) => a.Id == b.OrderId) @@ -128,6 +129,8 @@ public class ProvideQueries : ISugarRepository, IProvideQueries, ServiceProviderName = c.Name, SubSystemId = a.SubSystemId }) + .Skip((pageIndex - 1) * pageSize) + .Take(pageSize) .ToListAsync(); } } \ No newline at end of file