コード例 #1
0
        public static bool Save_SmsChargeRelationList(int SmsTemplateID, List <Dictionary <string, object> > requestList, ref string errormsg, string AddUserName)
        {
            var data = GetSms_Tencent_Template(SmsTemplateID);

            if (data == null)
            {
                errormsg = "短信模板不存在";
                return(false);
            }
            var parameters = new List <SqlParameter>();

            parameters.Add(new SqlParameter("@SmsTemplateID", data.ID));
            var dataList = GetList <Sms_Tencent_Param>("select * from Sms_Tencent_Params where [SmsTemplateID]=@SmsTemplateID", parameters).ToArray();
            var list     = new List <Dictionary <string, object> >();

            foreach (var item in requestList)
            {
                int    ID            = Convert.ToInt32(item["ID"]);
                int    ParamChargeID = Convert.ToInt32(item["ParamChargeID"]);
                int    ParamType     = Convert.ToInt32(item["ParamType"]);
                string ParamValue    = item["ParamValue"].ToString();
                var    myData        = dataList.FirstOrDefault(p => p.ID == ID);
                if (myData == null)
                {
                    myData = new Sms_Tencent_Param();
                    myData.SmsTemplateID = data.ID;
                    myData.AddTime       = DateTime.Now;
                    myData.AddUserName   = AddUserName;
                }
                myData.ParamType     = ParamType;
                myData.ParamChargeID = ParamChargeID;
                myData.ParamValue    = ParamValue;
                myData.Save();
            }
            data.Save();
            return(true);
        }
コード例 #2
0
        public static bool Send_SmsTemplteMsg(List <int> IDList, DateTime StartTime, DateTime EndTime, int SmsTemplateID, int MyUserID, string Keywords, string ProjectName, int SendStatus, bool IsSelectAll, ref string error, int RestCount)
        {
            var dataList = ThirdCustomer.GetThirdCustomerListByIDList(Keywords, StartTime, EndTime, SendStatus, ProjectName, IDList, IsSelectAll);

            if (dataList.Length == 0)
            {
                error = "客户数据为空";
                return(false);
            }
            var templateList = Sms_Tencent_Template.GetSms_Tencent_Templates().ToArray();

            if (SmsTemplateID > 0)
            {
                templateList = templateList.Where(p => p.ID == SmsTemplateID).ToArray();
            }
            if (templateList.Length == 0)
            {
                error = "选中的短信模板不存在";
                return(false);
            }
            var templateParamList = Sms_Tencent_Param.GetSms_Tencent_Params().Where(p => (templateList.Select(q => q.ID).Contains(p.SmsTemplateID))).ToArray();

            bool sendStatus    = false;
            var  sendParamList = new List <Dictionary <string, object> >();
            int  needSendCount = 0;

            foreach (var dataItem in dataList)
            {
                foreach (var item in templateList)
                {
                    var sendParamItem = new Dictionary <string, object>();
                    var myParamList   = templateParamList.Where(p => p.SmsTemplateID == item.ID).Take(item.ParamCount).ToArray();
                    var paramList     = new List <string>();
                    foreach (var myParamItem in myParamList)
                    {
                        if (myParamItem.ParamType == 203)//业主姓名
                        {
                            paramList.Add(dataItem.CustomerName);
                            continue;
                        }
                        if (myParamItem.ParamType == 204)//业主电话
                        {
                            paramList.Add(dataItem.PhoneNumber);
                            continue;
                        }
                        if (myParamItem.ParamType == 201)//项目名称
                        {
                            paramList.Add(dataItem.ProjectName);
                            continue;
                        }
                        if (myParamItem.ParamType == 202)//资源编号
                        {
                            paramList.Add(dataItem.RoomName);
                            continue;
                        }
                        if (myParamItem.ParamType == 101)//验证码
                        {
                            paramList.Add(Utility.Tools.GetVerifyCode());
                            continue;
                        }
                        if (myParamItem.ParamType == 102)//有效分钟
                        {
                            paramList.Add(myParamItem.ParamValue);
                            continue;
                        }
                    }
                    string sendResult = string.Empty;
                    sendParamItem["RelatePhoneNumber"] = dataItem.PhoneNumber;
                    sendParamItem["TemplateID"]        = item.TemplateID;
                    sendParamItem["paramList"]         = paramList;
                    sendParamItem["TemplateSign"]      = item.TemplateSign;
                    sendParamItem["dataItem"]          = dataItem;
                    sendParamList.Add(sendParamItem);
                    needSendCount += GetRealSmsCountByContent(item.TemplateContent, paramList);
                }
            }
            if (RestCount < needSendCount)
            {
                error = "短信余额不足,请先充值";
                return(false);
            }
            var sendResultList = new List <Sms_SendResult>();
            var customerList   = new List <ThirdCustomer>();

            foreach (var sendParamItem in sendParamList)
            {
                var    dataItem          = sendParamItem["dataItem"] as ThirdCustomer;
                string RelatePhoneNumber = sendParamItem["RelatePhoneNumber"].ToString();
                string TemplateID        = sendParamItem["TemplateID"].ToString();
                var    paramList         = sendParamItem["paramList"] as List <string>;
                string TemplateSign      = sendParamItem["TemplateSign"].ToString();
                string sendResult        = string.Empty;
                bool   status            = Utility.TencentSmsNew.doPostSmsMethod(new string[] { RelatePhoneNumber }, paramList, TemplateID, ref sendResult, sign: TemplateSign);
                if (status)
                {
                    sendStatus            = true;
                    dataItem.LastSendTime = DateTime.Now;
                    customerList.Add(dataItem);
                }
                var sendResultItem = new Sms_SendResult();
                sendResultItem.TemplateID = !string.IsNullOrEmpty(TemplateID) ? TemplateID : "无";
                sendResultItem.SendTime   = DateTime.Now;
                sendResultItem.SendStatus = status ? 1 : 2;
                sendResultItem.SendResult = sendResult;
                sendResultItem.CustomerID = dataItem.ID;
                sendResultList.Add(sendResultItem);
            }
            using (SqlHelper helper = new SqlHelper())
            {
                try
                {
                    helper.BeginTransaction();
                    foreach (var item in sendResultList)
                    {
                        item.Save(helper);
                    }
                    foreach (var item in customerList)
                    {
                        item.Save(helper);
                    }
                    helper.Commit();
                }
                catch (Exception ex)
                {
                    helper.Rollback();
                    Utility.LogHelper.WriteError("Sms_SendResult", "Save", ex);
                }
            }
            return(sendStatus);
        }