using System; using System.Threading.Tasks; using DeviceDetectorNET.Parser.Device; using DotNetCore.CAP; using JiShe.CollectBus.Common.Enums; using JiShe.CollectBus.Common.Models; using JiShe.CollectBus.Devices; using JiShe.CollectBus.MessageReceiveds; using JiShe.CollectBus.Protocol.Contracts; using JiShe.CollectBus.Protocol.Contracts.Interfaces; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using TouchSocket.Sockets; using Volo.Abp.Caching; using Volo.Abp.Domain.Repositories; namespace JiShe.CollectBus.Subscribers { /// /// 定时抄读任务消息消费订阅 /// public class WorkerSubscriberAppService : CollectBusAppService, IWorkerSubscriberAppService,ICapSubscribe { private readonly ILogger _logger; private readonly ITcpService _tcpService; private readonly IServiceProvider _serviceProvider; /// /// Initializes a new instance of the class. /// /// The logger. /// The TCP service. /// The service provider. public WorkerSubscriberAppService(ILogger logger, ITcpService tcpService, IServiceProvider serviceProvider) { _logger = logger; _tcpService = tcpService; _serviceProvider = serviceProvider; } /// /// 一分钟定时抄读任务消息消费订阅 /// /// /// [CapSubscribe(ProtocolConst.SubscriberWorkerOneMinuteIssuedEventName)] public async Task ScheduledMeterOneMinuteReadingIssuedEvent(IssuedEventMessage receivedMessage) { _logger.LogInformation("1分钟采集电表数据下行消息消费队列开始处理"); var protocolPlugin = _serviceProvider.GetKeyedService("StandardProtocolPlugin"); if (protocolPlugin == null) { _logger.LogError("【1分钟采集电表数据下行消息消费队列开始处理】协议不存在!"); } else { await _tcpService.SendAsync(receivedMessage.ClientId, receivedMessage.Message); } } /// /// 5分钟采集电表数据下行消息消费订阅 /// /// /// [CapSubscribe(ProtocolConst.SubscriberWorkerOneMinuteIssuedEventName)] public async Task ScheduledMeterFiveMinuteReadingIssuedEvent(IssuedEventMessage receivedMessage) { _logger.LogInformation("5分钟采集电表数据下行消息消费队列开始处理"); var protocolPlugin = _serviceProvider.GetKeyedService("StandardProtocolPlugin"); if (protocolPlugin == null) { _logger.LogError("【5分钟采集电表数据下行消息消费队列开始处理】协议不存在!"); } else { await _tcpService.SendAsync(receivedMessage.ClientId, receivedMessage.Message); } } /// /// 15分钟采集电表数据下行消息消费订阅 /// /// /// [CapSubscribe(ProtocolConst.SubscriberWorkerOneMinuteIssuedEventName)] public async Task ScheduledMeterFifteenMinuteReadingIssuedEvent(IssuedEventMessage receivedMessage) { _logger.LogInformation("15分钟采集电表数据下行消息消费队列开始处理"); var protocolPlugin = _serviceProvider.GetKeyedService("StandardProtocolPlugin"); if (protocolPlugin == null) { _logger.LogError("【15分钟采集电表数据下行消息消费队列开始处理】协议不存在!"); } else { await _tcpService.SendAsync(receivedMessage.ClientId, receivedMessage.Message); } } } }