public string PreviewTemplate(string orderCode, object templateId) { try { string content = ""; if (templateId.ToString() == "") { return(MessageContent.GetString(MessageContent.Request_Data_Invalid, "当前模板")); } Guid gId = Guid.Empty; Guid.TryParse(templateId.ToString(), out gId); if (gId.Equals(Guid.Empty)) { return(MessageContent.GetString(MessageContent.Request_InvalidArgument, "模板ID")); } SmsTemplate smstBll = new SmsTemplate(); var model = smstBll.GetModel(gId); if (model == null) { return(MessageContent.GetString(MessageContent.Request_Data_Invalid, "当前模板")); } if (model.TemplateType == "auto") { if (string.IsNullOrEmpty(orderCode.Trim())) { return("当前模板为自动类型,订单号为必填项"); } return(smstBll.GetTemplateContent(model.Id, orderCode)); } else if (model.TemplateType == "custom") { content = string.Format(model.SmsContent, model.ParamsValue.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)); } else { content = model.SmsContent; } return(content); } catch (Exception ex) { return("异常:" + ex.Message); } }
/// <summary> /// 获取当前编辑行的数据 /// </summary> private void GetSmsTemplateById() { if (!gId.Equals(Guid.Empty)) { SmsTemplate smstBll = new SmsTemplate(); var model = smstBll.GetModel(gId); if (model != null) { hId.Value = model.Id.ToString(); txtTitle.Value = model.Title; if (model.IsDefault) { txtTitle.Disabled = true; } cbIsDefault.Checked = model.IsDefault; cbbTemplateType.Value = model.TemplateType; txtaContent.Value = model.SmsContent; hParamsCode.Value = model.ParamsCode; hParamsName.Value = model.ParamsName; hParamsValue.Value = model.ParamsValue; string sDivParam = ""; if (model.TemplateType == "auto") { if (!string.IsNullOrEmpty(model.ParamsName)) { string[] parmsArr = model.ParamsName.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < parmsArr.Length; i++) { sDivParam += "{" + i + "}:" + parmsArr[i] + ","; } sDivParam = sDivParam.Trim(','); } } else if (model.TemplateType == "custom") { string[] parmsArr = model.ParamsName.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); string[] parmsValueArr = model.ParamsValue.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < parmsArr.Length; i++) { sDivParam += "{" + i + "}:" + parmsArr[i] + "(" + parmsValueArr[i] + "),"; } sDivParam = sDivParam.Trim(','); } divParam.InnerHtml = sDivParam; } } }
/// <summary> /// 绑定当前模板 /// </summary> private void BindTemplate() { if (!templateId.Equals(Guid.Empty)) { SmsTemplate smstBll = new SmsTemplate(); var model = smstBll.GetModel(templateId); if (model != null) { hTemplateId.Value = model.Id.ToString(); txtaContent.Value = model.SmsContent; string sDivParam = ""; if (model.TemplateType == "auto") { if (!string.IsNullOrEmpty(model.ParamsName)) { string[] parmsArr = model.ParamsName.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < parmsArr.Length; i++) { sDivParam += "{" + i + "}:" + parmsArr[i] + ","; } sDivParam = sDivParam.Trim(','); } } else if (model.TemplateType == "custom") { string[] parmsArr = model.ParamsName.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); string[] parmsValueArr = model.ParamsValue.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < parmsArr.Length; i++) { sDivParam += "{" + i + "}:" + parmsArr[i] + "(" + parmsValueArr[i] + "),"; } sDivParam = sDivParam.Trim(','); } divParam.InnerHtml = sDivParam; } } }
public string SmsSendByImport(SmsSendInfo model) { if (string.IsNullOrEmpty(model.SmsContent.Trim())) { return("发送失败,短信内容不能为空"); } if (string.IsNullOrWhiteSpace(model.MobilePhone)) { return("请导入手机号码"); } List <string> mobileList = new List <string>(); try { model.MobilePhone = model.MobilePhone.Trim(); string[] mobilePhoneArr = model.MobilePhone.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (string item in mobilePhoneArr) { if (Regex.IsMatch(item, @"(\d+){11,15}")) { if (!mobileList.Contains(item)) { mobileList.Add(item); } } } if (mobileList.Count == 0) { return("无任何正确的手机号码,无法发送短信"); } Guid templateId = Guid.Empty; if (model.SmsTemplateId != null) { Guid.TryParse(model.SmsTemplateId.ToString(), out templateId); } try { if (!templateId.Equals(Guid.Empty)) { SmsTemplate smstBll = new SmsTemplate(); var smstModel = smstBll.GetModel(model.SmsTemplateId); if (smstModel == null) { return("发送失败,原因:模板不存在或已被删除"); } if (smstModel.TemplateType == "auto") { return("发送失败,原因:不能选择自动类型的模板"); } model.SmsContent = smstModel.SmsContent; } else { model.SmsContent = string.Format(model.SmsContent, model.ParamsValue.Trim().Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)); } } catch { return("发送失败,原因:已选参数与短信内容匹配有错,请正确操作"); } SmsSend ssBll = new SmsSend(); if (mobileList.Count > 100) { while (mobileList.Count > 0) { var q = mobileList.Take(100); if (q.Count() > 0) { var currList = q.ToList <string>(); SmsSendInfo ssiModel = new SmsSendInfo(); ssiModel.MobilePhone = string.Join(",", currList); ssiModel.MobilePhone = model.MobilePhone; ssiModel.SmsContent = model.SmsContent.Trim(); ssBll.InsertByStrategy(ssiModel); foreach (var item in currList) { mobileList.Remove(item); } } } } else { SmsSendInfo ssiModel = new SmsSendInfo(); ssiModel.MobilePhone = model.MobilePhone; ssiModel.SmsContent = model.SmsContent.Trim(); ssBll.InsertByStrategy(ssiModel); } return("1"); } catch (Exception ex) { return("异常:" + ex.Message); } }
public string SmsSend(SmsSendInfo model) { if (string.IsNullOrEmpty(model.SmsContent.Trim())) { return("发送失败,短信内容不能为空"); } try { model.TemplateType = model.TemplateType.Trim(); model.SmsTemplateId = model.SmsTemplateId.ToString().Trim(); model.SmsContent = model.SmsContent.Trim(); model.NumberType = model.NumberType.Trim(); model.NumberCode = model.NumberCode.Trim(); model.ParamsCode = model.ParamsCode.Trim(); model.ParamsName = model.ParamsName.Trim(); model.ParamsValue = model.ParamsValue.Trim(); model.TranNode = model.TranNode.Trim(); #region 短信内容与参数对应检查 try { if (model.SmsTemplateId.ToString() != "") { Guid templateId = Guid.Empty; Guid.TryParse(model.SmsTemplateId.ToString(), out templateId); if (templateId.Equals(Guid.Empty)) { return(MessageContent.GetString(MessageContent.Request_Data_Invalid, "当前模板")); } SmsTemplate smstBll = new SmsTemplate(); var smstModel = smstBll.GetModel(templateId); if (smstModel == null) { return(MessageContent.GetString(MessageContent.Request_Data_Invalid, "当前模板")); } if (smstModel.TemplateType == "auto") { if (model.NumberType == "MobilePhone") { return("发送失败,原因:当号码类型为手机号码时,则不能选择自动类型的模板"); } string content = string.Format(model.SmsContent, model.ParamsCode.Trim().Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)); } else if (model.TemplateType == "custom") { string content = string.Format(model.SmsContent, model.ParamsValue.Trim().Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)); } } else { if (model.TemplateType == "auto") { if (model.NumberType == "MobilePhone") { return("发送失败,原因:当号码类型为手机号码时,则不能选择自动类型的模板"); } string content = string.Format(model.SmsContent, model.ParamsCode.Trim().Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)); } else if (model.TemplateType == "custom") { string content = string.Format(model.SmsContent, model.ParamsValue.Trim().Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)); } } } catch { return("发送失败,原因:已选参数与短信内容匹配有错,请正确操作"); } #endregion SmsSendInfo ssiModel = new SmsSendInfo(); ssiModel.TemplateType = model.TemplateType; ssiModel.TranNode = model.TranNode.Trim(); ssiModel.TranNodeText = model.TranNodeText.Trim(); ssiModel.ParamsCode = model.ParamsCode; ssiModel.ParamsName = model.ParamsName; ssiModel.ParamsValue = model.ParamsValue; ssiModel.SmsContent = model.SmsContent.Trim(); ssiModel.SmsTemplateId = model.SmsTemplateId; switch (model.NumberType) { case "MobilePhone": ssiModel.MobilePhone = model.NumberCode; if (!Regex.IsMatch(ssiModel.MobilePhone, @"^(\d+){11,15}$")) { return(MessageContent.GetString(MessageContent.Request_InvalidValue, "手机号码")); } break; case "OrderCode": ssiModel.OrderCode = model.NumberCode; break; case "CarScanCode": ssiModel.CarScanCode = model.NumberCode; break; default: break; } SmsSend ssBll = new SmsSend(); ssBll.InsertByStrategy(ssiModel); return("1"); } catch (Exception ex) { return("异常:" + ex.Message); } }
public string PreviewSmsSend(SmsSendInfo model) { try { model.NumberType = model.NumberType.Trim(); model.SmsTemplateId = model.SmsTemplateId.ToString().Trim(); model.NumberCode = model.NumberCode.Trim(); model.ParamsCode = model.ParamsCode.Trim(); if (model.SmsTemplateId.ToString() != "") { #region 使用模板 Guid templateId = Guid.Empty; Guid.TryParse(model.SmsTemplateId.ToString(), out templateId); if (templateId.Equals(Guid.Empty)) { return(MessageContent.GetString(MessageContent.Request_InvalidArgument, "模板ID")); } SmsTemplate smstBll = new SmsTemplate(); var smstModel = smstBll.GetModel(templateId); if (smstModel == null) { return(MessageContent.GetString(MessageContent.Request_Data_Invalid, "当前模板")); } if (smstModel.TemplateType == "auto") { if (model.NumberType != "OrderCode") { return("当选择的模板类型为自动类型时,号码类型必须是订单号才能预览"); } return(smstBll.GetTemplateContent(model.SmsTemplateId, model.NumberCode)); } else if (model.TemplateType == "custom") { return(string.Format(model.SmsContent, model.ParamsValue.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))); } else { return(model.SmsContent); } #endregion } else if (model.TemplateType == "auto") { if (model.NumberType != "OrderCode" || model.ParamsCode == "") { return("当选择的模板类型为自动类型时,号码类型必须是订单号,且必须选择参数才能预览,"); } SmsSend ssBll = new SmsSend(); return(ssBll.GetSmsContent(model.NumberCode, model.SmsContent, model.ParamsCode)); } else if (model.TemplateType == "custom") { return(string.Format(model.SmsContent, model.ParamsValue.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))); } else { return(model.SmsContent); } } catch (Exception ex) { return("异常:" + ex.Message); } }