123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646 |
- using AutoMapper;
- using LinqKit;
- using Microsoft.AspNetCore.Http;
- using Microsoft.Extensions.Configuration;
- using Newtonsoft.Json;
- using Ropin.Inspection.Common;
- using Ropin.Inspection.Common.Accessor.Interface;
- using Ropin.Inspection.Common.Helper;
- using Ropin.Inspection.Model;
- using Ropin.Inspection.Model.Entities;
- using Ropin.Inspection.Model.ViewModel;
- using Ropin.Inspection.Repository;
- using Ropin.Inspection.Repository.SYS.Interface;
- using Ropin.Inspection.Service.Interface;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Net.Http;
- using System.Net.NetworkInformation;
- using System.Threading.Tasks;
- namespace Ropin.Inspection.Service
- {
- public class PushMsgService : IPushMsgService
- {
- private readonly IClaimsAccessor _claims;
- private readonly IMapper _mapper;
- private readonly IHttpContextAccessor _httpContextAccessor;
- private readonly IHttpClientFactory _httpClientFactory;
- private readonly ITsysUserRepository _tsysUserRepository;
- private readonly ITmtnPushMsgToRepository _tmtnPushMsgToRepository;
- private readonly ITmtnPushMsgResultRepository _tmtnPushMsgResultRepository;
- private readonly ITbdmCodeDetailRepository _tbdmCodeDetailRepository;
- private readonly ITdevDevStoreRepository _tdevDevStoreRepository;
- private readonly ITsysUserService _tsysUserService;
- private readonly ITsysMessageRepository _messageRepository;
- private readonly ITsysMessageFileRepository _tsysMessageFileRepository;
- private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(PushMsgService));
- private string IsSendEmail = "true";
- public PushMsgService(IClaimsAccessor claims,
- ITmtnPushMsgToRepository tmtnPushMsgToRepository,
- ITbdmCodeDetailRepository tbdmCodeDetailRepository,
- ITmtnPushMsgResultRepository tmtnPushMsgResultRepository,
- ITdevDevStoreRepository tdevDevStoreRepository,
- IMapper mapper,
- ITsysUserService tsysUserService,
- IHttpClientFactory httpClientFactory,
- ITsysUserRepository tsysUserRepository
- , IConfiguration configuration, ITsysMessageRepository messageRepository, ITsysMessageFileRepository tsysMessageFileRepository)
- {
- _mapper = mapper;
- _claims = claims;
- _httpClientFactory = httpClientFactory;
- _tsysUserRepository = tsysUserRepository;
- _tmtnPushMsgToRepository = tmtnPushMsgToRepository;
- _tbdmCodeDetailRepository = tbdmCodeDetailRepository;
- _tmtnPushMsgResultRepository = tmtnPushMsgResultRepository;
- _tdevDevStoreRepository = tdevDevStoreRepository;
- _tsysUserService = tsysUserService;
- _messageRepository = messageRepository;
- _tsysMessageFileRepository= tsysMessageFileRepository;
- string IsEmail = configuration.GetSection("IsSendEmail")?.Value;
- IsSendEmail = !string.IsNullOrEmpty(IsEmail)? IsEmail :"true";
- }
- public async Task<bool> PushAlarmMsgAsync(TpushMsgModel pushModel,string Subject=null,RabbitMQModel rabbitMQModel=null)
- {
- try
- {
- List<MessageFile> messageFiles = pushModel.FileList;
- pushModel.FileList = null;
- log.Info($"发送消息-Begin");
- log.Info($"发送消息-接收数据【{JsonConvert.SerializeObject(pushModel)}】");
- int msgStatus = DataDictionaryHelper.GetMsgStatus(pushModel.C_MsgTypeCode);
- pushModel.msgStatus = msgStatus;
- string createBy = "6e864cbc-5252-11ec-8681-fa163e02b3e4";
- var devStore = await _tdevDevStoreRepository.GetByIdAsync(pushModel.C_DevStoreCode);
- if(devStore == null) return await Task.FromResult(false);
- pushModel.DevName = devStore.C_Name;
- pushModel.DevNumber = devStore.C_NumberCode;
- var predicate = PredicateBuilder.New<TMTN_PushMsgTo>(true);//查询条件,推荐后台使用这种方式灵活筛选
- if (!string.IsNullOrEmpty(pushModel.C_DevStoreCode))
- {
- predicate = predicate.And(i => i.C_DevStoreCode.Equals(pushModel.C_DevStoreCode));
- }
- if (!string.IsNullOrEmpty(pushModel.C_MsgTypeCode))
- {
- predicate = predicate.And(i => i.C_MsgTypeCode.Equals(pushModel.C_MsgTypeCode));
- }
- IEnumerable<TMTN_PushMsgTo> pushMsgTo = await _tmtnPushMsgToRepository.GetByConditionAsync(predicate);
- IList<TMTN_PushMsgTo> pushMsgTolist = pushMsgTo.ToList();
- IEnumerable<TSYS_User> users = await _tsysUserRepository.GetByConditionAsync(x=>x.C_Status == "1");
- IList<TSYS_User> userList = users.ToList();
- IEnumerable<TBDM_CodeDetail> tBDMCodeDetail = await _tbdmCodeDetailRepository.GetAllAsync();
- IList<TBDM_CodeDetail> tBDMCodeDetailList = tBDMCodeDetail.ToList();
- List<string> sendUserWechatIDList = new List<string>();
- List<TMTN_PushMsgResult> pushMsgResultList = new List<TMTN_PushMsgResult>();
- log.Info($"发送消息-pushMsgTolist【{JsonConvert.SerializeObject(pushMsgTolist)}】");
- foreach (var pushMsgToItem in pushMsgTolist)
- {
- var user = userList.Where(x => x.C_UserID.ToString() == pushMsgToItem.C_PushPersonCode)?.FirstOrDefault();
- if (user is null)
- continue;
- if (string.IsNullOrWhiteSpace(pushModel.UserName))
- {
- var creadUser = await _tsysUserService.GetByIdAsync(_claims.ApiUserId);
- createBy = _claims.ApiUserId.ToString();
- pushModel.UserName = creadUser?.C_Name;
- pushModel.UserMobile = creadUser?.C_Mobile;
- }
-
- if (pushMsgToItem.C_PushTypeCode == "PUSH_TYPE_001")//Email
- {
- if (!string.IsNullOrEmpty(user.C_Email))
- {
- if (!string.IsNullOrEmpty(user.C_Email))
- {
- switch (pushModel.C_MsgTypeCode)
- {
- case "MSG_TYPE_001"://通知维修消息
- break;
- case "MSG_TYPE_002"://通知运维消息
- break;
- case "MSG_TYPE_003"://通知巡检消息
- break;
- case "MSG_TYPE_004"://巡检异常消息
- break;
- case "MSG_TYPE_005"://异常消除消息
- break;
- case "MSG_TYPE_006"://维修确认消息
- break;
- case "MSG_TYPE_007"://维修取消消息
- break;
- case "MSG_TYPE_008"://维修完成消息
- break;
- case "MSG_TYPE_009"://运维取消消息
- break;
- case "MSG_TYPE_010"://异常确认消息
- break;
- case "MSG_TYPE_011"://设备启停消息
- break;
- case "MSG_TYPE_012"://设备点报警
- break;
- case "MSG_TYPE_013"://设备点报警取消
- break;
- case "MSG_TYPE_014"://正在维修消息
- break;
- case "MSG_TYPE_015"://维修返工消息
- break;
- case "MSG_TYPE_016"://维修完成确认
- break;
- default:
- break;
- }
- string msg =
- "<p><td>设备编号:</td>" + pushModel.DevNumber + "</p>" +
- "<p><td>设备名称:</td>" + pushModel.DevName + "</p>" +
- "<p><td>消息内容:</td>" + pushModel.Msg + "</p>" +
- "<p><td>设备地址:</td>" + pushModel.DevAddress + "</p>" +
- "<p><td> 报警时间:</td> " + pushModel.CreateOn + "</p>" +
- "<p><td> 上报人:</td> " + pushModel.UserName + "</p>"+
- "<p><td> 上报人手机号:</td> " + pushModel.UserMobile + "</p>"
- ;
- if (IsSendEmail== "true")
- {
- var bols= EmailHelper.SendEmail(user.C_Email, tBDMCodeDetailList.Where(i => i.C_Code == pushMsgToItem.C_MsgTypeCode).Select(x => x.C_Name).FirstOrDefault(), pushModel.Subject, msg);
- if (!bols)
- {
- log.Info($"发送邮件失败【C_Email={user.C_Email},C_MsgTypeCode={pushMsgToItem.C_MsgTypeCode} ,C_DevStoreCode={pushModel.C_DevStoreCode}】");
- }
- }
- }
- }
- pushMsgResultList.Add(new TMTN_PushMsgResult
- {
- C_ID = Guid.NewGuid().ToString(),
- C_PushMsgToCode = pushMsgToItem.C_PushPersonCode,
- //C_Content = "消息主题:" + pushModel.Subject + " 设备编号:" + pushModel.DevNumber + " 设备名称:" + pushModel.DevName + " 设备地址:" + pushModel.DevAddress + " 消息内容:" + pushModel.Msg,
- C_Content = JsonConvert.SerializeObject(pushModel),
- C_PushTypeCode = pushMsgToItem.C_PushTypeCode,
- C_DevStoreCode = pushMsgToItem.C_DevStoreCode,
- C_MsgTypeCode = pushModel.C_MsgTypeCode,
- C_Subject = Subject,
- C_CreateBy = new Guid(createBy),
- D_CreateOn = DateTime.Now,
- C_Status = "1"
- }) ;
- }
- if (pushMsgToItem.C_PushTypeCode == "PUSH_TYPE_002")//wx
- {
- //if (!string.IsNullOrEmpty(user.C_WechatID)&& IsSendEmail == "true")
- //{
- // if (!sendUserWechatIDList.Contains(user.C_WechatID))
- // sendUserWechatIDList.Add(user.C_WechatID);
- //}
- if (!string.IsNullOrEmpty(user.C_WxopenID) && IsSendEmail == "true")
- {
- if (!sendUserWechatIDList.Contains(user.C_WxopenID))
- sendUserWechatIDList.Add(user.C_WxopenID);
- }
- pushMsgResultList.Add(new TMTN_PushMsgResult
- {
- C_ID = Guid.NewGuid().ToString(),
- C_PushMsgToCode = pushMsgToItem.C_PushPersonCode,
- //C_Content = "消息主题:" + pushModel.Subject + " 设备编号:" + pushModel.DevNumber + " 设备名称:" + pushModel.DevName + " 设备地址:" + pushModel.DevAddress + " 消息内容:" + pushModel.Msg,
- C_Content = JsonConvert.SerializeObject(pushModel),
- C_PushTypeCode = pushMsgToItem.C_PushTypeCode,
- C_DevStoreCode = pushMsgToItem.C_DevStoreCode,
- C_MsgTypeCode = pushModel.C_MsgTypeCode,
- C_Subject = Subject,
- C_CreateBy = new Guid(createBy),
- D_CreateOn = DateTime.Now,
- C_Status = "1"
- });
- }
- }
- log.Info($"发送消息-sendUserWechatIDList【{JsonConvert.SerializeObject(sendUserWechatIDList)}】pushMsgResultList=【{JsonConvert.SerializeObject(pushMsgResultList)}】");
- string GenerationCode = "";
- switch (pushModel.GenerationType)
- {
- case 1: GenerationCode = pushModel.C_DevStoreCode; break;
- case 2: GenerationCode = _claims.ApiUserId.ToString(); break;
- case 3: GenerationCode = "6e864cbc-5252-11ec-8681-fa163e02b3e4"; break;
- }
- TSYS_Message message = new TSYS_Message
- {
- C_ID = Guid.NewGuid().ToString(),
- C_LicenseCode= "SYSTEM",
- C_Content = JsonConvert.SerializeObject(pushModel),
- C_MsgTypeCode = pushModel.C_MsgTypeCode,
- C_Subject = Subject,
- D_MsgCreateOn = Convert.ToDateTime(pushModel.CreateOn),
- C_GenerationCode= GenerationCode,
- I_GenerationType = pushModel.GenerationType,
- I_MsgStatus = pushModel.msgStatus,
- C_DevStoreCode = pushModel.C_DevStoreCode,
- C_Remark = "",
- C_CreateBy = createBy,
- C_Creator = "Api",
- D_CreateOn = DateTime.Now,
- C_Status = "1"
- };
- List<TSYS_MessageFile> FileList = null;
- if (messageFiles != null)
- {
- FileList=new List<TSYS_MessageFile>();
- foreach (var item in messageFiles)
- {
- TSYS_MessageFile mesFile = new TSYS_MessageFile
- {
- C_ID = Guid.NewGuid().ToString(),
- C_MessageCode= message.C_ID,
- C_Url=item.Url,
- C_Text = item.Text,
- C_Type = item.Type,
- C_CreateBy = createBy,
- D_CreateOn = DateTime.Now,
- C_Status = "1"
- };
- FileList.Add(mesFile);
- }
- }
- if (sendUserWechatIDList.Any())
- {
- try
- {
- #region 一次性订阅 -不用了【2025-2-11】
- //switch (pushModel.C_MsgTypeCode)
- //{
- // case "MSG_TYPE_001"://通知维修消息
- // //var MSG_TYPE_001 = new
- // //{
- // // character_string19 = new { value = pushModel.DevNumber ?? "" },
- // // name4 = new { value = pushModel.UserName ?? "" },
- // // thing7 = new { value = pushModel.Subject ?? "" },
- // // time15 = new { value = pushModel.DevName ?? "" },
- // // thing16 = new { value = pushModel.Msg ?? "" }
- // //};
- // //new WeChatHelper(_httpClientFactory).PushMessageToUser(sendUserWechatIDList, MSG_TYPE_001, "jGFacWkS9keOmvN71DN-7qX-wR30NdqOuQaPSNIMfnk");//
- // var MSG_TYPE_001 = new
- // {
- // character_string1 = new { value = pushModel.DevNumber ?? "" },
- // thing2 = new { value = pushModel.DevName ?? "" },
- // thing16 = new { value = pushModel.Subject ?? "" },
- // time5 = new { value = DateTime.Now.ToString("yyyy-MM-dd hh:mm") },
- // thing6 = new { value = pushModel.Msg ?? "" }
- // };
- // new WeChatHelper(_httpClientFactory).PushMessageToUser(sendUserWechatIDList, MSG_TYPE_001);//
- // break;
- // case "MSG_TYPE_002"://通知运维消息
- // //var MSG_TYPE_002 = new
- // //{
- // // character_string19 = new { value = pushModel.DevNumber ?? "" },
- // // name4 = new { value = pushModel.UserName ?? "" },
- // // thing7 = new { value = pushModel.Subject ?? "" },
- // // time15 = new { value = pushModel.DevName ?? "" },
- // // thing16 = new { value = pushModel.Msg ?? "" }
- // //};
- // //new WeChatHelper(_httpClientFactory).PushMessageToUser(sendUserWechatIDList, MSG_TYPE_002, "jGFacWkS9keOmvN71DN-7qX-wR30NdqOuQaPSNIMfnk");//
- // var MSG_TYPE_002 = new
- // {
- // character_string1 = new { value = pushModel.DevNumber ?? "" },
- // thing2 = new { value = pushModel.DevName ?? "" },
- // thing16 = new { value = pushModel.Subject ?? "" },
- // time5 = new { value = DateTime.Now.ToString("yyyy-MM-dd hh:mm") },
- // thing6 = new { value = pushModel.Msg ?? "" }
- // };
- // new WeChatHelper(_httpClientFactory).PushMessageToUser(sendUserWechatIDList, MSG_TYPE_002);//
- // break;
- // case "MSG_TYPE_003"://通知巡检消息
- // //var MSG_TYPE_003 = new
- // //{
- // // character_string19 = new { value = pushModel.DevNumber ?? "" },
- // // name4 = new { value = pushModel.UserName ?? "" },
- // // thing7 = new { value = pushModel.Subject ?? "" },
- // // time15 = new { value = pushModel.DevName ?? "" },
- // // thing16 = new { value = pushModel.Msg ?? "" }
- // //};
- // //new WeChatHelper(_httpClientFactory).PushMessageToUser(sendUserWechatIDList, MSG_TYPE_003, "jGFacWkS9keOmvN71DN-7qX-wR30NdqOuQaPSNIMfnk");//
- // var MSG_TYPE_003 = new
- // {
- // character_string1 = new { value = pushModel.DevNumber ?? "" },
- // thing2 = new { value = pushModel.DevName ?? "" },
- // thing16 = new { value = pushModel.Subject ?? "" },
- // time5 = new { value = DateTime.Now.ToString("yyyy-MM-dd hh:mm") },
- // thing6 = new { value = pushModel.Msg ?? "" }
- // };
- // new WeChatHelper(_httpClientFactory).PushMessageToUser(sendUserWechatIDList, MSG_TYPE_003);//
- // break;
- // case "MSG_TYPE_004"://巡检异常消息
- // var MSG_TYPE_004 = new
- // {
- // character_string1 = new { value = pushModel.DevNumber ?? "" },
- // thing2 = new { value = pushModel.DevName ?? "" },
- // thing16 = new { value = pushModel.Subject ?? "" },
- // time5 = new { value = DateTime.Now.ToString("yyyy-MM-dd hh:mm") },
- // thing6 = new { value = pushModel.Msg ?? "" }
- // };
- // new WeChatHelper(_httpClientFactory).PushMessageToUser(sendUserWechatIDList, MSG_TYPE_004);
- // break;
- // case "MSG_TYPE_005"://异常消除消息
- // var MSG_TYPE_005 = new
- // {
- // character_string1 = new { value = pushModel.DevNumber ?? "" },
- // thing2 = new { value = pushModel.DevName ?? "" },
- // thing16 = new { value = pushModel.Subject ?? "" },
- // time5 = new { value = DateTime.Now.ToString("yyyy-MM-dd hh:mm") },
- // thing6 = new { value = pushModel.Msg ?? "" }
- // };
- // new WeChatHelper(_httpClientFactory).PushMessageToUser(sendUserWechatIDList, MSG_TYPE_005);
- // break;
- // case "MSG_TYPE_006"://维修确认消息
- // var MSG_TYPE_006 = new
- // {
- // character_string1 = new { value = pushModel.DevNumber ?? "" },
- // thing2 = new { value = pushModel.DevName ?? "" },
- // thing16 = new { value = pushModel.Subject ?? "" },
- // time5 = new { value = DateTime.Now.ToString("yyyy-MM-dd hh:mm") },
- // thing6 = new { value = pushModel.Msg ?? "" }
- // };
- // new WeChatHelper(_httpClientFactory).PushMessageToUser(sendUserWechatIDList, MSG_TYPE_006);
- // break;
- // case "MSG_TYPE_007"://维修取消消息
- // var MSG_TYPE_007 = new
- // {
- // character_string1 = new { value = pushModel.DevNumber ?? "" },
- // thing2 = new { value = pushModel.DevName ?? "" },
- // thing16 = new { value = pushModel.Subject ?? "" },
- // time5 = new { value = DateTime.Now.ToString("yyyy-MM-dd hh:mm") },
- // thing6 = new { value = pushModel.Msg ?? "" }
- // };
- // new WeChatHelper(_httpClientFactory).PushMessageToUser(sendUserWechatIDList, MSG_TYPE_007);
- // break;
- // case "MSG_TYPE_008"://维修完成消息
- // case "MSG_TYPE_014"://正在维修消息
- // case "MSG_TYPE_015"://维修返工消息
- // case "MSG_TYPE_016"://维修完成确认
- // var MSG_TYPE_008 = new
- // {
- // character_string1 = new { value = pushModel.DevNumber ?? "" },
- // thing2 = new { value = pushModel.DevName ?? "" },
- // thing16 = new { value = pushModel.Subject ?? "" },
- // time5 = new { value = DateTime.Now.ToString("yyyy-MM-dd hh:mm") },
- // thing6 = new { value = pushModel.Msg ?? "" }
- // };
- // new WeChatHelper(_httpClientFactory).PushMessageToUser(sendUserWechatIDList, MSG_TYPE_008);
- // break;
- // case "MSG_TYPE_009"://运维取消消息
- // var MSG_TYPE_009 = new
- // {
- // character_string1 = new { value = pushModel.DevNumber ?? "" },
- // thing2 = new { value = pushModel.DevName ?? "" },
- // thing16 = new { value = pushModel.Subject ?? "" },
- // time5 = new { value = DateTime.Now.ToString("yyyy-MM-dd hh:mm") },
- // thing6 = new { value = pushModel.Msg ?? "" }
- // };
- // new WeChatHelper(_httpClientFactory).PushMessageToUser(sendUserWechatIDList, MSG_TYPE_009);
- // break;
- // case "MSG_TYPE_010"://异常确认消息
- // var MSG_TYPE_010 = new
- // {
- // character_string1 = new { value = pushModel.DevNumber ?? "" },
- // thing2 = new { value = pushModel.DevName ?? "" },
- // thing16 = new { value = pushModel.Subject ?? "" },
- // time5 = new { value = DateTime.Now.ToString("yyyy-MM-dd hh:mm") },
- // thing6 = new { value = pushModel.Msg ?? "" }
- // };
- // new WeChatHelper(_httpClientFactory).PushMessageToUser(sendUserWechatIDList, MSG_TYPE_010);
- // break;
- // case "MSG_TYPE_011"://设备启停消息
- // var MSG_TYPE_011 = new
- // {
- // character_string1 = new { value = pushModel.DevNumber ?? "" },
- // thing2 = new { value = pushModel.DevName ?? "" },
- // thing16 = new { value = pushModel.Subject ?? "" },
- // time5 = new { value = DateTime.Now.ToString("yyyy-MM-dd hh:mm") },
- // thing6 = new { value = pushModel.Msg ?? "" }
- // };
- // new WeChatHelper(_httpClientFactory).PushMessageToUser(sendUserWechatIDList, MSG_TYPE_011);
- // break;
- // case "MSG_TYPE_012"://设备点报警
- // var MSG_TYPE_012 = new
- // {
- // character_string1 = new { value = pushModel.DevNumber ?? "" },
- // thing2 = new { value = pushModel.DevName ?? "" },
- // thing16 = new { value = pushModel.Subject ?? "" },
- // time5 = new { value = DateTime.Now.ToString("yyyy-MM-dd hh:mm") },
- // thing6 = new { value = pushModel.Msg ?? "" }
- // };
- // new WeChatHelper(_httpClientFactory).PushMessageToUser(sendUserWechatIDList, MSG_TYPE_012);
- // break;
- // case "MSG_TYPE_013"://设备点报警取消
- // var MSG_TYPE_013 = new
- // {
- // character_string1 = new { value = pushModel.DevNumber ?? "" },
- // thing2 = new { value = pushModel.DevName ?? "" },
- // thing16 = new { value = pushModel.Subject ?? "" },
- // time5 = new { value = DateTime.Now.ToString("yyyy-MM-dd hh:mm") },
- // thing6 = new { value = pushModel.Msg ?? "" }
- // };
- // new WeChatHelper(_httpClientFactory).PushMessageToUser(sendUserWechatIDList, MSG_TYPE_013);
- // break;
- // case "MSG_TYPE_019"://上报报警
- // case "MSG_TYPE_020"://报警取消
- // case "MSG_TYPE_021"://报警确认
- // case "MSG_TYPE_022"://报警完成
- // var MSG_TYPE_020 = new
- // {
- // character_string1 = new { value = pushModel.DevNumber ?? "" },
- // thing2 = new { value = pushModel.DevName ?? "" },
- // thing16 = new { value = pushModel.Subject ?? "" },
- // time5 = new { value = DateTime.Now.ToString("yyyy-MM-dd hh:mm") },
- // thing6 = new { value = pushModel.Msg ?? "" }
- // };
- // new WeChatHelper(_httpClientFactory).PushMessageToUser(sendUserWechatIDList, MSG_TYPE_020);
- // break;
- // default:
- // break;
- //}
- #endregion
- string typeName = tBDMCodeDetailList.Where(i => i.C_Code == pushModel.C_MsgTypeCode).Select(x => x.C_Name).FirstOrDefault();
- #region 长期订阅 【2025-2-11】
- //var content = new
- //{
- // character_string1 = new { value = devStore.C_NumberCode ?? "" },
- // time2 = new { value = DateTime.Now.ToString("yyyy-MM-dd hh:mm") },
- // short_thing3 = new { value = typeName ?? "" }
- //};
- //new WeChatHelper(_httpClientFactory).PushMessageToUser(sendUserWechatIDList, content, WXConstModel.WatchHealthAlarm_TemplateId);
- #endregion
- #region 公众号模板【2025-3-5】
- string msg = pushModel.Msg;
- if (msg.Length>20)
- {
- msg=msg.Substring(0,17)+"...";
- }
- string time = DateTime.Now.ToString("yyyy-MM-dd HH:mm");
- if (!string.IsNullOrEmpty(pushModel.CreateOn))
- {
- time=Convert.ToDateTime(pushModel.CreateOn).ToString("yyyy-MM-dd HH:mm");
- }
- #region //_wP22WQxAlfYGfS8zlnHTl_-KgKS8j_FP5HDeqfsPtU
- //设备编号{ { character_string2.DATA} }
- //设备名称{ { thing1.DATA} }
- //关闭状态{ { thing3.DATA} }
- //关闭时间{ { time4.DATA} }
- //var data = new
- //{
- // thing1 = new { value = devStore.C_Name }, //异常位置
- // character_string2 = new { value = devStore.C_NumberCode },//异常点位
- // thing3 = new { value = typeName }, //上报人
- // time4 = new { value = pushModel.CreateOn}//上报时间
- //};
- #endregion
- #region 7eGjzIBAyysTOLfcn-oqkpOCEL_My5ItXHkd_DdniGw
- //设备名称{ { thing2.DATA} }
- //设备编号{ { character_string20.DATA} }
- //报警时间{ { time4.DATA} }
- //报警内容{ { thing5.DATA} }
- var data = new
- {
- thing2 = new { value = devStore.C_Name }, //异常位置
- character_string20 = new { value = devStore.C_NumberCode },//异常点位
- thing5 = new { value = msg }, //上报人
- time4 = new { value = time }//上报时间
- };
- #endregion
- var row = new WeChatHelper(_httpClientFactory).PushGZHMessageToUser(sendUserWechatIDList, WXConstModel.GZHDevAlarmTemplateId, "", data, "", "");
- #endregion
- }
- catch (Exception ex)
- {
- log.Info($" 发送消息-WeChatHelper-发送异常【C_MsgTypeCode={pushModel.C_MsgTypeCode}】 异常信息:{ex.Message}");
- throw;
- }
- }
- if (pushMsgResultList.Any())
- {
- _messageRepository.Create(message);
- bool messResult = await _messageRepository.SaveAsync();
- if (messResult)
- {
- if (FileList!=null&& FileList.Count>0)
- {
- int fileSaveResult = await _tsysMessageFileRepository.CreateRangeAsync(FileList);
- }
- //await _tmtnPushMsgResultRepository.CreateRangeAsync(pushMsgResultList);
- foreach (var content in pushMsgResultList)
- {
- try
- {
- content.C_MessageCode = message.C_ID;
- _tmtnPushMsgResultRepository.Create(content);
- bool bols = await _tmtnPushMsgResultRepository.SaveAsync();
- }
- catch (Exception ex)
- {
- log.Info($" 发送消息-pushMsgResultList-TMTN_PushMsgResult-保存异常【数据:{JsonConvert.SerializeObject(content)}】 异常信息:{ex.Message}");
- Console.WriteLine(ex.Message);
- }
- }
- //
- if (pushModel.C_MsgTypeCode == "MSG_TYPE_012" && rabbitMQModel != null)
- {
- rabbitMQModel.msgStr = JsonConvert.SerializeObject(message);
- bool bol = await RabbitMQHelper.SnedRabbitMQ_ExchangeDirect(rabbitMQModel);
- if (!bol)
- {
- log.Info($" 发送消息-[MSG_TYPE_012]发送RabbitMQ消息失败【TMTN_PushMsgResult:{rabbitMQModel.msgStr}】");
- }
- }
- }
- else
- {
- log.Info($"发送消息-TSYS_Message 数据添加失败【{JsonConvert.SerializeObject(message)}】");
- }
- }
- log.Info($"发送消息-END");
- return await Task.FromResult(true);
- }
- catch (Exception ex)
- {
- log.Info($"发送消息-Error【{ex.Message}】");
- return await Task.FromResult(false);
- }
- }
-
- public async Task PushRecordMsgAsync(string type,TispRecordItemAlarmDetailViewModel viewModel)
- {
- try
- {
- IEnumerable<TSYS_User> users = await _tsysUserRepository.GetByRecordItemCodeAsync(viewModel.C_ID.ToString());
- if (!users.Any())
- {
- return;
- }
- //List<string> openIds = users.Where(u => u.C_WechatID != null).Select(i => i.C_WechatID).ToList();
- //var content = new
- //{
- // thing2 = new { value = itemDetail.ReportUserName ?? "" },
- // time4 = new { value = DateTime.Now.ToString("yyyy-MM-dd hh:mm") },
- // thing5 = new { value = "巡检异常取消" ?? "" },
- // thing6 = new { value = itemDetail.C_Name ?? "" },
- // thing9 = new { value = itemDetail.SpotName ?? "" }
- //};
- //new WeChatHelper(_httpClientFactory).PushMessageToUser(openIds, content);
- List<string> openIds = users.Where(u => u.C_WxopenID != null).Select(i => i.C_WxopenID).ToList();
- //var data = new
- //{
- // thing4 = new { value = viewModel.SpotName }, //异常位置
- // thing6 = new { value = viewModel.C_Name },//异常点位
- // thing2 = new { value = viewModel.ReportUserName }, //上报人
- // time3 = new { value = DateTime.Now.ToString("yyyy-MM-dd HH:mm") }//上报时间
- //};
- string statusStr = "未知";
- //1 = 正常; 0 = 异常; 2 = 恢复; 3 = 确认异常; 4 = 取消异常
- switch (viewModel.SecurityStatus)
- {
- case "0": statusStr = "异常"; break;
- case "1": statusStr = "正常"; break;
- case "2": statusStr = "恢复"; break;
- case "3": statusStr = "确认异常"; break;
- case "4": statusStr = "取消异常"; break;
- }
- var data = new
- {
- thing1 = new { value = viewModel.SpotName }, //异常位置
- character_string2 = new { value = viewModel.SpotNumber },//异常点位
- thing3 = new { value = statusStr }, //上报人
- time4 = new { value = DateTime.Now.ToString("yyyy-MM-dd HH:mm") }//上报时间
- };
- var row = new WeChatHelper(_httpClientFactory).PushGZHMessageToUser(openIds, null, "", data, "", "");
- }
- catch (Exception ex)
- {
- throw;
- }
- }
- }
- }
|