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
|
{
|
/// <summary>
|
/// 充值用户实名中至待实名
|
/// </summary>
|
public class ResetUserRealInProcessToWait(
|
IRepository<UserAuth> rep
|
) : IJob
|
{
|
private readonly IRepository<UserAuth> 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);
|
}
|
}
|
}
|
}
|