Files
jinko.yikatong/Src/Dlhis.ScheduledTask/Common/Services/Implements/HangfireService.cs
2024-11-25 11:58:03 +08:00

63 lines
2.4 KiB
C#

using Dlhis.Entity.Basic.Entity;
using Dlhis.ScheduledTask.Common.Request;
using Dlhis.ScheduledTask.TaskAssignment.Request;
using Hangfire;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Services;
using Kurisu.AspNetCore.Utils;
using Kurisu.AspNetCore.Utils.Extensions;
namespace Dlhis.ScheduledTask.Common.Services.Implements;
public class HangfireService : IHangfireService
{
private readonly RedisCache _redisCache;
private readonly IDbContext _dbContext;
private readonly IJinkoJipService _jinkoJipService;
public HangfireService(RedisCache redisCache, IDbContext dbContext, IJinkoJipService jinkoJipService)
{
_redisCache = redisCache;
_dbContext = dbContext;
_jinkoJipService = jinkoJipService;
}
public async Task CreateSapPersonSyncBackgroundJobAsync(SapNoRequest request)
{
// var jobKey = $"hangfire:background:person:{request.Code}";
//
// using var handler = await _redisCache.LockAsync(jobKey);
// if (handler.Acquired)
// {
// BackgroundJob.Enqueue<IGainfoUpdateService>(x => x.TodoByCodeAsync(request.Code));
// }
}
public async Task CreateSapWerkSyncBackgroundJobAsync(SapNoRequest request)
{
// var jobKey = $"hangfire:background:werk:{request.Code}";
//
// await using var handler = await _redisCache.LockAsync(jobKey);
// if (handler.Acquired)
// {
// var werkInfo = await _dbContext.Queryable<WerkEntity>().Where(x => x.Werk == request.Code).SingleAsync();
// werkInfo.ThrowIfNull("人事范围不存在");
//
// werkInfo.BackgroundJobKey.IsPresent().ThrowIfTrue("任务进行中,无法再次发起同步");
//
// BackgroundJob.Enqueue<IGainfoUpdateService>(x => x.TodoByWerkAsync(request.Code));
// }
}
public async Task FaceUploadToSapAsync(FaceUploadToSapRequest request)
{
// var response = await _jinkoJipService.SyncFaceToSapAsync(request.UserCode, request.Base64);
// if (response.OLX == "S")
// {
// var faceDbContext = _dbContext.ChangeDb("face");
// await faceDbContext.Updateable<GainfoFaceEntity>()
// .SetColumns(x => x.IsSync == true)
// .Where(x => x.UserCode == request.UserCode)
// .ExecuteCommandAsync();
// }
}
}