39 lines
1.5 KiB
C#
39 lines
1.5 KiB
C#
using IRaCIS.Core.Domain;
|
|
using IRaCIS.Core.Domain._DomainEvent;
|
|
using IRaCIS.Core.Domain.Models;
|
|
using MassTransit;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace IRaCIS.Core.Application.MassTransit.Consumer
|
|
{
|
|
public class SubjectCriterionClaimCancelConsumer(IRepository<VisitTask> _visitTaskRepository) : IConsumer<SubjectCriterionClaimCancelEvent>
|
|
{
|
|
public async Task Consume(ConsumeContext<SubjectCriterionClaimCancelEvent> context)
|
|
{
|
|
|
|
Log.Logger.Warning($"定时任务取消领取!{context.Message.ToJsonStr()}");
|
|
bool isInOrder = context.Message.IsInOrder;
|
|
|
|
if (isInOrder)
|
|
{
|
|
Guid subjectId = (Guid)context.Message.SubjectId;
|
|
|
|
Guid trialReadingCriterionId = (Guid)context.Message.TrialReadingCriterionId;
|
|
|
|
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == subjectId && t.TrialReadingCriterionId == trialReadingCriterionId && t.ReadingTaskState != ReadingTaskState.HaveSigned, u => new VisitTask() { SubjectCriterionClaimUserId = null });
|
|
|
|
}
|
|
else
|
|
{
|
|
Guid id = (Guid)context.Message.VisitTaskId;
|
|
|
|
await _visitTaskRepository.UpdatePartialFromQueryAsync(t => t.Id == id && t.ReadingTaskState != ReadingTaskState.HaveSigned, u => new VisitTask() { DoctorUserId = null }, true);
|
|
}
|
|
}
|
|
}
|
|
}
|