Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        /// <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;
                }
            }
        }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
        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);
            }
        }
Esempio n. 6
0
        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);
            }
        }