attach
This commit is contained in:
parent
ee35276ee6
commit
9d5cad393e
@ -1,6 +1,7 @@
|
||||
using DotNetCore.CAP;
|
||||
using Newtonsoft.Json;
|
||||
using SJZY.InterfaceRelay.Application.Contracts;
|
||||
using SJZY.Track.Application.Contract.Dtos.TrackPush;
|
||||
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||
using SJZY.Track.Domain.Aggregates.TrackPushAggregate;
|
||||
using SJZY.Track.Domain.Consts;
|
||||
@ -24,7 +25,19 @@ public class TrackPushCompletedEventHandler : ITransientDependency, ICapSubscrib
|
||||
[CapSubscribe(GlobalConst.TrackPushCompletedSubscribe, Group = GlobalConst.TrackPushSubscribe)]
|
||||
public async Task ConsumerAsync(InterfaceRelayForwardReplayEvent @event)
|
||||
{
|
||||
var log = JsonConvert.DeserializeObject<TrackPushRecordIndex>(@event.RequestParams);
|
||||
string logStr = null;
|
||||
if (@event.Attach == OptionType.新增.ToString())
|
||||
{
|
||||
logStr = JsonConvert.DeserializeObject<TrackPushInput>(@event.RequestParams)!.Log;
|
||||
}
|
||||
else if (@event.Attach == OptionType.修改.ToString())
|
||||
{
|
||||
logStr = JsonConvert.DeserializeObject<TrackUpdateInput>(@event.RequestParams)!.Log;
|
||||
}
|
||||
|
||||
if (logStr.IsNullOrEmpty()) throw new InvalidOperationException();
|
||||
var log = JsonConvert.DeserializeObject<TrackPushRecordIndex>(logStr!);
|
||||
|
||||
if (log == null) throw new BusinessException(message: "轨迹推送返回结果解析异常");
|
||||
log.IsSuccess = @event.IsSuccess;
|
||||
log.Message = @event.Message;
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
using DotNetCore.CAP;
|
||||
using System.Text;
|
||||
using DotNetCore.CAP;
|
||||
using Newtonsoft.Json;
|
||||
using SJZY.Expand.ABP.Core.PublicMethords;
|
||||
using SJZY.InterfaceRelay.Application.Contracts;
|
||||
@ -72,7 +73,7 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
|
||||
|
||||
private async Task DoPushAsync(TrackPushEvent @event)
|
||||
{
|
||||
var logs = new List<TrackPushRecordIndex>();
|
||||
var items = new List<TrackPushInput>();
|
||||
TrackPushContentConfigDto? config;
|
||||
|
||||
if (@event.OperationMan == null)
|
||||
@ -98,8 +99,9 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
|
||||
TrackTimeZone = @event.SystemPushInfo.TrackTimeZone,
|
||||
CreateUser = GlobalConst.SystemUser,
|
||||
};
|
||||
await BuiltPushItem(config, log);
|
||||
logs.Add(log);
|
||||
var item = await BuiltPushItem(config, log);
|
||||
item.Log = JsonConvert.SerializeObject(log);
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
else //手工推送
|
||||
@ -136,13 +138,18 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
|
||||
TrackTimeZone = track.TrackTimeZone,
|
||||
CreateUser = @event.OperationMan,
|
||||
};
|
||||
await BuiltPushItem(config, log);
|
||||
logs.Add(log);
|
||||
var item = await BuiltPushItem(config, log);
|
||||
item.Log = JsonConvert.SerializeObject(log);
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
byte[] asciiBytes = Encoding.ASCII.GetBytes(OptionType.新增.ToString());
|
||||
string asciiString = Encoding.ASCII.GetString(asciiBytes);
|
||||
|
||||
await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync(InterfaceRelayConst.PushTrackInterfaceCode,
|
||||
_pushConfigs.First().ServiceProviderCode, logs, GlobalConst.TrackPushCompletedSubscribe);
|
||||
_pushConfigs.First().ServiceProviderCode, items, GlobalConst.TrackPushCompletedSubscribe,
|
||||
attach: asciiString);
|
||||
}
|
||||
|
||||
private async Task DoUpdateAsync(TrackPushEvent @event)
|
||||
@ -150,7 +157,7 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
|
||||
var config = _pushConfigs.FirstOrDefault(x => x.TrackCode == @event.TrackCode);
|
||||
if (config == null || !config.IsCanUpdate) return;
|
||||
|
||||
var logs = new List<TrackPushRecordIndex>();
|
||||
var items = new List<TrackUpdateInput>();
|
||||
foreach (var order in _orders)
|
||||
{
|
||||
var log = new TrackPushRecordIndex
|
||||
@ -166,41 +173,43 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
|
||||
TrackTimeZone = @event.SystemPushInfo.TrackTimeZone,
|
||||
CreateUser = GlobalConst.SystemUser,
|
||||
};
|
||||
BuiltUpdateItem(config, log);
|
||||
logs.Add(log);
|
||||
var item = BuiltUpdateItem(config, log);
|
||||
item.Log = JsonConvert.SerializeObject(log);
|
||||
items.Add(item);
|
||||
}
|
||||
|
||||
await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync(InterfaceRelayConst.TrackUpdateInterfaceCode,
|
||||
_pushConfigs.First().ServiceProviderCode, logs, GlobalConst.TrackPushCompletedSubscribe);
|
||||
_pushConfigs.First().ServiceProviderCode, items, GlobalConst.TrackPushCompletedSubscribe,
|
||||
attach: OptionType.修改.ToString());
|
||||
}
|
||||
|
||||
private void BuiltUpdateItem(TrackPushContentConfigDto config, TrackPushRecordIndex log)
|
||||
private TrackUpdateInput BuiltUpdateItem(TrackPushContentConfigDto config, TrackPushRecordIndex log)
|
||||
{
|
||||
var data = new
|
||||
var track = new TrackItem
|
||||
{
|
||||
orderNo = log.OrderNo,
|
||||
data = new[]
|
||||
{
|
||||
new
|
||||
{
|
||||
// 推真实的发生地和发生时间
|
||||
location = log.TrackPlace,
|
||||
date = log.TrackTime.AddHours(
|
||||
// 推真实的发生地和发生时间(时间是计算后的)
|
||||
Location = log.TrackPlace,
|
||||
Date = log.TrackTime.AddHours(
|
||||
config.TrackTimeZone ?? log.TrackTimeZone - log.TrackTimeZone),
|
||||
timeZone = config.TrackTimeZone ?? log.TrackTimeZone,
|
||||
description = config.TrackEnContentValue,
|
||||
description_cn = config.TrackContentValue,
|
||||
code = config.TrackContentCodeValue,
|
||||
status = config.TrackStatusValue,
|
||||
extra = config.ExpandFieldsValue
|
||||
}
|
||||
}
|
||||
TimeZone = config.TrackTimeZone ?? log.TrackTimeZone,
|
||||
Description = config.TrackEnContentValue,
|
||||
DescriptionCn = config.TrackContentValue,
|
||||
Code = config.TrackContentCodeValue,
|
||||
Status = config.TrackStatusValue,
|
||||
Extra = config.ExpandFieldsValue
|
||||
};
|
||||
|
||||
log.PushContent = data.ToJson();
|
||||
var body = new TrackUpdateInput
|
||||
{
|
||||
OrderNo = log.OrderNo,
|
||||
};
|
||||
body.Data.Add(track);
|
||||
log.PushContent = body.ToJson();
|
||||
|
||||
return body;
|
||||
}
|
||||
|
||||
private async Task BuiltPushItem(TrackPushContentConfigDto config, TrackPushRecordIndex log)
|
||||
private async Task<TrackPushInput> BuiltPushItem(TrackPushContentConfigDto config, TrackPushRecordIndex log)
|
||||
{
|
||||
var track = new TrackItem
|
||||
{
|
||||
@ -233,6 +242,8 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
|
||||
}
|
||||
|
||||
log.PushContent = body.ToJson();
|
||||
|
||||
return body;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user