Uat_Study
parent
b4af708e22
commit
aa20a78ae0
|
@ -445,8 +445,14 @@ namespace IRaCIS.Application.Services
|
|||
/// <param name="QuestionId"></param>
|
||||
/// <param name="originalId"></param>
|
||||
/// <exception cref="BusinessValidationFailedException"></exception>
|
||||
private void VerifyCalculateRelation(List<CalculateRelationDto> relationList,Guid QuestionId,Guid originalId)
|
||||
private void VerifyCalculateRelation(List<CalculateRelationDto> relationList,Guid QuestionId,Guid originalId,int count=1)
|
||||
{
|
||||
// 防止有脏数据 循环验证 最多10000次
|
||||
if (count >= 10000)
|
||||
{
|
||||
throw new BusinessValidationFailedException("计算依赖循环了!");
|
||||
}
|
||||
|
||||
var relation = relationList.Where(x=>x.CalculateQuestionList.Any(y=>y.QuestionId== QuestionId||y.TableQuestionId==QuestionId)).ToList();
|
||||
|
||||
if (relation.Select(x => x.QuestionId).ToList().Contains(originalId))
|
||||
|
@ -460,7 +466,7 @@ namespace IRaCIS.Application.Services
|
|||
relation.ForEach(x =>
|
||||
{
|
||||
|
||||
VerifyCalculateRelation(relationList, x.QuestionId, originalId);
|
||||
VerifyCalculateRelation(relationList, x.QuestionId, originalId,count++);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue