From 0f495477768b21106708b4fb4f8232055ca905b9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=86=9B?= <2357729423@qq.com>
Date: Tue, 26 Mar 2024 15:19:13 +0800
Subject: [PATCH] =?UTF-8?q?opt:=20=E6=8E=A8=E9=80=81=E8=AE=B0=E5=BD=95?=
=?UTF-8?q?=E5=86=97=E4=BD=99orderNo=EF=BC=8CorderType?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Events/TrackPushEvent.cs | 5 +++++
.../EventHandlers/TrackPushEventHandler.cs | 4 +++-
.../EventHandlers/TrackUpsertEventHandler.cs | 1 +
.../ProvideServices/TrackPushService.cs | 20 +++++++++++++++++--
.../ITrackPushRecordsRepository.cs | 2 ++
.../TrackPushRecordIndex.cs | 10 ++++++++++
.../TrackPushRecordsRepository.cs | 14 +++++++++++++
7 files changed, 53 insertions(+), 3 deletions(-)
diff --git a/src/SJZY.Track.Application.Contract/Events/TrackPushEvent.cs b/src/SJZY.Track.Application.Contract/Events/TrackPushEvent.cs
index 8434072e..92ce75e1 100644
--- a/src/SJZY.Track.Application.Contract/Events/TrackPushEvent.cs
+++ b/src/SJZY.Track.Application.Contract/Events/TrackPushEvent.cs
@@ -22,6 +22,11 @@ public class TrackPushEvent
///
public string OrderNo { get; set; } = null!;
+ ///
+ /// 订单类型
+ ///
+ public int OrderType { get; set; }
+
///
/// 轨迹内容id
///
diff --git a/src/SJZY.Track.Application/EventHandlers/TrackPushEventHandler.cs b/src/SJZY.Track.Application/EventHandlers/TrackPushEventHandler.cs
index 58ddb13a..a1f9aba4 100644
--- a/src/SJZY.Track.Application/EventHandlers/TrackPushEventHandler.cs
+++ b/src/SJZY.Track.Application/EventHandlers/TrackPushEventHandler.cs
@@ -44,7 +44,7 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
var isSuccess = res.Code == InterfaceRelayConst.SuccessCode;
- // 写推送日志
+ // 往es 写推送日志
await _trackPushRecordsRepository.AddAsync(new TrackPushRecordIndex
{
IndexName = $"{GlobalConst.TrackPushRecordsIndex}-{DateTime.Now:yyyy.MM.dd}",
@@ -52,6 +52,8 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
Message = res.Msg,
OptionType = @event.OptionType.ToString(),
OrderId = @event.OrderId,
+ OrderType = @event.OrderType,
+ OrderNo = @event.OrderNo,
TrackStatus = @event.TrackStatus,
TrackCode = @event.TrackCode,
TrackContent = @event.TrackContent,
diff --git a/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs
index ed4b838c..e3276d02 100644
--- a/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs
+++ b/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs
@@ -191,6 +191,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
OptionType = optionType,
ServiceProviderCode = config.ServiceProviderCode,
OrderNo = track.OrderNo,
+ OrderType = track.OrderType,
OrderId = track.OrderId,
TrackContentId = config.TrackContentId,
TrackStatus = track.TrackStatus,
diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs
index 85e48c02..272f4c40 100644
--- a/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs
+++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs
@@ -5,6 +5,7 @@ using SJZY.Track.Application.Contract.Events;
using SJZY.Track.Application.Contract.Services;
using SJZY.Track.Domain.Aggregates.OrderAggregate;
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
+using SJZY.Track.Domain.Aggregates.TrackPushAggregate;
using SJZY.Track.Domain.Consts;
using SJZY.Track.Domain.Enums;
using SJZY.UserCenter.HttpApi.Services;
@@ -22,16 +23,19 @@ public class TrackPushService : ApplicationService
private readonly IOrderRepository _orderRepository;
private readonly ITrackPushCacheService _pushCacheService;
private readonly ICapPublisher _capPublisher;
+ private readonly ITrackPushRecordsRepository _trackPushRecordsRepository;
public TrackPushService(ITrackPushCacheService pushCacheService,
ITrackDetailsRepository trackDetailsRepository
, IOrderRepository orderRepository
- , ICapPublisher capPublisher)
+ , ICapPublisher capPublisher
+ , ITrackPushRecordsRepository trackPushRecordsRepository)
{
_pushCacheService = pushCacheService;
_trackDetailsRepository = trackDetailsRepository;
_orderRepository = orderRepository;
_capPublisher = capPublisher;
+ _trackPushRecordsRepository = trackPushRecordsRepository;
}
///
@@ -47,7 +51,7 @@ public class TrackPushService : ApplicationService
var orders = await _orderRepository.GetListAsync(x =>
x.OrderType == input.OrderType && input.OrderNos.Contains(x.OrderNo), x => new
{
- x.Id, x.OrderNo, x.SubSystemId, x.CustomId
+ x.Id, x.OrderNo, x.OrderType, x.SubSystemId, x.CustomId
});
if (orders.Count == 0)
@@ -81,6 +85,7 @@ public class TrackPushService : ApplicationService
{
ServiceProviderCode = config.ServiceProviderCode,
OrderNo = order.OrderNo,
+ OrderType = order.OrderType,
OrderId = order.Id,
TrackContentId = config.TrackContentId,
TrackStatus = track.TrackStatus,
@@ -130,4 +135,15 @@ public class TrackPushService : ApplicationService
return $"成功将:{orders.Count(x => x.QuestionType == (int)TrackProblemType.Warn)}个订单置为预警";
}
+
+ ///
+ /// 获取轨迹推送记录
+ ///
+ ///
+ ///
+ [HttpGet("GetTrackPushRecords")]
+ public async Task> GetTrackPushRecordsAsync(OrderNoInfo input)
+ {
+ return await _trackPushRecordsRepository.GetTrackPushRecordsAsync(input.OrderNo, input.OrderType);
+ }
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/ITrackPushRecordsRepository.cs b/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/ITrackPushRecordsRepository.cs
index e8115b13..e776b1f4 100644
--- a/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/ITrackPushRecordsRepository.cs
+++ b/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/ITrackPushRecordsRepository.cs
@@ -15,4 +15,6 @@ public interface ITrackPushRecordsRepository
///
///
Task> GetTrackPushRecordsAsync(int orderId);
+
+ Task> GetTrackPushRecordsAsync(string inputOrderNo, int inputOrderType);
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/TrackPushRecordIndex.cs b/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/TrackPushRecordIndex.cs
index 0d178b45..6efa70b5 100644
--- a/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/TrackPushRecordIndex.cs
+++ b/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/TrackPushRecordIndex.cs
@@ -17,6 +17,16 @@ public class TrackPushRecordIndex : IdBaseIndex
///
public int OrderId { get; set; }
+ ///
+ /// 订单号
+ ///
+ public string OrderNo { get; set; } = null!;
+
+ ///
+ /// 订单类型(主数据枚举TrackOrderType)
+ ///
+ public int OrderType { get; set; }
+
///
/// 接口通请求Id
///
diff --git a/src/SJZY.Track.Repository/Repositories/TrackPushRecordsRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackPushRecordsRepository.cs
index b537adb1..3847d786 100644
--- a/src/SJZY.Track.Repository/Repositories/TrackPushRecordsRepository.cs
+++ b/src/SJZY.Track.Repository/Repositories/TrackPushRecordsRepository.cs
@@ -40,4 +40,18 @@ public class TrackPushRecordsRepository : ElasticSearchContextAbstract> GetTrackPushRecordsAsync(string orderNo, int orderType)
+ {
+ var data = await Context.SearchAsync(x => x
+ .Index(GlobalConst.TrackPushRecordsIndex)
+ .Query(q =>
+ q.Term(t => t.OrderNo.Suffix("keyword"), orderNo)
+ && q.Term(f => f.OrderType, orderType)
+ )
+ .Size(1000)
+ .Sort(s => s.Field(f => f.CreateTime, SortOrder.Descending)));
+
+ return data.Documents.ToList();
+ }
}
\ No newline at end of file