diff --git a/src/SJZY.Track.Application.Contract/Dtos/TrackPull/TrackPullContentConfigDto.cs b/src/SJZY.Track.Application.Contract/Dtos/TrackPull/TrackPullContentConfigDto.cs index 2dbdf4d2..da3fecdc 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/TrackPull/TrackPullContentConfigDto.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/TrackPull/TrackPullContentConfigDto.cs @@ -10,17 +10,17 @@ public class TrackPullContentConfigDto /// /// 服务商轨迹状态参数值 /// - public string? TrackStatusValue { get; set; } + public List TrackStatusValues { get; set; } = new(); /// - /// 轨迹关键词(正向),多个逗分隔 + /// 轨迹关键词(正向) /// - public string? TrackKeyword { get; set; } + public List TrackKeywords { get; set; } = new(); /// - /// 轨迹关键词(反向),多个逗分隔 + /// 轨迹关键词(反向) /// - public string? TrackKeywordReverse { get; set; } + public List TrackKeywordReverses { get; set; } = new(); /// /// 轨迹发生地参数值(主数据枚举) diff --git a/src/SJZY.Track.Application/AutoMapper/TrackPullAutoMapperProfile.cs b/src/SJZY.Track.Application/AutoMapper/TrackPullAutoMapperProfile.cs index 843cd73e..ad6f1aff 100644 --- a/src/SJZY.Track.Application/AutoMapper/TrackPullAutoMapperProfile.cs +++ b/src/SJZY.Track.Application/AutoMapper/TrackPullAutoMapperProfile.cs @@ -21,6 +21,7 @@ public class TrackPullAutoMapperProfile : Profile opt => opt.MapFrom(src => string.Join(',', src.TrackKeywordReverses ?? Enumerable.Empty()))) .ForMember(dest => dest.TrackZonePlaceValue, opt => opt.MapFrom(src => src.TrackTimePlaceValue)); CreateMap(MemberList.None); + CreateMap(MemberList.None); CreateMap(MemberList.None); diff --git a/src/SJZY.Track.Application/Rabbit/TrackRefreshEventHandler.cs b/src/SJZY.Track.Application/Rabbit/TrackRefreshEventHandler.cs index 9f47e279..ff8c6d1d 100644 --- a/src/SJZY.Track.Application/Rabbit/TrackRefreshEventHandler.cs +++ b/src/SJZY.Track.Application/Rabbit/TrackRefreshEventHandler.cs @@ -168,7 +168,7 @@ public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler var trackStatus = trackToken[paramConfig.TrackStatusName!]?.Value(); if (!trackStatus.IsNullOrWhiteSpace()) { - matchedContentConfig = contentConfigs.FirstOrDefault(x => x.TrackStatusValue == trackStatus); + matchedContentConfig = contentConfigs.FirstOrDefault(x => x.TrackStatusValues.Contains(trackStatus!)); } } @@ -183,7 +183,7 @@ public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler // 3.2 按关键字分析轨迹内容 foreach (var contentConfig in contentConfigs) { - foreach (var keyword in contentConfig.TrackKeyword?.Split(',') ?? Enumerable.Empty()) + foreach (var keyword in contentConfig.TrackKeywords) { if (trackContent.Contains(keyword, StringComparison.OrdinalIgnoreCase)) { @@ -194,8 +194,7 @@ public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler if (matchedContentConfig is null) continue; - foreach (var keyword in contentConfig.TrackKeywordReverse?.Split(',') ?? - Enumerable.Empty()) + foreach (var keyword in contentConfig.TrackKeywordReverses) { if (trackContent.Contains(keyword, StringComparison.OrdinalIgnoreCase)) { diff --git a/src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/TrackPullContentConfigEntity.cs b/src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/TrackPullContentConfigEntity.cs index 42ed4681..43a55bc7 100644 --- a/src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/TrackPullContentConfigEntity.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/TrackPullContentConfigEntity.cs @@ -25,7 +25,7 @@ public class TrackPullContentConfigEntity : IFullAuditedBasicEntitys, IEntity public int TrackContentId { get; set; } /// - /// 服务商轨迹状态参数值 + /// 服务商轨迹状态参数值,多个逗分隔 /// [SugarColumn(ColumnName = "TrackStatusValue")] public string? TrackStatusValue { get; set; } diff --git a/src/SJZY.Track.Domain/Dtos/TrackPull/GetTrackPullContentListCacheVO.cs b/src/SJZY.Track.Domain/Dtos/TrackPull/GetTrackPullContentListCacheVO.cs index b3a5eb3f..100b9577 100644 --- a/src/SJZY.Track.Domain/Dtos/TrackPull/GetTrackPullContentListCacheVO.cs +++ b/src/SJZY.Track.Domain/Dtos/TrackPull/GetTrackPullContentListCacheVO.cs @@ -7,11 +7,6 @@ public class GetTrackPullContentListCacheVO /// public string TrackContentCode { get; set; } - /// - /// 是否完成 - /// - public bool IsCompleted { get; set; } - /// /// 服务商轨迹状态参数值 /// @@ -27,6 +22,21 @@ public class GetTrackPullContentListCacheVO /// public string? TrackKeywordReverse { get; set; } + /// + /// 服务商轨迹状态参数值 + /// + public List TrackStatusValues { get; set; } = new(); + + /// + /// 轨迹关键词(正向) + /// + public List TrackKeywords { get; set; } = new(); + + /// + /// 轨迹关键词(反向) + /// + public List TrackKeywordReverses { get; set; } = new(); + /// /// 兜底轨迹发生地参数值 /// diff --git a/src/SJZY.Track.Repository/Repositories/TrackPullConfigRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackPullConfigRepository.cs index 5135b843..821557e2 100644 --- a/src/SJZY.Track.Repository/Repositories/TrackPullConfigRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/TrackPullConfigRepository.cs @@ -65,8 +65,19 @@ public class TrackPullConfigRepository : BasicRepository, new GetTrackPullContentListCacheVO { TrackContentCode = trackContent.Code, - IsCompleted = trackStutas.IsCompleted }, true) + .Mapper(x => + { + x.TrackKeywords = x.TrackKeyword.IsNullOrWhiteSpace() + ? new List() + : x.TrackKeyword!.Split(',').ToList(); + x.TrackKeywordReverses = x.TrackKeywordReverse.IsNullOrWhiteSpace() + ? new List() + : x.TrackKeywordReverse!.Split(',').ToList(); + x.TrackStatusValues = x.TrackStatusValue.IsNullOrWhiteSpace() + ? new List() + : x.TrackStatusValue!.Split(',').ToList(); + }) .ToListAsync(); } @@ -102,8 +113,15 @@ public class TrackPullConfigRepository : BasicRepository, }, true) .Mapper(x => { - x.TrackKeywords = x.TrackKeyword?.Split(',').ToList(); - x.TrackKeywordReverses = x.TrackKeywordReverse?.Split(',').ToList(); + x.TrackKeywords = x.TrackKeyword.IsNullOrWhiteSpace() + ? new List() + : x.TrackKeyword!.Split(',').ToList(); + x.TrackKeywordReverses = x.TrackKeywordReverse.IsNullOrWhiteSpace() + ? new List() + : x.TrackKeywordReverse!.Split(',').ToList(); + x.TrackStatusValues = x.TrackStatusValue.IsNullOrWhiteSpace() + ? new List() + : x.TrackStatusValue!.Split(',').ToList(); }) .SingleAsync(); }