修改参数表字段;添加拉去配置缓存
This commit is contained in:
parent
9ae2a8335a
commit
edf9704ffe
@ -37,7 +37,7 @@ public class EditTrackPullConfigInput
|
||||
/// <summary>
|
||||
/// 拉取轨迹时区
|
||||
/// </summary>
|
||||
public string? TackTimeZoneName { get; set; }
|
||||
public string? TrackTimeZoneName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 拉取轨迹内容代码
|
||||
|
||||
@ -10,7 +10,7 @@ public class TrackPullParamConfigDto
|
||||
/// <summary>
|
||||
/// 轨迹时区参数名
|
||||
/// </summary>
|
||||
public string TackTimeZoneName { get; set; } = null!;
|
||||
public string TrackTimeZoneName { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹代码参数名
|
||||
@ -37,11 +37,6 @@ public class TrackPullParamConfigDto
|
||||
/// </summary>
|
||||
public string TrackTimeName { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹发生时间参数名
|
||||
/// </summary>
|
||||
public string TrackTimeZoneName { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// 订单数组路径
|
||||
/// </summary>
|
||||
|
||||
@ -42,7 +42,7 @@ public class EditTrackPushConfigInput
|
||||
/// <summary>
|
||||
/// 推送轨迹时区
|
||||
/// </summary>
|
||||
public string? TackTimeZoneName { get; set; }
|
||||
public string? TrackTimeZoneName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 推送轨迹内容代码
|
||||
|
||||
@ -11,4 +11,13 @@ public interface ITrackPullCacheService
|
||||
/// <param name="serviceProviderId">服务商id</param>
|
||||
/// <returns></returns>
|
||||
Task<TrackPullConfigDto> GetPullConfigAsync(int subSystemId, int serviceProviderId);
|
||||
|
||||
/// <summary>
|
||||
/// 设置拉取配置缓存
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="subSystemId">子系统id</param>
|
||||
/// <param name="serviceProviderId">服务商id</param>
|
||||
/// <returns></returns>
|
||||
Task<TrackPullConfigDto> SetPullConfigAsync(int? id = null, int? subSystemId = null, int? serviceProviderId = null);
|
||||
}
|
||||
@ -1,6 +1,7 @@
|
||||
using AutoMapper;
|
||||
using SJZY.Track.Application.Contract.Dtos.TrackPull;
|
||||
using SJZY.Track.Domain.Aggregates.TrackPullAggregate;
|
||||
using SJZY.Track.Domain.Dtos.TrackPull;
|
||||
using Volo.Abp.AutoMapper;
|
||||
|
||||
namespace SJZY.Track.Application.AutoMapper;
|
||||
@ -15,5 +16,7 @@ public class TrackPullAutoMapperProfile : Profile
|
||||
CreateMap<EditTrackPullContentInput, TrackPullContentConfigEntity>(MemberList.None)
|
||||
.ForMember(dest => dest.TrackKeyword, opt => opt.MapFrom(src => string.Join(',', src.TrackKeywords)))
|
||||
.ForMember(dest => dest.TrackKeywordReverse, opt => opt.MapFrom(src => string.Join(',', src.TrackKeywordReverses)));
|
||||
CreateMap<GetTrackPullConfigDetailOutputVO, TrackPullParamConfigDto>(MemberList.None);
|
||||
CreateMap<GetTrackPullContentListCacheVO, TrackPullContentConfigDto>(MemberList.None);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,53 @@
|
||||
using SJZY.Expand.ABP.Core;
|
||||
using SJZY.Track.Application.Contract.Dtos.TrackPull;
|
||||
using SJZY.Track.Application.Contract.Services;
|
||||
using SJZY.Track.Domain.Aggregates.TrackPullAggregate;
|
||||
using SJZY.Track.Domain.Dtos.TrackPull;
|
||||
using System.Linq.Expressions;
|
||||
using Volo.Abp.DependencyInjection;
|
||||
|
||||
namespace SJZY.Track.Application.Services.TrackPull;
|
||||
|
||||
public class TrackPullCacheService : ApplicationService, ITrackPullCacheService, ITransientDependency
|
||||
{
|
||||
private readonly ITrackPullConfigRepository _trackPullConfigRepository;
|
||||
|
||||
private string RedisKey(int subSystemId, int serviceProviderId) => GlobalConst.TrackPushKeyPrefix + subSystemId + ":" + serviceProviderId;
|
||||
|
||||
public TrackPullCacheService(ITrackPullConfigRepository trackPullConfigRepository)
|
||||
{
|
||||
_trackPullConfigRepository = trackPullConfigRepository;
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
public async Task<TrackPullConfigDto> GetPullConfigAsync(int subSystemId, int serviceProviderId)
|
||||
{
|
||||
var data = await RedisHelper.Client.GetAsync<TrackPullConfigDto>(RedisKey(subSystemId, serviceProviderId));
|
||||
|
||||
data ??= await SetPullConfigAsync(subSystemId: subSystemId, serviceProviderId: serviceProviderId);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
public async Task<TrackPullConfigDto> SetPullConfigAsync(int? id = null, int? subSystemId = null, int? serviceProviderId = null)
|
||||
{
|
||||
var data = new TrackPullConfigDto();
|
||||
|
||||
Expression<Func<TrackPullConfigEntity, bool>> exp = x => id.HasValue ? x.Id == id : x.SubSystemId == subSystemId && x.ServiceProviderId == serviceProviderId;
|
||||
var trackPullConfigEntity = await _trackPullConfigRepository.GetFirstAsync(exp);
|
||||
if (trackPullConfigEntity == null) return data;
|
||||
|
||||
var trackPullConfigDetail = await _trackPullConfigRepository.GetDetailAsync(trackPullConfigEntity.Id);
|
||||
if (trackPullConfigDetail is null) return data;
|
||||
var trackPullContentList = await _trackPullConfigRepository.GetContentListCacheAsync(trackPullConfigEntity.Id);
|
||||
if (trackPullContentList.Count == 0) return data;
|
||||
|
||||
data.ParamConfig = ObjectMapper.Map<GetTrackPullConfigDetailOutputVO, TrackPullParamConfigDto>(trackPullConfigDetail);
|
||||
data.ContentConfigs = ObjectMapper.Map<List<GetTrackPullContentListCacheVO>, List<TrackPullContentConfigDto>>(trackPullContentList);
|
||||
|
||||
await RedisHelper.Client.SetAsync(RedisKey(trackPullConfigEntity.SubSystemId, trackPullConfigEntity.ServiceProviderId), data, 86400);
|
||||
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -3,9 +3,9 @@ using Microsoft.Extensions.Localization;
|
||||
using SJZY.Expand.ABP.Core.Localization;
|
||||
using SJZY.Expand.ABP.Core.PublicMethords;
|
||||
using SJZY.Track.Application.Contract.Dtos.TrackPull;
|
||||
using SJZY.Track.Application.Contract.Services;
|
||||
using SJZY.Track.Application.Localization;
|
||||
using SJZY.Track.Domain.Aggregates.TrackPullAggregate;
|
||||
using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate;
|
||||
using SJZY.Track.Domain.Dtos.Common;
|
||||
using SJZY.Track.Domain.Dtos.TrackPull;
|
||||
using SqlSugar;
|
||||
@ -22,16 +22,16 @@ public class TrackPullService : ApplicationService, ITransientDependency
|
||||
{
|
||||
private readonly IStringLocalizer<TrackLocalizationResource> _stringLocalizer;
|
||||
private readonly ITrackPullConfigRepository _trackPullConfigRepository;
|
||||
private readonly ITrackTemplateRepository _trackTemplateRepository;
|
||||
private readonly ITrackPullCacheService _trackPullCacheService;
|
||||
|
||||
public TrackPullService(
|
||||
IStringLocalizer<TrackLocalizationResource> stringLocalizer,
|
||||
ITrackPullConfigRepository trackPullConfigRepository,
|
||||
ITrackTemplateRepository trackTemplateRepository)
|
||||
ITrackPullCacheService trackPullCacheService)
|
||||
{
|
||||
_stringLocalizer = stringLocalizer;
|
||||
_trackPullConfigRepository = trackPullConfigRepository;
|
||||
_trackTemplateRepository = trackTemplateRepository;
|
||||
_trackPullCacheService = trackPullCacheService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -104,15 +104,19 @@ public class TrackPullService : ApplicationService, ITransientDependency
|
||||
var trackPullEntity = ObjectMapper.Map<EditTrackPullConfigInput, TrackPullConfigEntity>(input);
|
||||
var trackPullParamsEntity = ObjectMapper.Map<EditTrackPullConfigInput, TrackPushPullParamsConfigEntity>(input);
|
||||
|
||||
int id = 0;
|
||||
|
||||
using (var ts = TransactionScopeHelper.Create())
|
||||
{
|
||||
int id = await _trackPullConfigRepository.InsertReturnIdentityAsync(trackPullEntity);
|
||||
id = await _trackPullConfigRepository.InsertReturnIdentityAsync(trackPullEntity);
|
||||
|
||||
trackPullParamsEntity.PullOrPushConfigId = id;
|
||||
await _trackPullConfigRepository.InsertParamsAsync(trackPullParamsEntity);
|
||||
|
||||
ts.Complete();
|
||||
}
|
||||
|
||||
await _trackPullCacheService.SetPullConfigAsync(id);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -132,6 +136,8 @@ public class TrackPullService : ApplicationService, ITransientDependency
|
||||
|
||||
ts.Complete();
|
||||
}
|
||||
|
||||
await _trackPullCacheService.SetPullConfigAsync(input.Id);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -156,7 +162,7 @@ public class TrackPullService : ApplicationService, ITransientDependency
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹拉取配置内容修改
|
||||
/// 轨迹拉取配置内容编辑
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
@ -193,6 +199,7 @@ public class TrackPullService : ApplicationService, ITransientDependency
|
||||
var entity = ObjectMapper.Map<EditTrackPullContentInput, TrackPullContentConfigEntity>(input);
|
||||
|
||||
await _trackPullConfigRepository.InsertContentAsync(entity);
|
||||
await _trackPullCacheService.SetPullConfigAsync(input.TrackPullConfigId);
|
||||
|
||||
break;
|
||||
}
|
||||
@ -205,6 +212,7 @@ public class TrackPullService : ApplicationService, ITransientDependency
|
||||
ObjectMapper.Map(input, oldTrackPullContentEntity);
|
||||
|
||||
await _trackPullConfigRepository.UpdateContentAsync(oldTrackPullContentEntity);
|
||||
await _trackPullCacheService.SetPullConfigAsync(input.TrackPullConfigId);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ public class EditTrackPullConfigInputValidation : AbstractValidator<EditTrackPul
|
||||
|
||||
When(x => x.ParseMethod == 1, () =>
|
||||
{
|
||||
RuleFor(x => x.TackTimeZoneName).NotEmpty().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotEmpty, nameof(EditTrackPullConfigInput.TackTimeZoneName)]);
|
||||
RuleFor(x => x.TrackTimeZoneName).NotEmpty().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotEmpty, nameof(EditTrackPullConfigInput.TrackTimeZoneName)]);
|
||||
|
||||
RuleFor(x => x.TrackContentCodeName).NotEmpty().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotEmpty, nameof(EditTrackPullConfigInput.TrackContentCodeName)]);
|
||||
|
||||
|
||||
@ -19,6 +19,13 @@ public interface ITrackPullConfigRepository : IBasicRepository<TrackPullConfigEn
|
||||
/// <returns></returns>
|
||||
Task<UnifyPageResultDto<GetTrackPullContentPageOutputVO>> GetContentPageAsync(GetTrackPullContentPageInputVO input);
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹拉取配置内容集合(缓存使用)
|
||||
/// </summary>
|
||||
/// <param name="trackPullConfigId"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<GetTrackPullContentListCacheVO>> GetContentListCacheAsync(int trackPullConfigId);
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹拉取配置详情
|
||||
/// </summary>
|
||||
|
||||
@ -39,8 +39,8 @@ public class TrackPushPullParamsConfigEntity : IFullAuditedBasicEntitys, IEntity
|
||||
/// <summary>
|
||||
/// 轨迹时区参数名
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "TackTimeZoneName")]
|
||||
public string TackTimeZoneName { get; set; }
|
||||
[SugarColumn(ColumnName = "TrackTimeZoneName")]
|
||||
public string TrackTimeZoneName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹代码参数名
|
||||
|
||||
@ -42,7 +42,7 @@ public class GetTrackPullConfigDetailOutputVO
|
||||
/// <summary>
|
||||
/// 拉取轨迹时区
|
||||
/// </summary>
|
||||
public string TackTimeZoneName { get; set; }
|
||||
public string TrackTimeZoneName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 拉取轨迹内容代码
|
||||
|
||||
@ -0,0 +1,44 @@
|
||||
namespace SJZY.Track.Domain.Dtos.TrackPull;
|
||||
|
||||
public class GetTrackPullContentListCacheVO
|
||||
{
|
||||
/// <summary>
|
||||
/// 轨迹内容代码
|
||||
/// </summary>
|
||||
public string TrackContentCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 服务商轨迹状态参数值
|
||||
/// </summary>
|
||||
public string? TrackStatusValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 服务商轨迹代码参数值
|
||||
/// </summary>
|
||||
public string? TrackContentCodeValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 服务商轨迹内容参数值
|
||||
/// </summary>
|
||||
public string? TrackContentValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹关键词(正向),多个逗分隔
|
||||
/// </summary>
|
||||
public string? TrackKeyword { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹关键词(反向),多个逗分隔
|
||||
/// </summary>
|
||||
public string? TrackKeywordReverse { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹发生地参数值(主数据枚举)
|
||||
/// </summary>
|
||||
public int? TrackPlaceValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹时区GMT
|
||||
/// </summary>
|
||||
public float? TrackTimeZone { get; set; }
|
||||
}
|
||||
@ -54,7 +54,7 @@ public class GetTrackPushConfigDetailOutputVO
|
||||
/// <summary>
|
||||
/// 推送轨迹时区
|
||||
/// </summary>
|
||||
public string TackTimeZoneName { get; set; }
|
||||
public string TrackTimeZoneName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 推送轨迹内容代码
|
||||
|
||||
@ -36,4 +36,9 @@ public class GlobalConst
|
||||
/// 轨迹要推送的客户redis key前缀
|
||||
/// </summary>
|
||||
public const string TrackPushKeyPrefix = "TrackPush:";
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹拉取配置信息redis key前缀
|
||||
/// </summary>
|
||||
public const string TrackPullConfigInfoKeyPrefix = "TrackPullConfigInfo:";
|
||||
}
|
||||
@ -36,11 +36,10 @@ public class TrackPullConfigRepository : BasicRepository<TrackPullConfigEntity>,
|
||||
{
|
||||
return await Context.Queryable<TrackPullContentConfigEntity>()
|
||||
.InnerJoin<TrackContentEntity>((pullContent, trackContent) => pullContent.TrackContentId == trackContent.Id)
|
||||
.InnerJoin<TrackPullConfigEntity>((pullContent, trackContent, trackPull) => pullContent.TrackPullConfigId == trackPull.Id)
|
||||
.LeftJoin<VEnumValueInfoEntity>((pullContent, trackContent, trackPull, enumValue) => enumValue.Property == EnumPropertyEnums.轨迹发生地.GetDescription() && pullContent.TrackPlaceValue == enumValue.Enumkey)
|
||||
.LeftJoin<VEnumValueInfoEntity>((pullContent, trackContent, enumValue) => enumValue.Property == EnumPropertyEnums.轨迹发生地.GetDescription() && pullContent.TrackPlaceValue == enumValue.Enumkey)
|
||||
.Where(pullContent => pullContent.TrackPullConfigId == input.TrackPullConfigId)
|
||||
.OrderBy(pullContent => pullContent.CreateTime)
|
||||
.Select((pullContent, trackContent, trackPull, enumValue) => new GetTrackPullContentPageOutputVO
|
||||
.Select((pullContent, trackContent, enumValue) => new GetTrackPullContentPageOutputVO
|
||||
{
|
||||
Id = pullContent.Id,
|
||||
TrackPlaceValue = enumValue.Disp
|
||||
@ -48,6 +47,18 @@ public class TrackPullConfigRepository : BasicRepository<TrackPullConfigEntity>,
|
||||
.ToPagedListAsync(input.PageIndex, input.PageSize);
|
||||
}
|
||||
|
||||
public async Task<List<GetTrackPullContentListCacheVO>> GetContentListCacheAsync(int trackPullConfigId)
|
||||
{
|
||||
return await Context.Queryable<TrackPullContentConfigEntity>()
|
||||
.InnerJoin<TrackContentEntity>((pullContent, trackContent) => pullContent.TrackContentId == trackContent.Id)
|
||||
.Where(pullContent => pullContent.TrackPullConfigId == trackPullConfigId)
|
||||
.Select((pullContent, trackContent) => new GetTrackPullContentListCacheVO
|
||||
{
|
||||
TrackContentCode = trackContent.Code
|
||||
}, true)
|
||||
.ToListAsync();
|
||||
}
|
||||
|
||||
public async Task<GetTrackPullConfigDetailOutputVO> GetDetailAsync(int id)
|
||||
{
|
||||
return await AsQueryable()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user