예제 #1
0
        /// <summary>
        /// 发送短信
        /// </summary>
        /// <param name="sendSms"></param>
        /// <returns></returns>
        public static SmsResult SendMessage(SendSmsModel sendSms)
        {
            var url      = ConfigurationManager.AppSettings["smsUrl"];
            var postData = JsonConvert.SerializeObject(sendSms);

            return(HttpUtils.PostResponse <SmsResult>(url, postData));
        }
예제 #2
0
        public ParsGreenResult <ResponseModel> InvokeSendSms(SendSmsModel model)
        {
            var url            = ParsGreenUrlConfig.GetSendUrl(_token, model.ToNumber, model.Body, _defaultNumber);
            var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);

            httpWebRequest.Method = "Get";
            HttpWebResponse httpResponse;

            try
            {
                httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            }
            catch
            {
                return(ParsGreenResult <ResponseModel> .Failed(new ParsGreenError
                {
                    Code = "-1000",
                    Description = "Could not send request."
                }));
            }
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream() ?? throw new InvalidOperationException()))
            {
                var result = streamReader.ReadToEnd();
                return(PrepairModel(result));
            }
        }
        public IActionResult Post([FromBody] SendSmsModel sms)
        {
            var id = _smsGateway.SendSmsAsync(sms.Message, sms.To);

            _log.Info($"Sent sms with id {id} to {sms.To}");
            return(Ok(id));
        }
예제 #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="UserModel"></param>
        /// <param name="TitleID"></param>
        /// <param name="NewType">消息类型 1 燃起烟感报警 6电气报警</param>
        /// <param name="DevName"></param>
        /// <param name="DevID"></param>
        /// <param name="state">类型 1 发送全部 2只发送极光</param>
        private static void SendDQ(People UserModel, string TitleID, string NewType, string DevName, string DevID, string state)
        {
            //极光
            APPPush(UserModel, TitleID, NewType, DevName, DevID);
            if (state == "1")
            {
                //短信
                #region 短信
                SendSmsModel SendSmsModel = new SendSmsModel();
                SendSmsModel.AddressDetail = UserModel.Address.Replace(UserModel.Province + UserModel.City + UserModel.Area + UserModel.VillageName, "");
                SendSmsModel.DevName       = DevName;
                SendSmsModel.PushName      = "正在报警";
                SendSmsModel.Phone         = UserModel.Phone;
                SendSmsModel.VillageName   = UserModel.VillageName;
                SendSmsModel.Message       = "请合理使用电器,定期检查线路";
                HttpSend.sendSmsP1(SendSmsModel);
                #endregion

                //【全民消防】玉龙小区1号楼二单元403室的电气探测器正在报警,友情提示请合理使用电器,定期检查线路
                //电话

                #region 电话
                var PhoneMessage = UserModel.Name.Replace("&", "") + "&" + UserModel.Address.Replace(UserModel.Province, "").Replace("&", "") + "&" + "电气探测器&正在报警&不予处理可能会引起电气火灾";
                HttpSend.TalePhoneP1(DevName, UserModel.Phone, UserModel.Address.Replace(UserModel.Province, ""), UserModel.Name, DevID, "3", PhoneMessage);

                #endregion

                //王志您好,石家庄市玉龙小区1号楼二单元403室的电气探测器正在报警,不予处理可能会引起电气火灾,请尽快处理
            }
        }
        public async Task <IActionResult> SendSms([FromBody] SendSmsModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            await _smsSender.SendSmsAsync(model.Recipient, model.Message);

            return(Ok());
        }
예제 #6
0
        public async Task <ParsGreenResult <ResponseModel> > InvokeSendSmsAsync(SendSmsModel model)
        {
            var url = ParsGreenUrlConfig.GetSendUrl(_token, model.ToNumber, model.Body, _defaultNumber);

            if (model.ToNumber.Length != 11 || !model.ToNumber.StartsWith("09"))
            {
                return(ParsGreenResult <ResponseModel> .Failed(new ParsGreenError
                {
                    Code = "-1003",
                    Description = "Could not send message. Possibly not valid number."
                }));
            }

            if (string.IsNullOrWhiteSpace(model.Body))
            {
                return(ParsGreenResult <ResponseModel> .Failed(new ParsGreenError
                {
                    Code = "-1004",
                    Description = "Could not send empty message."
                }));
            }

            if (model.Body.Length > _maxLength)
            {
                return(ParsGreenResult <ResponseModel> .Failed(new ParsGreenError
                {
                    Code = "-1003",
                    Description = "Could not send message larger than 60 chars"
                }));
            }

            var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);

            httpWebRequest.Method = "Get";
            HttpWebResponse httpResponse;

            try
            {
                httpResponse = (HttpWebResponse)await httpWebRequest.GetResponseAsync();
            }
            catch
            {
                return(ParsGreenResult <ResponseModel> .Failed(new ParsGreenError
                {
                    Code = "-1000",
                    Description = "Could not send request."
                }));
            }
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream() ?? throw new InvalidOperationException()))
            {
                var result = streamReader.ReadToEnd();
                return(PrepairModel(result));
            }
        }
예제 #7
0
        public async Task <SendSmsResponseModel> SendAsync([NotNull] SendSmsModel model)
        {
            var url = $"{ElectEsmsConstants.DefaultApiUrl}/MainService.svc/json/SendMultipleMessage_V4_get";

            url = url
                  .SetQueryParam("ApiKey", Options.ApiKey)
                  .SetQueryParam("SecretKey", Options.ApiSecret)
                  .SetQueryParam("Phone", model.Phone)
                  .SetQueryParam("Content", model.Content)
                  .SetQueryParam("SmsType", (int)model.Type);

            switch (model.Type)
            {
            case EsmsSmsType.Random:
            case EsmsSmsType.Notify:
            case EsmsSmsType.OTP:
            {
                url = url.SetQueryParam("IsUnicode", model.IsUnicode ? "1" : "0");
                break;
            }

            case EsmsSmsType.Verify:
            {
                model.BrandName = "Verify";
                break;
            }
            }

            if (!string.IsNullOrWhiteSpace(model.BrandName) && (model.Type == EsmsSmsType.BrandName || model.Type == EsmsSmsType.Verify))
            {
                url = url.SetQueryParam("Brandname", model.BrandName);
            }

            try
            {
                var result = await url
                             .ConfigureRequest(config =>
                {
                    config.JsonSerializer = ElectEsmsConstants.NewtonsoftJsonSerializer;
                })
                             .GetJsonAsync <SendSmsResponseModel>()
                             .ConfigureAwait(true);

                return(result);
            }
            catch (FlurlHttpException e)
            {
                var response = await e.GetResponseStringAsync().ConfigureAwait(true);

                throw new HttpRequestException(response);
            }
        }
예제 #8
0
        public async Task <bool> SendSmsAsync(SendSmsModel smsModel)
        {
            try
            {
                var response = await _httpClient.PostAsync(_siteSettings.Value.SmsUrl, CreateHttpContent <SendSmsModel>(smsModel));

                return(true);
            }
            catch
            {
                return(false);
            }
        }
예제 #9
0
        public async Task <IActionResult> SendToAll(SendSmsModel model)
        {
            if (model != null && ModelState.IsValid)
            {
                var results = await _service.SendToAll(model.Message);

                if (results.All(x => x.Success))
                {
                    return(View("Success"));
                }
                else
                {
                    ModelState.AddModelError("", Messages.UnsuccessfulOperation);
                }
            }

            return(View("SmsForm", model));
        }
예제 #10
0
        public JsonResult processSingleSms(SendSmsModel sysmodel)
        {
            string errMessage = string.Empty;

            if (ModelState.IsValid)
            {
                var validation = SecurityController.ValidateToken(sysmodel.TokenCode);
                try
                {
                    if (validation.Validated == true)
                    {
                        var SysListResult = _db.Query <string>(";Exec Supreme_getSystemCodes @SubCodeID", new { SubCodeID = sysmodel.smsText, }).ToList();

                        return(Json(SysListResult, JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        GenericResultModel AccListResult2 = new GenericResultModel();
                        AccListResult2.Status  = "Fail";
                        AccListResult2.Remarks = validation.Errors[0].ToString();
                        return(Json(AccListResult2, JsonRequestBehavior.AllowGet));
                    }
                }
                catch (Exception ee)
                {
                    GenericResultModel AccListResult2 = new GenericResultModel();
                    AccListResult2.Status  = "Fail";
                    AccListResult2.Remarks = ee.Message;
                    return(Json(AccListResult2, JsonRequestBehavior.AllowGet));
                }
            }
            else
            {
                var message = string.Join(" | ", ModelState.Values
                                          .SelectMany(v => v.Errors)
                                          .Select(e => e.ErrorMessage));

                GenericResultModel AccListResult2 = new GenericResultModel();
                AccListResult2.Status  = "Fail";
                AccListResult2.Remarks = message;
                return(Json(AccListResult2, JsonRequestBehavior.AllowGet));
            }
        }
예제 #11
0
        public static async Task <Result <string> > SendSms(this SmsClient smsClient, string message, string from, string to, string senderName = "")
        {
            var sms = new SendSmsModel
            {
                SenderName        = senderName,
                SmsMessageRequest = new SmsMessageRequest
                {
                    Sender         = $"tel:+{from}",
                    Recipient      = $"tel:+{to}",
                    SmsTextMessage = new SmsTextMessage
                    {
                        Message = message
                    }
                }
            };
            var response = await smsClient.PostAsync(sms, $"smsmessaging/v1/outbound/tel%3A%2B{from}/requests");

            if (response.code == HttpStatusCode.Created)
            {
                return(new Result <string>(true, string.Empty, response.result));
            }
            return(GetError <string>(response));
        }
예제 #12
0
        public async Task <SendSmsResponseModel> SendAsync([NotNull] SendSmsModel model)
        {
            var url = $"{ElectEsmsConstants.DefaultApiUrl}/MainService.svc/json/SendMultipleMessage_V4_get";

            url = url
                  .SetQueryParam("ApiKey", Options.ApiKey)
                  .SetQueryParam("SecretKey", Options.ApiSecret)
                  .SetQueryParam("Phone", model.Phone)
                  .SetQueryParam("Content", model.Content)
                  .SetQueryParam("SmsType", model.Type)
                  .SetQueryParam("Sandbox", model.Sandbox);

            if (!string.IsNullOrWhiteSpace(model.BrandName))
            {
                url = url.SetQueryParam("Brandname", model.BrandName);
            }

            try
            {
                var result = await url
                             .ConfigureRequest(config =>
                {
                    config.JsonSerializer = ElectEsmsConstants.NewtonsoftJsonSerializer;
                })
                             .GetJsonAsync <SendSmsResponseModel>()
                             .ConfigureAwait(true);

                return(result);
            }
            catch (FlurlHttpException e)
            {
                var response = await e.GetResponseStringAsync().ConfigureAwait(true);

                throw new HttpRequestException(response);
            }
        }
예제 #13
0
        public SendSmsModel RunTest([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] SendSmsModel sendSmsModel)
        {
            _logger.LogInformation("[[HTTP trigger]] TestSendSms");

            return(sendSmsModel);
        }
예제 #14
0
        public void Run([QueueTrigger("send-sms", Connection = "SmsSenderStorage")] SendSmsModel sendSmsModel)
        {
            _logger.LogInformation($"[[Queue trigger]] SendSms with params: Phone: {sendSmsModel.PhoneNumber}, Message: {sendSmsModel.Message}");

            _smsSenderAppService.SendSms(sendSmsModel);
        }
예제 #15
0
        /// <summary>
        /// 会议提醒
        /// </summary>
        /// <returns></returns>
        public void RemindMeet()
        {
            try
            {
                var rep  = ContainerManager.Resolve <IEfRepository>();
                var dt   = DateTime.UtcNow.AddHours(8);
                var list = from a in rep.Where <MeetInfo>(s => s.IsDeleted != 1 && s.MeetStartTime > dt)
                           join b in rep.Where <MyMeetOrder>(s => s.IsDeleted != 1 && s.HasReminded != 1 && s.IsRemind == 1) on a.Id equals b.MeetId
                           join c in rep.Where <WxUserModel>(s => s.IsDeleted != 1 && s.Mobile != null) on b.UnionId equals c.UnionId
                           select new
                {
                    MeetOrderId = b.Id,
                    a.MeetTitle,
                    a.MeetStartTime,
                    c.Mobile,
                    b.RemindOffsetMinutes
                };

                if (list == null || list.Count() == 0)
                {
                    return;
                }

                var list2 = from a in list.ToList()
                            where a.MeetStartTime.Value.AddMinutes(a.RemindOffsetMinutes) <= DateTime.UtcNow.AddHours(8)
                            select a;

                foreach (var item in list2)
                {
                    if (string.IsNullOrEmpty(item.Mobile))
                    {
                        continue;
                    }
                    try
                    {
                        string title = item.MeetTitle;
                        string time  = item.MeetStartTime?.ToString(Time_Format) ?? "";

                        SendSmsModel sm = new SendSmsModel
                        {
                            CompanyCode = "4033",
                            ParamName   = JsonConvert.SerializeObject(new
                            {
                                systemName  = System_Name,
                                meetingTime = time,
                                meetingType = title
                            }).Base64Encoding(),
                            PhoneNumbers = item.Mobile,
                            SystemId     = "3",
                            SignName     = "费卡中国",
                            TemplateId   = "FKSMS0046"
                        };

                        LoggerHelper.WriteLogInfo($"[RemindMeet]:******发送会议提醒短信开始******");
                        LoggerHelper.WriteLogInfo($"[RemindMeet]:PhoneNumbers={sm.PhoneNumbers}");
                        LoggerHelper.WriteLogInfo($"[RemindMeet]:meetingTime={time}");
                        LoggerHelper.WriteLogInfo($"[RemindMeet]:meetingType={title}");
                        var smsResult = SmsUtil.SendMessage(sm);
                        if (smsResult?.ResultFlag ?? false)
                        {
                            LoggerHelper.WriteLogInfo($"[RemindMeet]:smsResult.ResultFlag=true");
                            var meetOrder = rep.FirstOrDefault <MyMeetOrder>(s => s.IsDeleted != 1 && s.Id == item.MeetOrderId);
                            if (meetOrder != null)
                            {
                                meetOrder.HasReminded = 1; //已发送提醒短信
                                rep.Update(meetOrder);
                                rep.SaveChanges();
                                LoggerHelper.WriteLogInfo($"[RemindMeet]:set HasReminded to 1");
                            }
                        }
                        LoggerHelper.WriteLogInfo($"[RemindMeet]:******发送会议提醒短信结束******");
                    }
                    catch (Exception ex)
                    {
                        LoggerHelper.Error($"--------------------------------------------------------------------------------");
                        LoggerHelper.Error($"[MSG]:{ex.Message};\n");
                        LoggerHelper.Error($"[Source]:{ex.Source}\n");
                        LoggerHelper.Error($"[StackTrace]:{ex.StackTrace}\n");
                        LoggerHelper.Error($"[StackTrace]:{ex.TargetSite.Name}\n");
                        LoggerHelper.Error($"[MethodName]:[[SSPC_One_HCP.WebApi.Jobs.RemindJob.RemindMeet]]\n");
                        LoggerHelper.Error($"--------------------------------------------------------------------------------");
                    }
                }
            }
            catch (Exception ex)
            {
                LoggerHelper.Error($"--------------------------------------------------------------------------------");
                LoggerHelper.Error($"[MSG]:{ex.Message};\n");
                LoggerHelper.Error($"[Source]:{ex.Source}\n");
                LoggerHelper.Error($"[StackTrace]:{ex.StackTrace}\n");
                LoggerHelper.Error($"[StackTrace]:{ex.TargetSite.Name}\n");
                LoggerHelper.Error($"[MethodName]:[[SSPC_One_HCP.WebApi.Jobs.RemindJob.RemindMeet]]\n");
                LoggerHelper.Error($"--------------------------------------------------------------------------------");
                //throw ex;
            }
        }
예제 #16
0
        //p1 新版通知 只包括业主的推送电话和短信

        #region P1短信发送
        /// <summary>
        ///
        /// </summary>
        /// <param name="phone"></param>
        /// <param name="Address"></param>
        /// <param name="DevName"></param>
        /// <param name="UserName"></param>
        /// <param name="BeUserName"></param>
        /// <param name="type"></param>
        public static async void sendSmsP1(SendSmsModel SenModel)
        {
            if (string.IsNullOrWhiteSpace(SenModel.Phone))
            {
                Utility.WriteLog("联系人发短信异常---手机号为空");
                return;
            }
            string jsonArrayText = ""; //[address]的[DevName][PushName],友情提示[Message]

            jsonArrayText = "{'PushName':'" + SenModel.PushName + "','address':'" + SenModel.VillageName + SenModel.AddressDetail + "','Message':'" + SenModel.Message + "','DevName':'" + SenModel.DevName + "'}";
            var             tNum         = "T170317005189";
            String          querys       = $"content=" + jsonArrayText + "&mobile=" + SenModel.Phone + "&tNum=" + tNum;
            String          bodys        = "";
            String          url          = host + path;
            HttpWebRequest  httpRequest  = null;
            HttpWebResponse httpResponse = null;

            if (0 < querys.Length)
            {
                url = url + "?" + querys;
            }

            if (host.Contains("https://"))
            {
                ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
                httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
            }
            else
            {
                httpRequest = (HttpWebRequest)WebRequest.Create(url);
            }
            httpRequest.Method = method;
            httpRequest.Headers.Add("Authorization", "APPCODE " + appcode);
            if (0 < bodys.Length)
            {
                byte[] data = Encoding.UTF8.GetBytes(bodys);
                using (Stream stream = httpRequest.GetRequestStream())
                {
                    stream.Write(data, 0, data.Length);
                }
            }
            try
            {//换为异步执行
                httpResponse = await httpRequest.GetResponseAsync() as HttpWebResponse;

                //  httpResponse = (HttpWebResponse)httpRequest.GetResponse();
            }
            catch (WebException ex)
            {
                httpResponse = (HttpWebResponse)ex.Response;
            }

            Console.WriteLine(httpResponse.StatusCode);
            Console.WriteLine(httpResponse.Method);
            Console.WriteLine(httpResponse.Headers);
            Stream       st     = httpResponse.GetResponseStream();
            StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));

            // Console.WriteLine(reader.ReadToEnd());
            Utility.WriteLog(reader.ReadToEnd());
            Console.WriteLine("\n");
        }
예제 #17
0
        /// <summary>
        /// 发送验证码
        /// </summary>
        /// <param name="workUser"></param>
        /// <param name="mobile">手机号</param>
        /// <returns></returns>
        public ReturnValueModel SendVerifyCode(WorkUser workUser, string mobile)
        {
            LoggerHelper.WriteLogInfo("[SendVerifyCode]:******发送验证码开始******");
            ReturnValueModel rvm     = new ReturnValueModel();
            string           unionId = workUser?.WxUser?.UnionId;

            var wxUser = _rep.FirstOrDefault <WxUserModel>(s => s.IsDeleted != 1 && s.UnionId == unionId);

            LoggerHelper.WriteLogInfo("[SendVerifyCode]:wxUser------is null: " + (wxUser == null));
            LoggerHelper.WriteLogInfo("[SendVerifyCode]:wxUser------UnionId:" + unionId);
            LoggerHelper.WriteLogInfo("[SendVerifyCode]:wxUser------手机号:" + mobile);

            if (wxUser != null)
            {
                //手机号唯一 才允许注册
                var isReginUser = (_rep.Where <WxUserModel>(x => x.IsDeleted != 1 && x.IsCompleteRegister == 1 && x.Mobile.Equals(mobile))?.Count() ?? 0) > 0;
                if (isReginUser)
                {
                    rvm.Msg     = "fail";
                    rvm.Success = false;
                    LoggerHelper.WriteLogInfo(mobile + "拒绝注册" + unionId);
                    LoggerHelper.WriteLogInfo("[SendVerifyCode]:******短信验证码结束******");
                    return(rvm);
                }
                var code = RandomUtil.GenerateRandomCode(6);
                wxUser.Code = code;
                LoggerHelper.WriteLogInfo("[SendVerifyCode]验证码:" + code);

                //wxUser.Mobile = mobile;
                wxUser.CodeTime = DateTime.Now.AddMinutes(1);

                //发送验证码
                //SendVerifyCode(Mobile, code);
                SendSmsModel ssm = new SendSmsModel
                {
                    PhoneNumbers = mobile,
                    CompanyCode  = "4033",
                    TemplateId   = "FKSMS0047",
                    SystemId     = "3",
                    SignName     = "费卡中国",
                    ParamName    = JsonConvert.SerializeObject(new { code = code }).Base64Encoding()
                };

                _rep.Update(wxUser);
                _rep.SaveChanges();
                LoggerHelper.WriteLogInfo("[SendVerifyCode]短信发送开始:");
                var sr = SmsUtil.SendMessage(ssm);
                LoggerHelper.WriteLogInfo("[SendVerifyCode]短信发送结束:");
                rvm.Msg     = "success";
                rvm.Success = true;
                rvm.Result  = new
                {
                    sr
                };
            }
            else
            {
                rvm.Msg     = "fail";
                rvm.Success = false;
            }
            LoggerHelper.WriteLogInfo("[SendVerifyCode]:发送结果:" + rvm.Msg);
            LoggerHelper.WriteLogInfo("[SendVerifyCode]:******短信验证码结束******");
            return(rvm);
        }
예제 #18
0
        /// <summary>
        /// 业主设备报警推送处理 (电话短信+极光推送)
        /// </summary>
        /// <param name="UserModel">业主信息</param>
        /// <param name="DevID">设备ID</param>
        /// <returns></returns>
        public static string GetPushStr(People UserModel, string DevID, string TitleID)
        {
            //语音电话模板是通过集合方式发送请求的 可以在数据库中添加模板 ,后期维护的话可直接改成数据表查询方式
            //先判断设备类型
            var NewType = "";
            var DevName = ""; //设备名称简称
            FireControl_DeviceBLL DevBll = new FireControl_DeviceBLL();
            var str          = "";
            var Message      = ""; //短信报警解释
            var PhoneMessage = "";
            var DevResult    = DevBll.GetObjByKey(DevID);

            if (DevResult.ResultCode == ResultCode.Succ)
            {
                var        Device     = DevResult.ResultData;
                DeviceType deviceType = CommHelper.StringToDeviceType(Device.TypeID);
                switch (deviceType)
                {
                case DeviceType.单相电气火灾探测器:
                    //电气 不同报警类型提示文字不同
                    //电气开始时间
                    var DQStart = "09:00";
                    //电气推送结束时间
                    var DQEnd = "22:00";
                    str     = "";
                    NewType = "6";
                    DevName = "电气";
                    if (Convert.ToDateTime(DQStart) > DateTime.Now && DateTime.Now < Convert.ToDateTime(DQEnd))
                    {    //可以进行推送
                         // 同一个设备一天只推送两次 间隔最少一小时
                        FireControl_PushRecordBLL pushRecBLL = new FireControl_PushRecordBLL();
                        var PushRecResult = pushRecBLL.GetPushRecordOneDayByDevIDAndUserID(DevID, UserModel.UserID);
                        if (PushRecResult.ResultCode == ResultCode.UnSucc)
                        {
                            var pushRec = PushRecResult.ResultData;
                            //找到记录 极光一天两次 间隔最少一小时   短信和电话一天一次
                            if (pushRec.Count == 1)
                            {    //只有极光可以发送
                                //还需要判断该报警是否是一小时以前的
                                var time     = pushRec.FirstOrDefault().CreateTime;
                                var timeDiff = Utility.ExecDateDiff(DateTime.Now, time);
                                if (timeDiff > 60)
                                {    //此时可以再推送一次
                                    SendDQ(UserModel, TitleID, NewType, DevName, DevID, "2");
                                }
                            }
                            else if (pushRec.Count == 0)
                            {
                                //都可以发送
                                SendDQ(UserModel, TitleID, NewType, DevName, DevID, "1");
                            }
                        }
                        else
                        {
                            //未找到记录直接推送
                            SendDQ(UserModel, TitleID, NewType, DevName, DevID, "1");
                        }
                    }
                    break;

                case DeviceType.独立式光电感烟火灾探测报警器:
                    // 烟感  1-4个烟感同时报警 三种推送的文字不同
                    FireControl_DevBindUserBLL devUserBLL = new FireControl_DevBindUserBLL();
                    var NumberResult = devUserBLL.GetYGAlarmNumberByDevID(DevID);    //
                    var Number       = Convert.ToInt32(NumberResult.ResultData);

                    str     = "";
                    NewType = "1";
                    DevName = "烟感";
                    //推送
                    APPPush(UserModel, TitleID, NewType, DevName, DevID);
                    if (Number <= 1)
                    {
                        PhoneMessage = UserModel.Name.Replace("&", "") + "&" + UserModel.Address.Replace(UserModel.Province, "").Replace("&", "") + "&" + "烟感探测器&正在报警&置小火于不顾终会酿成大灾,";
                        //玉龙小区1号楼二单元403室 的感烟探测器正在报警,友情提示电气火灾先断电、燃气火灾关阀门、家具火灾用水泼
                        DevName = "烟感设备";
                        Message = "电气火灾先断电、燃气火灾关阀门、家具火灾用水泼";
                    }
                    else if (Number == 2)
                    {
                        PhoneMessage = UserModel.Name.Replace("&", "") + "&" + UserModel.Address.Replace(UserModel.Province, "").Replace("&", "") + "&" + "两个烟感探测器&正在报警&";
                        //玉龙小区1号楼二单元403室 的两个感烟探测器同时在报警,友情提示应争分夺秒扑灭初期火灾,火势凶猛要迅速逃离现场
                        DevName = "两个感烟设备";
                        Message = "应争分夺秒扑灭初期火灾,火势凶猛要迅速逃离现场";
                    }
                    else if (Number >= 3)
                    {
                        PhoneMessage = UserModel.Name.Replace("&", "") + "&" + UserModel.Address.Replace(UserModel.Province, "").Replace("&", "") + "&" + "三个烟感探测器&正在报警&";
                        //玉龙小区1号楼二单元403室的三个感烟探测器同时在报警,友情提示您先冷静判断火灾类型、火势大小,报警电话要讲全
                        DevName = "多个感烟设备";
                        Message = "您先冷静判断火灾类型、火势大小,报警电话要讲全";
                    }

                    //短信
                    #region 短信
                    SendSmsModel SendSmsModel = new SendSmsModel();
                    SendSmsModel.AddressDetail = UserModel.Address.Replace(UserModel.Province + UserModel.City + UserModel.Area + UserModel.StreetName + UserModel.VillageName, "");
                    SendSmsModel.DevName       = DevName;
                    SendSmsModel.PushName      = "正在报警";
                    SendSmsModel.Phone         = UserModel.Phone;
                    SendSmsModel.VillageName   = UserModel.VillageName;
                    SendSmsModel.Message       = Message;
                    HttpSend.sendSmsP1(SendSmsModel);
                    #endregion

                    #region 电话
                    //地址去掉省
                    HttpSend.TalePhoneP1(DevName, UserModel.Phone, UserModel.Address.Replace(UserModel.Province, ""), UserModel.Name, DevID, "1", PhoneMessage);

                    #endregion

                    //首页弹窗
                    FireControl_YGAlarmPromptBLL YGBLL = new FireControl_YGAlarmPromptBLL();
                    var YGList = YGBLL.GetList();
                    if (YGList.ResultCode == ResultCode.Succ)
                    {
                        var YGText = YGList.ResultData;
                        var mod    = YGText.Where(f => f.Number == Number).FirstOrDefault();
                        if (mod == null || string.IsNullOrWhiteSpace(mod.APID))
                        {
                            mod = YGText.OrderBy(f => f.Number).LastOrDefault();
                        }
                        FireControl_AlarmWindow AlarmWindow = new FireControl_AlarmWindow();
                        AlarmWindow.Address     = UserModel.Address.Replace(UserModel.Province + UserModel.City + UserModel.Area + UserModel.StreetName, ""); //小区名+详细地址
                        AlarmWindow.AWID        = CommHelper.CreatePKID("aw");
                        AlarmWindow.DevID       = DevID;
                        AlarmWindow.DevName     = DevName;
                        AlarmWindow.DevNum      = Device.DevNum;
                        AlarmWindow.DevTypeID   = Device.TypeID;
                        AlarmWindow.DevTypeName = "";
                        AlarmWindow.PromptText  = mod.PromptText;
                        AlarmWindow.RecordID    = TitleID;
                        AlarmWindow.Title       = "您的" + DevName + "正在报警";
                        AlarmWindow.UserID      = UserModel.UserID;

                        AddAlarmWindow(AlarmWindow);
                    }
                    break;

                case DeviceType.独立式可燃气体探测器:
                    var PushName = "";
                    str     = "";
                    NewType = "1";
                    DevName = "燃气";
                    //燃气 不同浓度报警提示不同
                    //没浓度的燃气报警显示最高报警信息
                    //查询当前报警的浓度
                    FireControl_WarninsPushBLL pushBll = new FireControl_WarninsPushBLL();
                    var PushResult  = pushBll.GetObjByKey(TitleID);
                    var PushModel   = PushResult.ResultData;
                    var RecordValue = Convert.ToInt32(PushModel.RecordValue);     //浓度值

                    if (RecordValue >= 0 && RecordValue < 5)
                    {
                        /*
                         * 报警语音(王志您好,您家玉龙小区的燃气正在泄漏,如遇到明火会引起微型火灾,请尽快处理!)
                         * 报警短信(【全民消防】玉龙小区1号楼二单元403室的燃气正在泄漏,友情提示您立即关闭燃气阀门,开窗疏散燃气浓度)
                         */
                        PushName     = "正在泄漏";
                        Message      = "您立即关闭燃气阀门,开窗疏散燃气浓度";
                        PhoneMessage = UserModel.Name.Replace("&", "") + "&" + UserModel.Address.Replace(UserModel.Province, "").Replace("&", "") + "&" + "燃气&正在泄漏&如遇到明火会引起微型火灾,";
                    }
                    else if (RecordValue >= 5 && RecordValue < 15)
                    {
                        /*
                         * 报警语音(王志您好,石家庄市玉龙小区1号楼二单元403室的燃气泄漏浓度已超过5%,如遇热源和明火有爆炸的危险,请尽快处理!)
                         * 报警短信(【全民消防】玉龙小区1号楼二单元403室的燃气泄漏浓度已超过5%,友情提示您不要开关电器,泄漏区不要出现热源和明火
                         */
                        PushName     = "泄漏浓度已超过5%";
                        Message      = "您不要开关电器,泄漏区不要出现热源和明火";
                        PhoneMessage = UserModel.Name.Replace("&", "") + "&" + UserModel.Address.Replace(UserModel.Province, "").Replace("&", "") + "&" + "燃气&泄漏浓度已超过百分之五&如遇热源和明火有爆炸的危险,";
                    }
                    else if (RecordValue >= 15 && RecordValue < 30)
                    {
                        /*
                         * 报警语音(王志您好,石家庄市玉龙小区1号楼二单元403室的燃气泄漏浓度已超过15%,如吸入大量甲烷会使人窒息,请尽快处理!)
                         * 报警短信(【全民消防】玉龙小区1号楼二单元403室的燃气泄漏浓度已超过15%,友情提示您立即关闭燃气阀门,离开燃气泄漏区)
                         */
                        PushName     = "泄漏浓度已超过15%";
                        Message      = "您立即关闭燃气阀门,离开燃气泄漏区";
                        PhoneMessage = UserModel.Name.Replace("&", "") + "&" + UserModel.Address.Replace(UserModel.Province, "").Replace("&", "") + "&" + "燃气&泄漏浓度已超过百分之十五&如吸入大量甲烷会使人窒息,";
                    }
                    else if (RecordValue >= 30 && RecordValue <= 100)
                    {
                        /*
                         *   报警语音(王志您好,石家庄市玉龙小区1号楼二单元403室的燃气泄漏浓度已超过30%,有中毒窒息和火灾爆炸的双重危险,请尽快处理!)
                         *   报警短信(【全民消防】玉龙小区1号楼二单元403室的燃气泄漏浓度已超过30%,友情提示您立即远离泄漏区打电话给物业处理)
                         */
                        PushName     = "泄漏浓度已超过30%";
                        Message      = "您立即远离泄漏区打电话给物业处理";
                        PhoneMessage = UserModel.Name.Replace("&", "") + "&" + UserModel.Address.Replace(UserModel.Province, "").Replace("&", "") + "&" + "燃气&泄漏浓度已超过百分之三十&有中毒窒息和火灾爆炸的双重危险,";
                    }
                    //推送
                    APPPush(UserModel, TitleID, NewType, DevName, DevID);


                    #region 短信
                    SendSmsModel SendSmsRQModel = new SendSmsModel();
                    SendSmsRQModel.AddressDetail = UserModel.Address.Replace(UserModel.Province + UserModel.City + UserModel.Area + UserModel.StreetName + UserModel.VillageName, "");
                    SendSmsRQModel.DevName       = DevName;
                    SendSmsRQModel.PushName      = PushName;
                    SendSmsRQModel.Phone         = UserModel.Phone;
                    SendSmsRQModel.VillageName   = UserModel.VillageName;
                    SendSmsRQModel.Message       = Message;
                    HttpSend.sendSmsP1(SendSmsRQModel);
                    #endregion

                    #region 电话
                    HttpSend.TalePhoneP1(DevName, UserModel.Phone, UserModel.Address.Replace(UserModel.Province, ""), UserModel.Name, DevID, "2", PhoneMessage);
                    #endregion


                    //首页弹窗
                    //添加弹窗一条记录
                    //增加一个自定义推送

                    FireControl_RQAlarmPromptBLL RQBLL = new FireControl_RQAlarmPromptBLL();
                    var RQList = RQBLL.GetList();
                    if (RQList.ResultCode == ResultCode.Succ)
                    {
                        var RQText = RQList.ResultData;
                        var mod    = RQText.Where(f => f.MinValue < RecordValue && f.MaxValue >= RecordValue).FirstOrDefault();
                        if (mod == null || string.IsNullOrWhiteSpace(mod.APID))
                        {
                            mod = RQText.OrderBy(f => f.MaxValue).LastOrDefault();
                        }
                        FireControl_AlarmWindow AlarmWindow = new FireControl_AlarmWindow();
                        AlarmWindow.Address     = UserModel.Address.Replace(UserModel.Province + UserModel.City + UserModel.Area + UserModel.StreetName, "");;  //小区名+详细地址
                        AlarmWindow.AWID        = CommHelper.CreatePKID("aw");
                        AlarmWindow.DevID       = DevID;
                        AlarmWindow.DevName     = DevName;
                        AlarmWindow.DevNum      = Device.DevNum;
                        AlarmWindow.DevTypeID   = Device.TypeID;
                        AlarmWindow.DevTypeName = "";
                        AlarmWindow.PromptText  = mod.PromptText;
                        AlarmWindow.RecordID    = TitleID;
                        AlarmWindow.Title       = "您的" + DevName + PushName;
                        AlarmWindow.UserID      = UserModel.UserID;
                        AddAlarmWindow(AlarmWindow);
                    }
                    break;
                }

                //所有设备的不同报警极光推送都一样
                //紧急通知!您的{1}设备发生报警,地址{2},请尽快处理{1.设备类型简称;2.省市区+小区名称;
            }


            return("");
        }
예제 #19
0
 public void SendSms(SendSmsModel sendSmsModel)
 {
     _logger.LogInformation("Sms has been successfully sent");
 }