|
@@ -1,101 +0,0 @@
|
|
|
-using MediatR;
|
|
|
-using Sharing.Notifications.HuiJu;
|
|
|
-using Sharing.Province.HuiJu.Send;
|
|
|
-using Sharing.Province.Other;
|
|
|
-using XF.Domain.Dependency;
|
|
|
-
|
|
|
-namespace Sharing.Api
|
|
|
-{
|
|
|
- /// <summary>
|
|
|
- /// 后台定时执行推送
|
|
|
- /// </summary>
|
|
|
- public class PushDataBgService : BackgroundService
|
|
|
- {
|
|
|
- private readonly int nSleep = 1 * 60 * 1000;//1分钟运行一次
|
|
|
- private readonly ILogger<PushDataBgService> _logger;
|
|
|
- private readonly IMediator _mediator;
|
|
|
-
|
|
|
- private readonly IWaitingPushDataRepository _waitingPushDataRepository;
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- ///
|
|
|
- /// </summary>
|
|
|
- /// <param name="logger"></param>
|
|
|
- /// <param name="mediator"></param>
|
|
|
- /// <param name="waitingPushDataRepository"></param>
|
|
|
- public PushDataBgService(ILogger<PushDataBgService> logger, IMediator mediator, IWaitingPushDataRepository waitingPushDataRepository)
|
|
|
- {
|
|
|
- _logger = logger;
|
|
|
- _mediator = mediator;
|
|
|
- _waitingPushDataRepository = waitingPushDataRepository;
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 任务的代码
|
|
|
- /// </summary>
|
|
|
- /// <param name="stoppingToken"></param>
|
|
|
- /// <returns></returns>
|
|
|
- protected override async Task ExecuteAsync(CancellationToken stoppingToken)
|
|
|
- {
|
|
|
- while (!stoppingToken.IsCancellationRequested)
|
|
|
- {
|
|
|
- await PushData();
|
|
|
- await Task.Delay(nSleep, stoppingToken);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- ///
|
|
|
- /// </summary>
|
|
|
- /// <returns></returns>
|
|
|
- public async Task PushData()
|
|
|
- {
|
|
|
- //查询待推送数据
|
|
|
- var listData = await _waitingPushDataRepository
|
|
|
- .Queryable()
|
|
|
- .OrderByDescending(p => p.Priority)
|
|
|
- .ToListAsync();
|
|
|
- if (listData != null&& listData.Count>0)
|
|
|
- {
|
|
|
- List<SubmitCaseProcess> submitCaseProcesses = new(); //服务工单处理过程
|
|
|
- List<SubmitCaseResult> submitCaseResults = new(); //服务工单处理结果
|
|
|
- List<SubmitVisitInfo> submitVisitInfos = new(); //服务工单回访评价
|
|
|
-
|
|
|
- //根据查询出来数据组装推送数据
|
|
|
- foreach (var item in listData)
|
|
|
- {
|
|
|
- switch (item.ServiceInterface)
|
|
|
- {
|
|
|
- case "SubmitCaseProcess"://服务工单处理过程
|
|
|
- var caseProcess = System.Text.Json.JsonSerializer.Deserialize<SubmitCaseProcess>(item.Data);
|
|
|
- if (caseProcess != null) submitCaseProcesses.Add(caseProcess);
|
|
|
- break;
|
|
|
- case "SubmitCaseResult": //服务工单处理结果
|
|
|
- var caseResult = System.Text.Json.JsonSerializer.Deserialize<SubmitCaseResult>(item.Data);
|
|
|
- if (caseResult != null) submitCaseResults.Add(caseResult);
|
|
|
- break;
|
|
|
- case "SubmitVisitInfo"://服务工单回访评价
|
|
|
- var visitInfo = System.Text.Json.JsonSerializer.Deserialize<SubmitVisitInfo>(item.Data);
|
|
|
- if (visitInfo != null) submitVisitInfos.Add(visitInfo);
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //推送对应消息
|
|
|
- //服务工单处理过程
|
|
|
- if (submitCaseProcesses != null && submitCaseProcesses.Count > 0)
|
|
|
- await _mediator.Publish(new SubmitCaseProcessNotification(submitCaseProcesses));
|
|
|
-
|
|
|
- //服务工单处理结果
|
|
|
- if (submitCaseResults != null && submitCaseResults.Count > 0)
|
|
|
- await _mediator.Publish(new SubmitCaseResultNotification(submitCaseResults));
|
|
|
-
|
|
|
- //服务工单回访评价
|
|
|
- if (submitVisitInfos != null && submitVisitInfos.Count > 0)
|
|
|
- await _mediator.Publish(new SubmitVisitInfoNotification(submitVisitInfos));
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|