/// <summary> /// 发送ISV手机验证码(只有发送验证码可用,发送其他短信不要用此接口) /// </summary> public bool SendISVMobileValCode(int tenantId, string isv, string channelId, string content, string toPhone, SMSType type, string templateMessageText) { if (string.IsNullOrEmpty(channelId)) { AppConnectLogHelper.Error(new SMSSendException("短信通道未配置")); return(false); } var smsInvokeProvider = PlatformServiceFactory <ISMSMailProvider> .Instance(); if (smsInvokeProvider == null) { AppConnectLogHelper.Error(new ESBServiceNotFoundException("SMS ESB Service Is null")); return(false); } var smsBatch = new SMSBatch(); var shortMessages = new List <ShortMessage>() { new ShortMessage() { PhoneNumber = toPhone, MessageText = content, TemplateMessageText = templateMessageText } }; var messageCollection = new MessageCollection(shortMessages.ToArray()); smsBatch.SystemId = channelId; if (tenantId == 0) { tenantId = 2; } smsBatch.TenantId = tenantId; smsBatch.TenantName = "ISV业务短信"; smsBatch.ShortMessages = messageCollection; smsBatch.UserId = 0; ArgumentHelper.IsValid(smsBatch, true); var sendInfo = smsInvokeProvider.SMS_SendSMSByTime(smsBatch); bool isSuccess = CheckResult(sendInfo); if (isSuccess) { return(true); } AppConnectLogHelper.Error("短信发送失败:" + sendInfo); return(false); }
/// <summary> /// 增加 /// </summary> /// <param name="model"></param> /// <returns></returns> public WebResult <bool> Add_SMSBatch(SMSBatch model) { using (DbRepository db = new DbRepository()) { model.ID = Guid.NewGuid().ToString("N"); model.CreatedTime = DateTime.Now; model.BatchNum = DateTime.Now.ToString("yyyyMMddhhmmss"); using (SqlConnection coon = new SqlConnection(connectStr)) { coon.Open(); //非12580会员 // var sql = $" SELECT TOP {model.SendCount} memberid,mobile "; // sql += @"FROM( // SELECT ROW_NUMBER() OVER(ORDER BY memberid) AS RowNumber,memberid ,MoBileId as mobile FROM // CMCC_Member_phone where MoBileId not in (select Mobile from[aspnet_12580Members]) and MoBileId not in (select Mobile from aspnet_free12580Member) // ) as a //WHERE RowNumber > " + model.SkipNum; //12580会员 var sql = $" SELECT TOP {model.SendCount} id,mobile "; sql += @"FROM( SELECT ROW_NUMBER() OVER(ORDER BY id) AS RowNumber,id ,mobile FROM aspnet_All12580Member ) as a WHERE RowNumber > " + model.SkipNum; var idList = GetListResult <MemberPhone>(sql, coon); if (idList.Count > 0) { model.StartUserID = idList[0].memberId; model.EndUserID = idList[idList.Count - 1].memberId; } else { model.StartUserID = 0; model.EndUserID = 0; } var sequenceId = ExecuteScalar("select top 1 sequenceId FROM [CMCC_12580].[dbo].[CMCC_SMS_do] order by id desc", coon); if (model.AppendMibole.IsNotNullOrEmpty()) { var sb = new StringBuilder(); model.AppendMibole.Split(',').ToList().ForEach(x => { sequenceId++; sb.Append($"INSERT INTO [CMCC_12580].[dbo].[CMCC_SMS_do]([sequenceId],[mobile],[message],[addtime],[state],[batchNum])VALUES({sequenceId},'{x}','{model.Content}','{DateTime.Now}',0,'{model.BatchNum}');\r\n"); }); if (sb.Length > 0) { ExecuteNonQuer(sb.ToString(), coon); } } if (idList != null && idList.Count > 0) { var sb = new StringBuilder(); idList.ForEach(x => { sequenceId++; sb.Append($"INSERT INTO [CMCC_12580].[dbo].[CMCC_SMS_do]([sequenceId],[mobile],[message],[addtime],[state],[batchNum])VALUES({sequenceId},'{x.mobile}','{model.Content}','{DateTime.Now}',0,'{model.BatchNum}');\r\n"); if (sequenceId % 1000 == 0) { ExecuteNonQuer(sb.ToString(), coon); sb = new StringBuilder(); } }); if (sb.Length > 0) { ExecuteNonQuer(sb.ToString(), coon); } } } db.SMSBatch.Add(model); if (db.SaveChanges() > 0) { return(Result(true)); } else { return(Result(false)); } } }
/// <summary> /// /// </summary> /// <returns></returns> public ActionResult AddSMSBatch(SMSBatch model) { return(JResult(smsService.Add_SMSBatch(model))); }