opt: 推送记录冗余orderNo,orderType

This commit is contained in:
李鹏军 2024-03-26 15:19:13 +08:00
parent 1334637bf2
commit 0f49547776
7 changed files with 53 additions and 3 deletions

View File

@ -22,6 +22,11 @@ public class TrackPushEvent
/// </summary> /// </summary>
public string OrderNo { get; set; } = null!; public string OrderNo { get; set; } = null!;
/// <summary>
/// 订单类型
/// </summary>
public int OrderType { get; set; }
/// <summary> /// <summary>
/// 轨迹内容id /// 轨迹内容id
/// </summary> /// </summary>

View File

@ -44,7 +44,7 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
var isSuccess = res.Code == InterfaceRelayConst.SuccessCode; var isSuccess = res.Code == InterfaceRelayConst.SuccessCode;
// 写推送日志 // 往es 写推送日志
await _trackPushRecordsRepository.AddAsync(new TrackPushRecordIndex await _trackPushRecordsRepository.AddAsync(new TrackPushRecordIndex
{ {
IndexName = $"{GlobalConst.TrackPushRecordsIndex}-{DateTime.Now:yyyy.MM.dd}", IndexName = $"{GlobalConst.TrackPushRecordsIndex}-{DateTime.Now:yyyy.MM.dd}",
@ -52,6 +52,8 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
Message = res.Msg, Message = res.Msg,
OptionType = @event.OptionType.ToString(), OptionType = @event.OptionType.ToString(),
OrderId = @event.OrderId, OrderId = @event.OrderId,
OrderType = @event.OrderType,
OrderNo = @event.OrderNo,
TrackStatus = @event.TrackStatus, TrackStatus = @event.TrackStatus,
TrackCode = @event.TrackCode, TrackCode = @event.TrackCode,
TrackContent = @event.TrackContent, TrackContent = @event.TrackContent,

View File

@ -191,6 +191,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
OptionType = optionType, OptionType = optionType,
ServiceProviderCode = config.ServiceProviderCode, ServiceProviderCode = config.ServiceProviderCode,
OrderNo = track.OrderNo, OrderNo = track.OrderNo,
OrderType = track.OrderType,
OrderId = track.OrderId, OrderId = track.OrderId,
TrackContentId = config.TrackContentId, TrackContentId = config.TrackContentId,
TrackStatus = track.TrackStatus, TrackStatus = track.TrackStatus,

View File

@ -5,6 +5,7 @@ using SJZY.Track.Application.Contract.Events;
using SJZY.Track.Application.Contract.Services; using SJZY.Track.Application.Contract.Services;
using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.OrderAggregate;
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
using SJZY.Track.Domain.Aggregates.TrackPushAggregate;
using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Consts;
using SJZY.Track.Domain.Enums; using SJZY.Track.Domain.Enums;
using SJZY.UserCenter.HttpApi.Services; using SJZY.UserCenter.HttpApi.Services;
@ -22,16 +23,19 @@ public class TrackPushService : ApplicationService
private readonly IOrderRepository _orderRepository; private readonly IOrderRepository _orderRepository;
private readonly ITrackPushCacheService _pushCacheService; private readonly ITrackPushCacheService _pushCacheService;
private readonly ICapPublisher _capPublisher; private readonly ICapPublisher _capPublisher;
private readonly ITrackPushRecordsRepository _trackPushRecordsRepository;
public TrackPushService(ITrackPushCacheService pushCacheService, public TrackPushService(ITrackPushCacheService pushCacheService,
ITrackDetailsRepository trackDetailsRepository ITrackDetailsRepository trackDetailsRepository
, IOrderRepository orderRepository , IOrderRepository orderRepository
, ICapPublisher capPublisher) , ICapPublisher capPublisher
, ITrackPushRecordsRepository trackPushRecordsRepository)
{ {
_pushCacheService = pushCacheService; _pushCacheService = pushCacheService;
_trackDetailsRepository = trackDetailsRepository; _trackDetailsRepository = trackDetailsRepository;
_orderRepository = orderRepository; _orderRepository = orderRepository;
_capPublisher = capPublisher; _capPublisher = capPublisher;
_trackPushRecordsRepository = trackPushRecordsRepository;
} }
/// <summary> /// <summary>
@ -47,7 +51,7 @@ public class TrackPushService : ApplicationService
var orders = await _orderRepository.GetListAsync(x => var orders = await _orderRepository.GetListAsync(x =>
x.OrderType == input.OrderType && input.OrderNos.Contains(x.OrderNo), x => new x.OrderType == input.OrderType && input.OrderNos.Contains(x.OrderNo), x => new
{ {
x.Id, x.OrderNo, x.SubSystemId, x.CustomId x.Id, x.OrderNo, x.OrderType, x.SubSystemId, x.CustomId
}); });
if (orders.Count == 0) if (orders.Count == 0)
@ -81,6 +85,7 @@ public class TrackPushService : ApplicationService
{ {
ServiceProviderCode = config.ServiceProviderCode, ServiceProviderCode = config.ServiceProviderCode,
OrderNo = order.OrderNo, OrderNo = order.OrderNo,
OrderType = order.OrderType,
OrderId = order.Id, OrderId = order.Id,
TrackContentId = config.TrackContentId, TrackContentId = config.TrackContentId,
TrackStatus = track.TrackStatus, TrackStatus = track.TrackStatus,
@ -130,4 +135,15 @@ public class TrackPushService : ApplicationService
return $"成功将:{orders.Count(x => x.QuestionType == (int)TrackProblemType.Warn)}个订单置为预警"; return $"成功将:{orders.Count(x => x.QuestionType == (int)TrackProblemType.Warn)}个订单置为预警";
} }
/// <summary>
/// 获取轨迹推送记录
/// </summary>
/// <returns></returns>
/// <param name="input"></param>
[HttpGet("GetTrackPushRecords")]
public async Task<List<TrackPushRecordIndex>> GetTrackPushRecordsAsync(OrderNoInfo input)
{
return await _trackPushRecordsRepository.GetTrackPushRecordsAsync(input.OrderNo, input.OrderType);
}
} }

View File

@ -15,4 +15,6 @@ public interface ITrackPushRecordsRepository
/// <param name="orderId"></param> /// <param name="orderId"></param>
/// <returns></returns> /// <returns></returns>
Task<List<TrackPushRecordIndex>> GetTrackPushRecordsAsync(int orderId); Task<List<TrackPushRecordIndex>> GetTrackPushRecordsAsync(int orderId);
Task<List<TrackPushRecordIndex>> GetTrackPushRecordsAsync(string inputOrderNo, int inputOrderType);
} }

View File

@ -17,6 +17,16 @@ public class TrackPushRecordIndex : IdBaseIndex
/// </summary> /// </summary>
public int OrderId { get; set; } public int OrderId { get; set; }
/// <summary>
/// 订单号
/// </summary>
public string OrderNo { get; set; } = null!;
/// <summary>
/// 订单类型(主数据枚举TrackOrderType)
/// </summary>
public int OrderType { get; set; }
/// <summary> /// <summary>
/// 接口通请求Id /// 接口通请求Id
/// </summary> /// </summary>

View File

@ -40,4 +40,18 @@ public class TrackPushRecordsRepository : ElasticSearchContextAbstract<TrackDeta
return data.Documents.ToList(); return data.Documents.ToList();
} }
public async Task<List<TrackPushRecordIndex>> GetTrackPushRecordsAsync(string orderNo, int orderType)
{
var data = await Context.SearchAsync<TrackPushRecordIndex>(x => x
.Index(GlobalConst.TrackPushRecordsIndex)
.Query(q =>
q.Term(t => t.OrderNo.Suffix("keyword"), orderNo)
&& q.Term(f => f.OrderType, orderType)
)
.Size(1000)
.Sort(s => s.Field(f => f.CreateTime, SortOrder.Descending)));
return data.Documents.ToList();
}
} }