转鹏军

This commit is contained in:
hardstylewyl 2025-01-09 17:41:39 +08:00
parent cb147ccbe1
commit 4fb127ed47
14 changed files with 34 additions and 17 deletions

View File

@ -123,7 +123,7 @@ public class BatchUpsertTrackInput : OrderNosInfo
/// <summary>
/// 扩展信息字段,用与轨迹推送的附加字段
/// </summary>
public Dictionary<string, object>? Extra { get; set; }
public string? Extra { get; set; }
/// <summary>
/// 是否强制推送

View File

@ -105,5 +105,5 @@ public class TrackDetail
/// <summary>
/// 扩展信息字段,用与轨迹推送的附加字段
/// </summary>
public Dictionary<string, object>? Extra { get; set; }
public string? Extra { get; set; }
}

View File

@ -132,7 +132,7 @@ public class UpsertTrackInput : OrderNoInfo
/// <summary>
/// 扩展信息字段,用与轨迹推送的附加字段
/// </summary>
public Dictionary<string, object>? Extra { get; set; }
public string? Extra { get; set; }
/// <summary>
/// 是否强制推送

View File

@ -85,5 +85,5 @@ public class TrackPushRecordDto
/// <summary>
/// 轨迹的额外新
/// </summary>
public Dictionary<string, object>? Extra { get; set; }
public string? Extra { get; set; }
}

View File

@ -132,5 +132,5 @@ public class TrackChangeEto
/// <summary>
/// 扩展信息字段,用与轨迹推送的附加字段
/// </summary>
public Dictionary<string, object>? Extra { get; set; }
public string? Extra { get; set; }
}

View File

@ -83,5 +83,5 @@ public class TrackPushCompletedEvent
/// <summary>
/// 轨迹的额外新
/// </summary>
public Dictionary<string, object>? Extra { get; set; }
public string? Extra { get; set; }
}

View File

@ -88,5 +88,5 @@ public struct SystemPushStruct
/// <summary>
/// 扩展信息字段,用与轨迹推送的附加字段
/// </summary>
public Dictionary<string, object>? Extra { get; set; }
public string? Extra { get; set; }
}

View File

@ -154,7 +154,7 @@ public class TrackUpsertEvent
/// <summary>
/// 扩展信息字段,用与轨迹推送的附加字段
/// </summary>
public Dictionary<string, object>? Extra { get; set; }
public string? Extra { get; set; }
/// <summary>
/// 是否强制推送

View File

@ -265,7 +265,7 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
{ "descriptionCn", config.TrackContentValue },
{ "code", config.TrackContentCodeValue },
{ "status", config.TrackStatusValue },
{ "extra", log.Extra }
{ "extra", DeserializeForTextJson<object>(log.Extra) }
};
body.Data.Add(dict);
log.PushContent = body.ToJson();
@ -293,7 +293,7 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
{ "descriptionCn", config.TrackContentValue },
{ "code", config.TrackContentCodeValue },
{ "status", config.TrackStatusValue },
{ "extra", log.Extra }
{ "extra", DeserializeForTextJson<object>(log.Extra) }
};
body.Data.Add(cur);
@ -380,4 +380,11 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
{
return string.IsNullOrWhiteSpace(json) ? default : System.Text.Json.JsonSerializer.Deserialize<T>(json);
}
private Dictionary<string, object>? GetExtraDictForTextJson(string? extraStr)
{
return string.IsNullOrWhiteSpace(extraStr)
? null
: System.Text.Json.JsonSerializer.Deserialize<Dictionary<string, object>>(extraStr);
}
}

View File

@ -1,4 +1,5 @@
using DotNetCore.CAP;
using NetTaste;
using SJZY.Expand.ABP.Core.Logger;
using SJZY.Expand.ABP.Core.PublicMethords;
using SJZY.Track.Application.Contract.Events;
@ -234,7 +235,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
// todo:条件命名写反了
// important:轨迹code相同,时间、发生地不同的,可能存在多条!!
var tracks = await _trackDetailsEsRepository.GetListAsync(orderIds, @event.TrackCode, false);
var tracks = await _trackDetailsEsRepository.GetListAsync(orderIds, @event.TrackCode, true);
var insertTracks = new List<TrackDetailsIndex>();
var updateTracks = new List<TrackDetailsIndex>();
@ -249,6 +250,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
{
updateTracks.Add(BuiltUpdateTrack(@event, trackById, order, trackContent));
}
continue;
}
@ -260,8 +262,10 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
}
else
{
var extraDict = GetExtraDictForTextJson(@event.Extra);
if (@event.Extra == null ||
@event.Extra.TryGetValue(@event.CompareFields, out var compareValue) == false)
extraDict == null
|| extraDict.TryGetValue(@event.CompareFields, out var compareValue) == false)
{
throw new BusinessException(message: "轨迹比较字段不存在,请检查拓展字段");
}
@ -269,7 +273,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
existTracks = existTracks.Where(x =>
{
// tips:注意兼容性,历史轨迹的字段可能为空
if (x.Extra == null || !x.Extra.TryGetValue(@event.CompareFields, out var oldValue))
if (x.Extra == null || !extraDict.TryGetValue(@event.CompareFields, out var oldValue))
{
return false;
}
@ -441,4 +445,11 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
return track;
}
private Dictionary<string, object>? GetExtraDictForTextJson(string? extraStr)
{
return string.IsNullOrWhiteSpace(extraStr)
? null
: System.Text.Json.JsonSerializer.Deserialize<Dictionary<string, object>>(extraStr);
}
}

View File

@ -4,7 +4,6 @@ using BSI.Stack.Rabbit.Handler;
using Newtonsoft.Json;
using RabbitMQ.Client.Events;
using SJZY.Expand.ABP.Core.Logger;
using SJZY.Expand.ABP.Core.PublicMethords;
using SJZY.InterfaceRelay.Application.Contracts;
using SJZY.Track.Application.Contract.Dtos.TrackPush;
using SJZY.Track.Application.Contract.Services;

View File

@ -190,5 +190,5 @@ public class TrackDetailsIndex : IdBaseIndex
/// <summary>
/// 扩展信息字段,用与轨迹推送的附加字段
/// </summary>
public Dictionary<string, object>? Extra { get; set; }
public string? Extra { get; set; }
}

View File

@ -96,5 +96,5 @@ public class TrackPushRecordIndex : IdBaseIndex
/// <summary>
/// 轨迹额外信息
/// </summary>
public Dictionary<string, object>? Extra { get; set; }
public string? Extra { get; set; }
}

View File

@ -19,7 +19,7 @@ public class TrackDetailsEsRepository : ElasticSearchContextAbstract<TrackDetail
public async Task<List<TrackDetailsIndex>> GetListAsync(int[] orderIds, string trackCode,
bool forUpsert = false)
{
var r = !forUpsert
var r = forUpsert
? await Context.SearchAsync<TrackDetailsIndex>(s => s
.Index(GlobalConst.TrackDetailsIndex)
.Source()