change-validation:完整预警规则项目编辑(全量)验证

-  同一个主体下同一个检查点,订单类型不允许出现交集
This commit is contained in:
hardstylewyl 2025-03-27 18:04:47 +08:00
parent cb73040247
commit 9e48bbf9ac

View File

@ -243,11 +243,21 @@ public class CompleteWarningService : ApplicationService
} }
var bos = CompleteWarningRuleItemBO.From(input); var bos = CompleteWarningRuleItemBO.From(input);
// 同一个主体下,规则项目的检查点不能重复 // 同一个主体下同一个检查点,订单类型不允许出现交集
var checkPointTrackStatusIds = bos.Select(x => x.CheckPointTrackStatusId).ToHashSet(); foreach (var group in bos.GroupBy(x=>x.CheckPointTrackStatusId))
if (checkPointTrackStatusIds.Count < bos.Count)
{ {
throw new BusinessException(message: "完整预警规则项目检查点不能重复!"); var allOrderTypes = new HashSet<int>();
var count = 0;
foreach (var orderTypes in group.Select(x => x.OrderTypes))
{
allOrderTypes.UnionWith(orderTypes);
count += orderTypes.Count;
}
if (allOrderTypes.Count < count)
{
throw new BusinessException(message: "同一个检查点下,订单类型不允许出现交集!");
}
} }
await _completeWarningHandler.HandleEditAsync(rule, bos); await _completeWarningHandler.HandleEditAsync(rule, bos);