update: 补充入参模型
This commit is contained in:
parent
60324b0e26
commit
183ea314e3
@ -10,4 +10,14 @@ public class BatchDeleteTrackInput : OrderNosInfo
|
||||
[Required]
|
||||
[MaxLength(500)]
|
||||
public List<TrackIdentifierDto> TrackIdentifiers { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// 重复的情况下,用什么字段比较
|
||||
/// </summary>
|
||||
public string? CompareFields { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 重复的情况下,比较值
|
||||
/// </summary>
|
||||
public object? CompareValue { get; set; }
|
||||
}
|
||||
|
||||
@ -17,4 +17,14 @@ public class DeleteTrackInput : OrderNoInfo
|
||||
/// 轨迹ESId集合,非必填,如果有优先级最高
|
||||
/// </summary>
|
||||
public List<string>? EsIds { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 重复的情况下,用什么字段比较
|
||||
/// </summary>
|
||||
public string? CompareFields { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 重复的情况下,比较值
|
||||
/// </summary>
|
||||
public object? CompareValue { get; set; }
|
||||
}
|
||||
|
||||
@ -9,4 +9,14 @@ public class PushTrackInput : OrderNosInfo
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string TrackCode { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// 重复的情况下,用什么字段比较
|
||||
/// </summary>
|
||||
public string? CompareFields { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 重复的情况下,比较值
|
||||
/// </summary>
|
||||
public object? CompareValue { get; set; }
|
||||
}
|
||||
|
||||
@ -245,7 +245,7 @@ public partial class TrackService : ApplicationService, ITrackService
|
||||
var extraDict = System.Text.Json.JsonSerializer.Deserialize<Dictionary<string, object>>(y.Extra);
|
||||
if (extraDict!.TryGetValue(input.CompareFields!, out var compareValue))
|
||||
{
|
||||
//tips:可能会有问题
|
||||
//todo:需要修改JsonElement和object的逻辑
|
||||
return compareValue.Equals(input.CompareValue);
|
||||
}
|
||||
|
||||
@ -358,7 +358,24 @@ public partial class TrackService : ApplicationService, ITrackService
|
||||
TrackSourceEnum.ExternalServiceProvide);
|
||||
|
||||
//当要删除的轨迹标识出现交叉则不允许删除
|
||||
var intersect = tracks.Select(x => $"{x.TrackCode}{x.TrackTime}")
|
||||
var intersect = tracks
|
||||
.WhereIf(!input.CompareFields.IsNullOrWhiteSpace(), y =>
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(y.Extra))
|
||||
{
|
||||
throw new BusinessException(message: "轨迹extra为空无法使用比较字段比较,请检查轨迹");
|
||||
}
|
||||
|
||||
var extraDict = System.Text.Json.JsonSerializer.Deserialize<Dictionary<string, object>>(y.Extra);
|
||||
if (extraDict!.TryGetValue(input.CompareFields!, out var compareValue))
|
||||
{
|
||||
//todo:需要修改JsonElement和object的逻辑
|
||||
return compareValue.Equals(input.CompareValue);
|
||||
}
|
||||
|
||||
return false;
|
||||
})
|
||||
.Select(x => $"{x.TrackCode}{x.TrackTime}")
|
||||
.Intersect(input.TrackIdentifiers.Select(y => $"{y.TrackCode}{y.TrackTime}")).ToList();
|
||||
if (intersect.Count > 0)
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user