using Furion.DatabaseAccessor; using Furion.Schedule; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace FlexJobApi.Core { /// /// 充值用户实名中至待实名 /// public class ResetUserRealInProcessToWait( IRepository rep ) : IJob { private readonly IRepository rep = rep; [UnitOfWork(false)] public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken) { var minTime = DateTime.Now.AddMinutes(-5); var entities = await rep.AsQueryable() .Where(it => it.User.IsReal == false && it.RealStatus == EnumPersonalUserRealStatus.Checking && it.RealInProcessStartTime < minTime) .ToListAsync(); foreach (var entity in entities) { entity.RealStatus = EnumPersonalUserRealStatus.Fail; entity.RealInProcessStartTime = null; entity.RealFailMessage = "已超时"; await rep.UpdateNowAsync(entity); } } } }