Merge branch 'S06' into test

This commit is contained in:
hardstylewyl 2025-01-07 16:09:56 +08:00
commit 26c8672c6f
8 changed files with 59 additions and 17 deletions

View File

@ -17,11 +17,6 @@ public class GetTrackInput : OrderNosInfo
/// 排序方式,默认按轨迹发生时间降序 /// 排序方式,默认按轨迹发生时间降序
/// </summary> /// </summary>
public SortMethod? SortMethod { get; set; } public SortMethod? SortMethod { get; set; }
/// <summary>
/// 轨迹模板代码
/// </summary>
public string? TrackTemplateCode { get; set; }
} }
/// <summary> /// <summary>

View File

@ -185,14 +185,15 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
new Track2InterfaceRelaySubSystemContext(@event.SubSystemCode))) new Track2InterfaceRelaySubSystemContext(@event.SubSystemCode)))
{ {
var asciiString = Base64Helper.SerializeObject(OptionType.新增.ToString()); var asciiString = Base64Helper.SerializeObject(OptionType.新增.ToString());
var serviceProviderCode = _pushConfigs.First().ServiceProviderCode;
var r = await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync( var r = await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync(
_options.CurrentValue.PushTrackInterfaceCode, _options.CurrentValue.PushTrackInterfaceCode,
_pushConfigs.First().ServiceProviderCode, items.Cast<object>().ToList(), GlobalConst.TrackPushCompletedSubscribe, serviceProviderCode, items.Cast<object>().ToList(), GlobalConst.TrackPushCompletedSubscribe,
attach: asciiString); attach: asciiString);
if (r.Code != GlobalConst.SuccessCode) if (r.Code != GlobalConst.SuccessCode)
{ {
throw new BusinessException(message: $"requestId: {r.RequestId}; {r.Msg}"); throw new BusinessException(message: $"requestId: {r.RequestId}; serviceProviderCode:{serviceProviderCode} Msg: {r.Msg}");
} }
} }
} }
@ -235,14 +236,15 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
new Track2InterfaceRelaySubSystemContext(@event.SubSystemCode))) new Track2InterfaceRelaySubSystemContext(@event.SubSystemCode)))
{ {
var asciiString = Base64Helper.SerializeObject(OptionType.修改.ToString()); var asciiString = Base64Helper.SerializeObject(OptionType.修改.ToString());
var serviceProviderCode = _pushConfigs.First().ServiceProviderCode;
var r = await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync( var r = await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync(
_options.CurrentValue.TrackUpdateInterfaceCode, _options.CurrentValue.TrackUpdateInterfaceCode,
_pushConfigs.First().ServiceProviderCode, items.Cast<object>().ToList(), GlobalConst.TrackPushCompletedSubscribe, serviceProviderCode, items.Cast<object>().ToList(), GlobalConst.TrackPushCompletedSubscribe,
attach: asciiString); attach: asciiString);
if (r.Code != GlobalConst.SuccessCode) if (r.Code != GlobalConst.SuccessCode)
{ {
throw new BusinessException(message: $"requestId: {r.RequestId}; {r.Msg}"); throw new BusinessException(message: $"requestId: {r.RequestId}; serviceProviderCode:{serviceProviderCode} Msg: {r.Msg}");
} }
} }
} }

View File

@ -1,7 +1,9 @@
using Microsoft.AspNetCore.Http;
using SJZY.Track.Application.Contract.Dtos.ProvideServices; using SJZY.Track.Application.Contract.Dtos.ProvideServices;
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate; using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate;
using SJZY.Track.Domain.Dtos.TrackTemplate; using SJZY.Track.Domain.Dtos.TrackTemplate;
using SJZY.Track.Domain.Queries;
namespace SJZY.Track.Application.Services.ProvideServices; namespace SJZY.Track.Application.Services.ProvideServices;
@ -12,6 +14,8 @@ public partial class TrackService
{ {
private readonly ITrackDetailsEsRepository _trackDetailsEsRepository; private readonly ITrackDetailsEsRepository _trackDetailsEsRepository;
private readonly ITrackTemplateRepository _trackTemplateRepository; private readonly ITrackTemplateRepository _trackTemplateRepository;
private readonly IHttpContextAccessor _contextAccessor;
private readonly IVSystemQueries _vSystemQueries;
/// <summary> /// <summary>
/// 查询轨迹(时区补正) /// 查询轨迹(时区补正)
@ -27,9 +31,12 @@ public partial class TrackService
var details = await _trackDetailsEsRepository.GetListAsync(input.SubSystemId, input.OrderType, input.OrderNos); var details = await _trackDetailsEsRepository.GetListAsync(input.SubSystemId, input.OrderType, input.OrderNos);
//内部子系统不过滤外部轨迹
var isFilterExternal = await HasFilterExternalTrack();
// 是否对外 // 是否对外
var trackCodes = details.Select(x => x.TrackCode) var trackCodes = details.Select(x => x.TrackCode)
.Where(x => x != GlobalConst.EmptyString) .WhereIf(isFilterExternal, x => x != GlobalConst.EmptyString)
.Distinct() .Distinct()
.ToList(); .ToList();
@ -90,7 +97,7 @@ public partial class TrackService
} }
// 排序 // 排序
var sortedList = await TracksOrdered(res, input, input.SortMethod, input.TrackTemplateCode); var sortedList = await TracksOrdered(res, input, input.SortMethod);
return new UnifyResultDto<List<GetTrackOutput>>(true, sortedList, "操作成功"); return new UnifyResultDto<List<GetTrackOutput>>(true, sortedList, "操作成功");
} }
@ -109,9 +116,12 @@ public partial class TrackService
var details = await _trackDetailsEsRepository.GetListAsync(input.SubSystemId, input.OrderType, input.OrderNos); var details = await _trackDetailsEsRepository.GetListAsync(input.SubSystemId, input.OrderType, input.OrderNos);
//内部子系统不过滤外部轨迹
var isFilterExternal = await HasFilterExternalTrack();
// 是否对外 // 是否对外
var trackCodes = details.Select(x => x.TrackCode) var trackCodes = details.Select(x => x.TrackCode)
.Where(x => x != GlobalConst.EmptyString) .WhereIf(isFilterExternal, x => x != GlobalConst.EmptyString)
.Distinct() .Distinct()
.ToList(); .ToList();
@ -173,8 +183,24 @@ public partial class TrackService
return new UnifyResultDto<List<GetTrackOutput>>(true, sortedList, "操作成功"); return new UnifyResultDto<List<GetTrackOutput>>(true, sortedList, "操作成功");
} }
//内部系统展示所有轨迹,外部系统则要求过滤外部轨迹
private async Task<bool> HasFilterExternalTrack()
{
var isFilter = true;
if (_contextAccessor.HttpContext!.Request.Headers.TryGetValue(GlobalConst.HTTP_HEADER_SUBSYSTEMID, out var subsystemIdStr))
{
if (int.TryParse(subsystemIdStr, out var subsystemId))
{
var systemEntity = await _vSystemQueries.GetFirstAsync(x => x.Id == subsystemId);
isFilter = systemEntity?.SystemProperty != 1;
}
}
private async Task<List<GetTrackOutput>> TracksOrdered(List<GetTrackOutput> list, OrderNosInfo orderNosInfo, SortMethod? sortMethod, string? trackTemplateCode = null) return isFilter;
}
private async Task<List<GetTrackOutput>> TracksOrdered(List<GetTrackOutput> list, OrderNosInfo orderNosInfo, SortMethod? sortMethod)
{ {
switch (sortMethod) switch (sortMethod)
{ {
@ -201,8 +227,7 @@ public partial class TrackService
//查出订单模板 //查出订单模板
var templates = await _trackTemplateRepository.GetTrackTemplateListAsync(new GetTrackTemplateListInputVo var templates = await _trackTemplateRepository.GetTrackTemplateListAsync(new GetTrackTemplateListInputVo
{ {
SubSystemId = orderNosInfo.SubSystemId, SubSystemId = orderNosInfo.SubSystemId
TemplateCode = trackTemplateCode
}); });
if (templates.Count == 0) if (templates.Count == 0)

View File

@ -1,4 +1,5 @@
using DotNetCore.CAP; using DotNetCore.CAP;
using Microsoft.AspNetCore.Http;
using SJZY.Track.Application.Contract.Dtos.ProvideServices; using SJZY.Track.Application.Contract.Dtos.ProvideServices;
using SJZY.Track.Application.Contract.Events; using SJZY.Track.Application.Contract.Events;
using SJZY.Track.Application.Contract.Services.ProvideServices; using SJZY.Track.Application.Contract.Services.ProvideServices;
@ -7,6 +8,7 @@ using SJZY.Track.Domain.Aggregates.TrackContentAggregate;
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate; using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate;
using SJZY.Track.Domain.Enums; using SJZY.Track.Domain.Enums;
using SJZY.Track.Domain.Queries;
using SJZY.UserCenter.HttpApi.Services; using SJZY.UserCenter.HttpApi.Services;
using SJZY.UserCenter.HttpApi.Services.User; using SJZY.UserCenter.HttpApi.Services.User;
using Volo.Abp.Http.Client.DynamicProxying; using Volo.Abp.Http.Client.DynamicProxying;
@ -27,13 +29,15 @@ public partial class TrackService : ApplicationService, ITrackService
public TrackService(IOrderRepository orderRepository, ICapPublisher capPublisher, public TrackService(IOrderRepository orderRepository, ICapPublisher capPublisher,
ITrackDetailsEsRepository trackDetailsEsRepository, ITrackContentRepository trackContentRepository, ITrackDetailsEsRepository trackDetailsEsRepository, ITrackContentRepository trackContentRepository,
IHttpClientProxy<IUserBaseInfoService> requestCurrentUserService, ITrackTemplateRepository trackTemplateRepository) IHttpClientProxy<IUserBaseInfoService> requestCurrentUserService, ITrackTemplateRepository trackTemplateRepository, IHttpContextAccessor contextAccessor, IVSystemQueries vSystemQueries)
{ {
_orderRepository = orderRepository; _orderRepository = orderRepository;
this._orderRepository = orderRepository; this._orderRepository = orderRepository;
_capPublisher = capPublisher; _capPublisher = capPublisher;
_trackContentRepository = trackContentRepository; _trackContentRepository = trackContentRepository;
_requestCurrentUserService = requestCurrentUserService; _requestCurrentUserService = requestCurrentUserService;
_vSystemQueries = vSystemQueries;
_contextAccessor = contextAccessor;
_trackTemplateRepository = trackTemplateRepository; _trackTemplateRepository = trackTemplateRepository;
_trackDetailsEsRepository = trackDetailsEsRepository; _trackDetailsEsRepository = trackDetailsEsRepository;
} }

View File

@ -4,6 +4,7 @@ public partial class GlobalConst
{ {
public const string MainDataKey_OrderType = "TrackOrderType"; public const string MainDataKey_OrderType = "TrackOrderType";
public const string MainDataKey_TrackQuestionType = "TrackQuestionType"; public const string MainDataKey_TrackQuestionType = "TrackQuestionType";
public const string HTTP_HEADER_SUBSYSTEMID = "Subsystemid";
public const string SystemUser = "系统"; public const string SystemUser = "系统";
public const string EmptyString = "--"; public const string EmptyString = "--";
public const int ChunkSize = 100; public const int ChunkSize = 100;

View File

@ -0,0 +1,7 @@
using SJZY.Track.Domain.VEntities;
namespace SJZY.Track.Domain.Queries;
public interface IVSystemQueries : IBasicQuery<VSystemEntity>
{
}

View File

@ -4,7 +4,7 @@ namespace SJZY.Track.Domain.VEntities;
/// ///
/// </summary> /// </summary>
[SugarTable("v_system")] [SugarTable("v_system")]
public class VSystemEntity : IFullAuditedBasicEntitys public class VSystemEntity : IFullAuditedBasicEntitys, IEntity
{ {
/// <summary> /// <summary>
/// 子系统id /// 子系统id

View File

@ -0,0 +1,8 @@
using SJZY.Track.Domain.Queries;
using SJZY.Track.Domain.VEntities;
namespace SJZY.Track.Repository.Queries;
public class VSystemQueries : BasicQuery<VSystemEntity>, IVSystemQueries, ITransientDependency
{
}