|
- using Confluent.Kafka;
- using Newtonsoft.Json;
- using System.Reflection.PortableExecutable;
- using TelpoPush.Fence.Worker.Models.Enum;
- using TelpoPush.Fence.Worker.Models.MqTemplates;
- using TelpoPush.Fence.Worker.Models.PushTemplates;
-
- namespace TelpoPush.Fence.Worker.Service.Mq
- {
- public class MqProcessMessage
- {
- private readonly ILogger<MqProcessMessage> _logger;
- private readonly MessageProducer _messageProducer;
-
- public MqProcessMessage(ILogger<MqProcessMessage> logger, MessageProducer producer)
- {
- _logger = logger;
- _messageProducer = producer;
- }
-
- public async Task ProcessProperty(string imei, BaseModel model, HeadersDto headers)
- {
- List<TopicModel> ls = new List<TopicModel>();
-
- ls.Add(new TopicModel()
- {
- Topic = "topic.push.property",
- Headers = _messageProducer.CreateHeader(new Dictionary<string, int>
- {
- {MqHeader.DataType,headers.DataType.Value }
- })
- });
- await _messageProducer.ProduceAsync(ls, model);
- _logger.LogInformation($"【成功】围栏告警推送(topic.property):IMEI<{imei}>,pushData:{JsonConvert.SerializeObject(model)}");
- }
-
-
- //推送服务
- public async Task ProcessPushService(object model,string imei)
- {
- List<TopicModel> ls = new List<TopicModel>();
- ls.Add(new TopicModel()
- {
- Topic = "topic.push",
- Headers = _messageProducer.CreateHeader(new Dictionary<string, int>
- {
- {MqHeader.DataType,(int)MqDataType.AlarmInfo }
- })
- });
- await _messageProducer.ProduceAsync(ls, model);
-
- _logger.LogInformation($"【成功】围栏告警推送(topic.push):IMEI<{imei}>,pushData:{JsonConvert.SerializeObject(model)}");
- }
-
-
-
- public async Task ProcessWxAlarm(PushWxTemplate model, string fenceId, string timeString)
- {
-
- List<TopicModel> ls = new List<TopicModel>();
- ls.Add(new TopicModel()
- {
- Topic = "topic.push.wx",
- Headers = _messageProducer.CreateHeader(new Dictionary<string, int>
- {
- {MqHeader.DataType,(int)MqDataType.AlarmInfo },
- })
- });
- var objData = new
- {
- messageId = string.Format("{0:yyyyMMddHHmmssffff}", DateTime.Now),
- topic = string.Join(",", ls.Select(e => e.Topic)),
- time = timeString,
- data = model
- };
- await _messageProducer.ProduceAsync(ls, objData);
- _logger.LogInformation($"【成功】围栏告警推送(topic.push.wx):IMEI<{model.imei}>,pushData:{JsonConvert.SerializeObject(model)}");
- }
-
- }
- }
|