Compare commits
No commits in common. "3f36445894bced1eb586ea9534fd2fceb9ada8d3" and "d21149a9737f6f4a22cefc689588399c4c166241" have entirely different histories.
3f36445894
...
d21149a973
@ -1,6 +0,0 @@
|
|||||||
-- 轨迹拉取配置增加订单类型(小包/大包/主单),用于同一应用+服务商下按订单类型区分配置
|
|
||||||
-- 库:TrackCenter(t_track_pull_config)
|
|
||||||
-- MySQL;若 OrderType 列已存在可跳过
|
|
||||||
|
|
||||||
ALTER TABLE t_track_pull_config
|
|
||||||
ADD COLUMN OrderType INT NOT NULL DEFAULT 1 COMMENT '订单类型(TrackOrderType:1小包 2大包 4主单)' AFTER ServiceProviderCode;
|
|
||||||
@ -81,7 +81,7 @@ public class TrackRefreshEventHandler(
|
|||||||
// 客户A 渠道B 产品A
|
// 客户A 渠道B 产品A
|
||||||
|
|
||||||
var config = await trackPullCacheService.GetPullParamsWithContentAsync(attach.AppKey,
|
var config = await trackPullCacheService.GetPullParamsWithContentAsync(attach.AppKey,
|
||||||
attach.ServiceProviderCode, attach.OrderType);
|
attach.ServiceProviderCode);
|
||||||
if (config is null)
|
if (config is null)
|
||||||
{
|
{
|
||||||
logger.LogWarning("请求id: {@RequestId},轨迹消费失败,找不到拉取配置:{@Attach}", attach.ToJson(), @event.RequestId);
|
logger.LogWarning("请求id: {@RequestId},轨迹消费失败,找不到拉取配置:{@Attach}", attach.ToJson(), @event.RequestId);
|
||||||
|
|||||||
@ -20,12 +20,12 @@ public class TrackPullCacheService : ITransientDependency
|
|||||||
$"{GlobalConst.TrackPullKeyPrefix}:{config.AppKey}:{config.ServiceProviderCode}:{config.Customer}";
|
$"{GlobalConst.TrackPullKeyPrefix}:{config.AppKey}:{config.ServiceProviderCode}:{config.Customer}";
|
||||||
|
|
||||||
public async Task<TrackPullParamsWithContentDto?> GetPullParamsWithContentAsync(string appKey,
|
public async Task<TrackPullParamsWithContentDto?> GetPullParamsWithContentAsync(string appKey,
|
||||||
string serviceProviderCode, TrackOrderType orderType)
|
string serviceProviderCode)
|
||||||
{
|
{
|
||||||
var data = await RedisHelper.Client.GetAsync<TrackPullParamsWithContentDto>(TrackPullContentKey(
|
var data = await RedisHelper.Client.GetAsync<TrackPullParamsWithContentDto>(TrackPullContentKey(
|
||||||
appKey, serviceProviderCode, orderType));
|
appKey, serviceProviderCode));
|
||||||
|
|
||||||
var pullId = await _trackPullConfigRepository.FindIdAsync(appKey, serviceProviderCode, orderType);
|
var pullId = await _trackPullConfigRepository.FindIdAsync(appKey, serviceProviderCode);
|
||||||
data ??= await SetPullConfigAsync(pullId);
|
data ??= await SetPullConfigAsync(pullId);
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
@ -53,13 +53,12 @@ public class TrackPullCacheService : ITransientDependency
|
|||||||
trackPullContentList)
|
trackPullContentList)
|
||||||
};
|
};
|
||||||
|
|
||||||
var key = TrackPullContentKey(trackPullConfigDetail.AppKey, trackPullConfigDetail.ServiceProviderCode,
|
var key = TrackPullContentKey(trackPullConfigDetail.AppKey, trackPullConfigDetail.ServiceProviderCode);
|
||||||
trackPullConfigDetail.OrderType);
|
|
||||||
await RedisHelper.Client.SetAsync(key, data, TimeSpan.FromHours(24));
|
await RedisHelper.Client.SetAsync(key, data, TimeSpan.FromHours(24));
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string TrackPullContentKey(string appKey, string serviceProviderCode, TrackOrderType orderType) =>
|
public static string TrackPullContentKey(string appKey, string serviceProviderCode) =>
|
||||||
$"{GlobalConst.TrackPullContentKeyPrefix}:{appKey}:{serviceProviderCode}:{(int)orderType}";
|
$"{GlobalConst.TrackPullContentKeyPrefix}:{appKey}:{serviceProviderCode}";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -83,13 +83,9 @@ public class TrackPullService(
|
|||||||
|
|
||||||
if (input.Options != OptionTypeNoNull.删除)
|
if (input.Options != OptionTypeNoNull.删除)
|
||||||
{
|
{
|
||||||
if (!Enum.IsDefined(typeof(TrackOrderType), input.OrderType))
|
|
||||||
throw new BusinessException("请选择订单类型");
|
|
||||||
|
|
||||||
Expression<Func<TrackPullConfigEntity, bool>> isAnyExp = x =>
|
Expression<Func<TrackPullConfigEntity, bool>> isAnyExp = x =>
|
||||||
x.AppKey == input.AppKey &&
|
x.AppKey == input.AppKey &&
|
||||||
x.ServiceProviderCode == input.ServiceProviderCode &&
|
x.ServiceProviderCode == input.ServiceProviderCode;
|
||||||
x.OrderType == input.OrderType;
|
|
||||||
if (input.Options == OptionTypeNoNull.修改) isAnyExp = isAnyExp.And(x => x.Id != input.Id);
|
if (input.Options == OptionTypeNoNull.修改) isAnyExp = isAnyExp.And(x => x.Id != input.Id);
|
||||||
|
|
||||||
if (await trackPullConfigRepository.IsAnyAsync(isAnyExp))
|
if (await trackPullConfigRepository.IsAnyAsync(isAnyExp))
|
||||||
|
|||||||
@ -75,5 +75,5 @@ public interface ITrackPullConfigRepository : IBasicRepository<TrackPullConfigEn
|
|||||||
|
|
||||||
Task<bool> IsPriorityAnyAsync(Expression<Func<TrackPullPriorityEntity, bool>> whereExpression);
|
Task<bool> IsPriorityAnyAsync(Expression<Func<TrackPullPriorityEntity, bool>> whereExpression);
|
||||||
|
|
||||||
Task<int> FindIdAsync(string appKey, string serviceProviderCode, TrackOrderType orderType);
|
Task<int> FindIdAsync(string appKey, string serviceProviderCode);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,12 +20,6 @@ public class TrackPullConfigEntity : FullAuditedAggregateRoot<int, int>
|
|||||||
[SugarColumn(ColumnName = "ServiceProviderCode")]
|
[SugarColumn(ColumnName = "ServiceProviderCode")]
|
||||||
public string ServiceProviderCode { get; set; }
|
public string ServiceProviderCode { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 订单类型(主数据枚举TrackOrderType)
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(ColumnName = "OrderType")]
|
|
||||||
public TrackOrderType OrderType { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 开始轨迹code
|
/// 开始轨迹code
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -26,11 +26,6 @@ public class GetTrackPullConfigDetailOutputVO
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string AppKey { get; set; }
|
public string AppKey { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 订单类型(主数据枚举TrackOrderType)
|
|
||||||
/// </summary>
|
|
||||||
public TrackOrderType OrderType { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 轨迹扩展信息参数名集合(逗号分割)
|
/// 轨迹扩展信息参数名集合(逗号分割)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
using TrackCenter.Domain.Enums;
|
|
||||||
|
|
||||||
namespace TrackCenter.Domain.Dtos.TrackPull;
|
namespace TrackCenter.Domain.Dtos.TrackPull;
|
||||||
|
|
||||||
public class GetTrackPullConfigPageOutputVO
|
public class GetTrackPullConfigPageOutputVO
|
||||||
@ -16,11 +14,6 @@ public class GetTrackPullConfigPageOutputVO
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string ServiceProvider { get; set; }
|
public string ServiceProvider { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 服务商code
|
|
||||||
/// </summary>
|
|
||||||
public string ServiceProviderCode { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 应用
|
/// 应用
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -30,9 +23,4 @@ public class GetTrackPullConfigPageOutputVO
|
|||||||
/// 应用
|
/// 应用
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string AppKey { get; set; }
|
public string AppKey { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 订单类型(主数据枚举TrackOrderType)
|
|
||||||
/// </summary>
|
|
||||||
public TrackOrderType OrderType { get; set; }
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,7 +5,6 @@ using TrackCenter.Domain.Aggregates.TrackPullAggregate;
|
|||||||
using TrackCenter.Domain.Aggregates.TrackStatusAggregate;
|
using TrackCenter.Domain.Aggregates.TrackStatusAggregate;
|
||||||
using TrackCenter.Domain.Dtos.Common;
|
using TrackCenter.Domain.Dtos.Common;
|
||||||
using TrackCenter.Domain.Dtos.TrackPull;
|
using TrackCenter.Domain.Dtos.TrackPull;
|
||||||
using TrackCenter.Domain.Enums;
|
|
||||||
using TrackCenter.Domain.VEntities;
|
using TrackCenter.Domain.VEntities;
|
||||||
|
|
||||||
namespace TrackCenter.Repository.Repositories;
|
namespace TrackCenter.Repository.Repositories;
|
||||||
@ -28,8 +27,6 @@ public class TrackPullConfigRepository : BasicRepository<TrackPullConfigEntity>,
|
|||||||
AppKey = system.AppKey,
|
AppKey = system.AppKey,
|
||||||
App = system.Name,
|
App = system.Name,
|
||||||
ServiceProvider = service.Name,
|
ServiceProvider = service.Name,
|
||||||
ServiceProviderCode = service.Code,
|
|
||||||
OrderType = trackPull.OrderType,
|
|
||||||
CreateTime = trackPull.CreateTime
|
CreateTime = trackPull.CreateTime
|
||||||
})
|
})
|
||||||
.ToPagedListAsync(input.PageIndex, input.PageSize);
|
.ToPagedListAsync(input.PageIndex, input.PageSize);
|
||||||
@ -219,12 +216,11 @@ public class TrackPullConfigRepository : BasicRepository<TrackPullConfigEntity>,
|
|||||||
return await Context.Queryable<TrackPullPriorityEntity>().Where(whereExpression).AnyAsync();
|
return await Context.Queryable<TrackPullPriorityEntity>().Where(whereExpression).AnyAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<int> FindIdAsync(string appKey, string serviceProviderCode, TrackOrderType orderType)
|
public async Task<int> FindIdAsync(string appKey, string serviceProviderCode)
|
||||||
{
|
{
|
||||||
return await AsQueryable()
|
return await AsQueryable()
|
||||||
.Where(trackPull => trackPull.AppKey == appKey
|
.Where(trackPull => trackPull.AppKey == appKey
|
||||||
&& trackPull.ServiceProviderCode == serviceProviderCode
|
&& trackPull.ServiceProviderCode == serviceProviderCode)
|
||||||
&& trackPull.OrderType == orderType)
|
|
||||||
.Select(trackPull => trackPull.Id)
|
.Select(trackPull => trackPull.Id)
|
||||||
.FirstAsync();
|
.FirstAsync();
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user