using DocumentServiceApi.InitQMessage;
|
using DocumentServiceAPI.Model.Permissions;
|
using DocumentServiceAPI.Model.UserInfoModel;
|
using Furion.Schedule;
|
using Microsoft.Extensions.Logging;
|
using Npgsql.TypeHandlers;
|
using SqlSugar;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace DocumentServiceAPI.Job
|
{
|
public class PermissionJob : IJob
|
{
|
private readonly ILogger<PermissionJob> _logger;
|
private readonly ISqlSugarClient _db;
|
private readonly PostMessageServices _InitQMessagePost;
|
public PermissionJob(ILogger<PermissionJob> logger , ISqlSugarClient db,PostMessageServices postMessageServices)
|
{
|
_logger = logger;
|
_db = db;
|
_InitQMessagePost = postMessageServices;
|
}
|
|
public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
|
{
|
|
_logger.LogInformation("执行了任务ExecuteAsync");
|
var TimeOutPList= await _db.Queryable<TenantPermissions>().Where(x => x.IsEn && x.OverTime < DateTime.Now).ToListAsync();
|
foreach (var item in TimeOutPList)
|
{
|
//设置权限为无效
|
item.IsEn = false;
|
|
}
|
await _db.Updateable(TimeOutPList).UpdateColumns(it => new { it.IsEn }).ExecuteCommandAsync();
|
|
var tPermissions= await _db.Queryable< TenantPermissions >().LeftJoin<TenantInfo>((tx,t)=>tx.TenantId==t.Id).Where((tx,t)=>tx.IsEn==true&&tx.OverTime<DateTime.Now.AddDays(15)).Select((tx,t)=>new {tx,t}).ToListAsync();
|
foreach (var t in tPermissions)
|
{
|
TimeSpan difference = t.tx.OverTime - DateTime.Now;
|
int data= difference.Days;
|
if (data == 15|| data == 10 ||data==3)
|
{
|
//第15天,10天,3天发送短信
|
_InitQMessagePost.PostDelayMessage(new MessAgeOption
|
{
|
|
Title="标书管理系统消息",
|
isNeedSMS = true,
|
PhoneCode = t.t.ItCode,
|
UserID = t.t.ZcUserID,
|
MsgContent = $"您的 标书管理系统将于{DateTime.Now.ToString("yyyy MM dd")}日到期,请尽快与客户经理联系【四川政采招投标咨询有限公司】",
|
SMSMsgContent = $"您的 标书管理系统将于{DateTime.Now.ToString("yyyy MM dd")}日到期,请尽快与客户经理联系【四川政采招投标咨询有限公司】"
|
}, DateTime.Now.AddHours(8));
|
}
|
|
}
|
|
return ;
|
|
|
}
|
}
|
|
|
}
|