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);
}
}
}
}