diff --git a/src/SJZY.Track.Application.Contract/Events/TrackPushEvent.cs b/src/SJZY.Track.Application.Contract/Events/TrackPushEvent.cs
index 870e2274..2bc5760c 100644
--- a/src/SJZY.Track.Application.Contract/Events/TrackPushEvent.cs
+++ b/src/SJZY.Track.Application.Contract/Events/TrackPushEvent.cs
@@ -12,6 +12,11 @@ public class TrackPushEvent
///
public int SubSystemId { get; set; }
+ ///
+ /// 子系统代码
+ ///
+ public string SubSystemCode { get; set; }
+
///
/// 客户id
///
diff --git a/src/SJZY.Track.Application.Contract/Events/TrackUpsertEvent.cs b/src/SJZY.Track.Application.Contract/Events/TrackUpsertEvent.cs
index 1bd4b033..7de9a33e 100644
--- a/src/SJZY.Track.Application.Contract/Events/TrackUpsertEvent.cs
+++ b/src/SJZY.Track.Application.Contract/Events/TrackUpsertEvent.cs
@@ -7,6 +7,11 @@ public class TrackUpsertEvent
///
public int SubSystemId { get; set; }
+ ///
+ /// 子系统code
+ ///
+ public string SubSystemCode { get; set; }
+
///
/// 客户id
///
diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs
index a7ce9299..2ce58497 100644
--- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs
+++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs
@@ -6,6 +6,7 @@ using SJZY.Track.Application.Contract.Dtos.TrackPush;
using SJZY.Track.Application.Contract.Events;
using SJZY.Track.Application.Contract.Services;
using SJZY.Track.Application.Helpers;
+using SJZY.Track.Application.Track2InterfaceRelay;
using SJZY.Track.Domain.Aggregates.OrderAggregate;
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
using SJZY.Track.Domain.Aggregates.TrackPushAggregate;
@@ -149,15 +150,19 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
if (items.Count == 0) return;
- string asciiString = Base64Helper.SerializeObject(OptionType.新增.ToString());
- var r = await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync(
- InterfaceRelayConst.PushTrackInterfaceCode,
- _pushConfigs.First().ServiceProviderCode, items, GlobalConst.TrackPushCompletedSubscribe,
- attach: asciiString);
-
- if (r.Code != InterfaceRelayConst.SuccessCode)
+ using (Track2InterfaceRelaySubSystemContext.Use(
+ new Track2InterfaceRelaySubSystemContext(@event.SubSystemCode)))
{
- throw new BusinessException(message: $"requestId: {r.RequestId}; {r.Msg}");
+ var asciiString = Base64Helper.SerializeObject(OptionType.新增.ToString());
+ var r = await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync(
+ InterfaceRelayConst.PushTrackInterfaceCode,
+ _pushConfigs.First().ServiceProviderCode, items, GlobalConst.TrackPushCompletedSubscribe,
+ attach: asciiString);
+
+ if (r.Code != InterfaceRelayConst.SuccessCode)
+ {
+ throw new BusinessException(message: $"requestId: {r.RequestId}; {r.Msg}");
+ }
}
}
@@ -189,15 +194,19 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
if (items.Count == 0) return;
- string asciiString = Base64Helper.SerializeObject(OptionType.修改.ToString());
- var r = await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync(
- InterfaceRelayConst.TrackUpdateInterfaceCode,
- _pushConfigs.First().ServiceProviderCode, items, GlobalConst.TrackPushCompletedSubscribe,
- attach: asciiString);
-
- if (r.Code != InterfaceRelayConst.SuccessCode)
+ using (Track2InterfaceRelaySubSystemContext.Use(
+ new Track2InterfaceRelaySubSystemContext(@event.SubSystemCode)))
{
- throw new BusinessException(message: $"requestId: {r.RequestId}; {r.Msg}");
+ var asciiString = Base64Helper.SerializeObject(OptionType.修改.ToString());
+ var r = await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync(
+ InterfaceRelayConst.TrackUpdateInterfaceCode,
+ _pushConfigs.First().ServiceProviderCode, items, GlobalConst.TrackPushCompletedSubscribe,
+ attach: asciiString);
+
+ if (r.Code != InterfaceRelayConst.SuccessCode)
+ {
+ throw new BusinessException(message: $"requestId: {r.RequestId}; {r.Msg}");
+ }
}
}
diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs
index 20755b68..25af80ba 100644
--- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs
+++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs
@@ -178,6 +178,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
{
OptionType = @event.IsAdd ? OptionType.新增 : OptionType.修改,
SubSystemId = @event.SubSystemId,
+ SubSystemCode = trackContent.SubSystemCode,
CustomId = @event.CustomId,
OrderIds = canNextOrderIds.ToArray(),
TrackCode = @event.TrackCode,
diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs
index f5f42198..ae1e9946 100644
--- a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs
+++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs
@@ -54,6 +54,11 @@ public partial class TrackService : ApplicationService, ITrackService
throw new BusinessException(message: $"订单:{input.OrderNo}不存在");
}
+ if (input.TrackTime < DateTime.Now.AddYears(-100) || input.TrackTime > DateTime.Now.AddYears(100))
+ {
+ throw new BusinessException(message: "轨迹时间不合法");
+ }
+
var userInfo = await _requestCurrentUserService.Service.GetCurrentUserBasicInfoAsync();
if (userInfo.Code != GlobalConst.SuccessCode || userInfo.Data is null)
{
diff --git a/src/SJZY.Track.Domain/Dtos/TrackContents/TrackContentVO.cs b/src/SJZY.Track.Domain/Dtos/TrackContents/TrackContentVO.cs
index cbea2602..374fa387 100644
--- a/src/SJZY.Track.Domain/Dtos/TrackContents/TrackContentVO.cs
+++ b/src/SJZY.Track.Domain/Dtos/TrackContents/TrackContentVO.cs
@@ -2,6 +2,11 @@ namespace SJZY.Track.Domain.Dtos.TrackContents;
public class TrackContentVO
{
+ ///
+ /// 子系统代码
+ ///
+ public string SubSystemCode { get; set; }
+
///
/// 轨迹状态Id
///
diff --git a/src/SJZY.Track.Repository/Queries/ProvideQueries.cs b/src/SJZY.Track.Repository/Queries/ProvideQueries.cs
index 1d90ecf8..291c1034 100644
--- a/src/SJZY.Track.Repository/Queries/ProvideQueries.cs
+++ b/src/SJZY.Track.Repository/Queries/ProvideQueries.cs
@@ -80,14 +80,16 @@ public class ProvideQueries : ISugarRepository, IProvideQueries, ITransientDepen
{
return await Context.Queryable()
.LeftJoin((x, y) => x.TrackStatusId == y.Id)
+ .LeftJoin((x, y, z) => x.SubSystemId == z.Id)
.Where(x => x.SubSystemId == subSystemId && x.Code == trackCode)
- .Select((x, y) => new TrackContentVO
+ .Select((x, y, z) => new TrackContentVO
{
+ SubSystemCode = z.Key,
TrackStatusId = x.TrackStatusId,
TrackStatus = y.Status,
TrackContent = x.Content,
TrackEnContent = x.EnContent,
- IsCompleted = y.IsCompleted
+ IsCompleted = y.IsCompleted,
})
.FirstAsync();
}