using Newtonsoft.Json; using TelpoPush.Position.Worker.Models.Enum; using TelpoPush.Position.Worker.Models.MqTemplates; namespace TelpoPush.Position.Worker.Service.Mq { public class MqProcessMessage { private readonly ILogger _logger; private readonly MessageProducer _messageProducer; public MqProcessMessage(ILogger logger, MessageProducer producer) { _logger = logger; _messageProducer = producer; } public async Task ProcessProperty(string imei, BaseModel model, HeadersDto headers) { List ls = new List(); ls.Add(new TopicModel() { Topic = "topic.push.property", Headers = _messageProducer.CreateHeader(new Dictionary { {MqHeader.DataType,headers.DataType.Value } }) }); await _messageProducer.ProduceAsync(ls, model); _logger.LogInformation($"【成功】Third推送(topic.property):IMEI<{imei}>,pushData:{JsonConvert.SerializeObject(model)}"); } public async Task ProcessDataPushServer(string imei, object model, Dictionary headers, string tag) { List ls = new List(); ls.Add(new TopicModel() { Topic = "topic.push", Headers = _messageProducer.CreateHeader(headers) }); await _messageProducer.ProduceAsync(ls, model); _logger.LogInformation($"【{tag}-成功】Third推送(topic.push):IMEI<{imei}>,Header<{JsonConvert.SerializeObject(headers)}>,pushData:{JsonConvert.SerializeObject(model)}"); } public async Task ProcessFenceServer(string imei, object model, Dictionary headers, string tag) { List ls = new List(); ls.Add(new TopicModel() { Topic = "topic.push.fence", Headers = _messageProducer.CreateHeader(headers) }); await _messageProducer.ProduceAsync(ls, model); _logger.LogInformation($"【{tag}-成功】Third推送(topic.push.fence):IMEI<{imei}>,Header<{JsonConvert.SerializeObject(headers)}>,pushData:{JsonConvert.SerializeObject(model)}"); } public async Task ProcessThirdhServer(string imei, object model, Dictionary headers, string tag) { List ls = new List(); ls.Add(new TopicModel() { Topic = "topic.push.third", Headers = _messageProducer.CreateHeader(headers) }); await _messageProducer.ProduceAsync(ls, model); _logger.LogInformation($"【{tag}-成功】Third推送(topic.push.third):IMEI<{imei}>,Header<{JsonConvert.SerializeObject(headers)}>,pushData:{JsonConvert.SerializeObject(model)}"); } } }