+13
-23
@@ -6,7 +6,7 @@ namespace IRaCIS.Core.Application.Triggers
|
||||
|
||||
public class JudgeVisitTaskTrigger(
|
||||
IRepository<VisitTask> _visitTaskRepository,
|
||||
IRepository<ReadingJudgeInfo> _readingJudgeInfoRepository) : IBeforeSaveTrigger<VisitTask>, IAfterSaveTrigger<VisitTask>
|
||||
IRepository<ReadingJudgeInfo> _readingJudgeInfoRepository) : IAfterSaveTrigger<VisitTask>
|
||||
{
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ namespace IRaCIS.Core.Application.Triggers
|
||||
/// <summary>
|
||||
/// 因为维护状态先后顺序导致 裁判任务关联的 任务上的JudgeVisitTaskId==nulll 在这里需要重新设置下
|
||||
///
|
||||
/// 比如 两个任务产生了裁判,然后其中一个人申请了重阅,影响了裁判,需要清理之前任务的上裁判id (申请重阅,退回,里面分有序,无序,情况太多,所以不在那块逻辑修改,不然得加多个地方处理,在这里统一处理)
|
||||
/// 比如: 申请裁判任务重阅,事务里面本来设置了任务上的裁判id,但是因为下面的逻辑,导致设置的值又被清理了,只能重新设置下
|
||||
/// </summary>
|
||||
/// <param name="context"></param>
|
||||
@@ -23,34 +24,22 @@ namespace IRaCIS.Core.Application.Triggers
|
||||
{
|
||||
var visitTask = context.Entity;
|
||||
//裁判任务维护,当裁判任务受到影响的时候,需要清理任务上关联的裁判任务id
|
||||
if (context.ChangeType == ChangeType.Added && visitTask.ReadingCategory == ReadingCategory.Judge && visitTask.TaskState == TaskState.Effect)
|
||||
if (context.ChangeType == ChangeType.Added)
|
||||
{
|
||||
|
||||
var find = _readingJudgeInfoRepository.Where(t => t.JudgeTaskId == visitTask.Id).FirstOrDefault();
|
||||
|
||||
if (find != null)
|
||||
if (visitTask.ReadingCategory == ReadingCategory.Judge && visitTask.TaskState == TaskState.Effect)
|
||||
{
|
||||
var ids = new Guid[] { find.TaskIdOne, find.TaskIdTwo };
|
||||
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => ids.Contains(t.Id), u => new VisitTask() { JudgeVisitTaskId = visitTask.Id });
|
||||
var find = _readingJudgeInfoRepository.Where(t => t.JudgeTaskId == visitTask.Id).FirstOrDefault();
|
||||
|
||||
if (find != null)
|
||||
{
|
||||
var ids = new Guid[] { find.TaskIdOne, find.TaskIdTwo };
|
||||
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => ids.Contains(t.Id), u => new VisitTask() { JudgeVisitTaskId = visitTask.Id });
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 比如 两个任务产生了裁判,然后其中一个人申请了重阅,影响了裁判,需要清理之前任务的上裁判id
|
||||
///
|
||||
///
|
||||
/// 因为申请重阅,退回,里面分有序,无序,情况太多,所以不在那块逻辑修改,不然得加多个地方处理,在这里统一处理
|
||||
/// </summary>
|
||||
/// <param name="context"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public async Task BeforeSave(ITriggerContext<VisitTask> context, CancellationToken cancellationToken)
|
||||
{
|
||||
var visitTask = context.Entity;
|
||||
//裁判任务维护,当裁判任务受到影响的时候,需要清理任务上关联的裁判任务id
|
||||
if (context.ChangeType == ChangeType.Modified)
|
||||
else if (context.ChangeType == ChangeType.Modified)
|
||||
{
|
||||
if (visitTask.ReadingCategory == ReadingCategory.Judge && (visitTask.TaskState == TaskState.Adbandon || visitTask.TaskState == TaskState.HaveReturned))
|
||||
{
|
||||
@@ -64,5 +53,6 @@ namespace IRaCIS.Core.Application.Triggers
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user