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 _logger; private readonly ISqlSugarClient _db; private readonly PostMessageServices _InitQMessagePost; public PermissionJob(ILogger 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().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((tx,t)=>tx.TenantId==t.Id).Where((tx,t)=>tx.IsEn==true&&tx.OverTimenew {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 ; } } }