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