using DataSharing.FwDataExchange;
using DataSharing.Province;
using DataSharing.Share.Consts;
using DataSharing.Share.Dtos.HotlineSetting;
using DataSharing.Share.Dtos.HotlineWeb;
using DataSharing.Share.Dtos.Province.HuiJu;
using DataSharing.Share.Enums;
using Microsoft.Extensions.Logging;
using Quartz;
using XF.Domain.Cache;
using XF.Domain.Repository;
namespace DataSharing.SendTask
{
///
///
///
public class TaskSubmitCaseTotalJob : IJob, IDisposable
{
private readonly ILogger _logger;
private readonly FwClient _fwClient;
private readonly ITypedCache _configurationInformationCache;
private readonly IChannelConfigurationManager _channelConfigurationManager;
private readonly IRepository _dsSendTaskRepository;
///
///
///
///
///
///
///
public TaskSubmitCaseTotalJob( ILogger logger,FwClient fwClient,
ITypedCache configurationInformationCache,
IChannelConfigurationManager channelConfigurationManager,
IRepository dsSendTaskRepository)
{
_logger = logger;
_fwClient = fwClient;
_configurationInformationCache = configurationInformationCache;
_channelConfigurationManager = channelConfigurationManager;
_dsSendTaskRepository = dsSendTaskRepository;
}
public async Task Execute(IJobExecutionContext context)
{
_logger.LogError($"数据汇聚,进来了时间是{DateTime.Now}");
var data = await _fwClient.RequestNoTokenAsync("api/v1/Order/get-orderurge-count", "Get", null);
var areaInfo = _channelConfigurationManager.GetConfigurationCityCode();
SubmitCaseTotalInfo submitCaseTotal = new()
{
AreaCode = areaInfo.AreaCode,
SubmitDate = Convert.ToDateTime(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd 00:00:00"))
};
if (data != null && data.code == 0)
{
submitCaseTotal.CBZL = data.result.Totle;
}
var configurationInformation = await _configurationInformationCache.GetAsync(ConstantSettings.ConfigurationInformationCacheKey, context.CancellationToken);
if (configurationInformation != null)
{
submitCaseTotal.SeatNum = configurationInformation.SeatNum;
submitCaseTotal.SeatHwyNum = configurationInformation.SeatHwyNum;
}
#region 处理请求参数
var configProvince = _channelConfigurationManager.GetConfigurationProvince();
var request = new ProvinceListRequest(configProvince.ClientId, configProvince.ClientSecret);
request.SetData(new List() { submitCaseTotal });
var jsonData = request.ToString();
#endregion
//组装参数
DsSendTask dsSendTask = new()
{
TaskPriority = 0,
TaskType = "SubmitCaseTotal",
HttpMethod = "Post",
Path = "submit_case_total",
PlatformSource = EPlatformSource.Province,
FileJson = null,
Request = jsonData,
GenerationTime = null,
PathType = EPathType.HuiJu
};
await _dsSendTaskRepository.AddAsync(dsSendTask, context.CancellationToken);
}
public void Dispose()
{
}
}
}