username@email.com
2023-10-17 3f4013e9283d1fe29ef40cc8b4d7ee7a590a1590
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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 ;
 
           
        }
    }
 
    
}