/// <summary> /// 大批量插入数据(_BatchSize/每批次) 。 /// </summary> /// <param name="dt"></param> /// <param name="tableName"></param> /// <param name="msg"></param> /// <returns></returns> public bool innserMsg(DataTable dt, string tableName, ref SmsError msg) { using (SqlConnection conn = new SqlConnection(_conStr)) { conn.Open(); using (SqlTransaction transaction = conn.BeginTransaction()) { try { //SqlBulkCopy bulkCopy = new SqlBulkCopy(conn, SqlBulkCopyOptions.CheckConstraints, transaction); using (SqlBulkCopy bulkCopy = new SqlBulkCopy(conn, SqlBulkCopyOptions.Default, transaction)) { bulkCopy.BatchSize = _BatchSize; bulkCopy.BulkCopyTimeout = _commandTimeOut; bulkCopy.DestinationTableName = tableName; foreach (DataColumn col in dt.Columns) { bulkCopy.ColumnMappings.Add(col.ColumnName, col.ColumnName); } bulkCopy.WriteToServer(dt); transaction.Commit(); conn.Close(); conn.Dispose(); msg.errosMsg = "success"; msg.errorNum = "000"; return(true); } } catch (Exception ex) { LogHelper.Error(ex); msg.errosMsg = ex.Message; msg.errorNum = "005"; transaction.Rollback(); conn.Close(); conn.Dispose(); return(false); } } } }
public string SmsSend(string mobiles, string msg, int?creatorId, string creator, DateTime?sendTime, int?sysPlatform = (int)Platform.网站系统, int?stype = (int)SendType.一般短信, int?levelNum = 0) { SmsError se = new SmsError(); JavaScriptSerializer serializer = new JavaScriptSerializer(); if (!myHeader.CheckLogin()) { se.errorNum = "010"; se.errosMsg = "身份认证不通过!"; var emsg = serializer.Serialize(se); return(emsg); } string filterstr = string.Empty; if (KeysFilter(msg, ref filterstr)) { se.errorNum = "007"; se.errosMsg = "内容包括非法字符!非法字符:" + filterstr; var emsg = serializer.Serialize(se); return(emsg); } try { string error = string.Empty; SmsInfo info = new SmsInfo() { creator = creator, creatorId = creatorId, levelNum = levelNum, mobile = mobiles, msg = msg, pipeId = _pipeId, sendTime = sendTime, stype = stype, sysPlatform = sysPlatform }; if (validate(info, ref se)) { string[] arrys = info.mobile.Replace(';', ';').Replace(',', ';').Split(';'); DataTable dt = CreateTable(); dt = CreateRow(dt, arrys, info); bool result = innserMsg(dt, _tableName, ref se); var emsg = serializer.Serialize(se); LogHelper.Info("系统异常error :" + emsg); return(emsg); } else { var emsg = serializer.Serialize(se); LogHelper.Info("参数丢失error :" + emsg); return(emsg); } } catch (Exception ex) { LogHelper.Error(ex); se = new SmsError() { errorNum = "006", errosMsg = ex.Message }; var emsg = serializer.Serialize(se); return(emsg); } }
/// <summary> /// 参数验证和填充表数据 /// </summary> /// <param name="info"></param> /// <param name="se"></param> /// <returns></returns> public bool validate(SmsInfo info, ref SmsError se) { //SmsError se = new SmsError(); if (string.IsNullOrWhiteSpace(info.mobile)) { se.errosMsg = "客户手机号码为空!"; se.errorNum = "001"; return(false); } if (!string.IsNullOrWhiteSpace(info.mobile)) { string[] arrys = info.mobile.Replace(';', ';').Replace(',', ';').Split(';'); if (arrys.Length > 100) { se.errosMsg = "手机号最多选中100个!"; se.errorNum = "009"; return(false); } } if (string.IsNullOrWhiteSpace(info.msg)) { se.errosMsg = "发送消息内容为空!"; se.errorNum = "002"; return(false); } if (!string.IsNullOrWhiteSpace(info.msg) && info.msg.Length >= 70) { se.errosMsg = "发送消息内容长度小于70个字符!"; se.errorNum = "008"; return(false); } if (info.creatorId == null) { info.creatorId = 0; //se.errosMsg = "发送消息人ID值为空!"; //se.errorNum = "003"; //return false; } if (string.IsNullOrWhiteSpace(info.creator)) { info.creator = "0"; //se.errosMsg = "发送消息人名字为空!"; //se.errorNum = "004"; //return false; } if (info.stype == null) { info.stype = (int)SendType.一般短信;//默认为一般短信 } if (info.sendTime == null) { info.sendTime = DateTime.Now; } if (info.levelNum == null) { info.levelNum = 0; } if (info.sysPlatform == null) { info.sysPlatform = (int)Platform.网站系统; } info.msg = _autograph + info.msg; return(true); }