From c7a1d9175364eaf49938cb042f686ccfc631ffd4 Mon Sep 17 00:00:00 2001
From: xiaolipro <2357729423@qq.com>
Date: Thu, 19 Sep 2024 15:25:12 +0800
Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E6=8E=A8=E9=80=81=E8=BD=A8?=
=?UTF-8?q?=E8=BF=B9=E5=AF=B9=E6=8E=A5=E6=8E=A5=E5=8F=A3=E9=80=9A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Events/TrackPushEvent.cs | 5 +++
.../Events/TrackUpsertEvent.cs | 5 +++
.../EventHandlers/TrackPushEventHandler.cs | 41 +++++++++++--------
.../EventHandlers/TrackUpsertEventHandler.cs | 1 +
.../Services/ProvideServices/TrackService.cs | 5 +++
.../Dtos/TrackContents/TrackContentVO.cs | 5 +++
.../Queries/ProvideQueries.cs | 6 ++-
7 files changed, 50 insertions(+), 18 deletions(-)
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();
}