/// <summary> /// 发送出团提醒短信 /// </summary> /// <param name="model">出团提醒短信配置实体</param> private void SendSms(MSmsSetting model) { if (model == null || string.IsNullOrEmpty(model.CompanyId)) { return; } var list = _dal.GetSmsTourTimePlan(model.CompanyId, model.BeforeDay); if (list == null || list.Count < 1) { return; } EyouSoft.Toolkit.Utils.WLog(string.Format("系统{0}发送{1}条出团提醒短信", model.CompanyId, list.Count), "/log/service.sms.ltour.log"); foreach (var t in list) { if (t == null || string.IsNullOrEmpty(t.CompanyId) || t.Traveller == null || t.Traveller.Count < 1) { continue; } SendMessage(t, model.Message); } }
/// <summary> /// 设置公司短信配置信息 /// </summary> /// <param name="model">短信配置实体</param> /// <returns>返回1成功,其他失败</returns> public int SetSmsSetting(MSmsSetting model) { if (model == null || string.IsNullOrEmpty(model.CompanyId)) { return(0); } DbCommand dc = _db.GetSqlStringCommand(SqlSmsSettingUpdate); _db.AddInParameter(dc, "CompanyId", DbType.AnsiStringFixedLength, model.CompanyId); _db.AddInParameter(dc, "Type", DbType.Byte, (int)model.Type); _db.AddInParameter(dc, "Message", DbType.String, model.Message); _db.AddInParameter(dc, "BeforeDay", DbType.Int32, model.BeforeDay); _db.AddInParameter(dc, "Hour", DbType.Int32, model.Hour); _db.AddInParameter(dc, "IsEnable", DbType.AnsiStringFixedLength, model.IsEnabled ? "1" : "0"); _db.AddInParameter(dc, "IsSend", DbType.AnsiStringFixedLength, "0");//当天是否已发送直接写0值,没有发送 _db.AddInParameter(dc, "OperatorId", DbType.AnsiStringFixedLength, model.OperatorId); return(DbHelper.ExecuteSql(dc, _db) > 0 ? 1 : 0); }
/// <summary> /// 发送生日提醒短信 /// </summary> /// <param name="model">生日提醒短信配置实体</param> private void SendSms(MSmsSetting model) { if (model == null || string.IsNullOrEmpty(model.CompanyId)) { return; } var list = _dal.GetSmsBirthdayRemindPlan(model.CompanyId, model.BeforeDay); if (list == null || list.Count < 1) { return; } EyouSoft.Toolkit.Utils.WLog(string.Format("系统{0}发送{1}条生日提醒短信", model.CompanyId, list.Count), "/log/service.sms.birthday.log"); foreach (var t in list) { if (t == null || string.IsNullOrEmpty(t.CompanyId) || string.IsNullOrEmpty(t.MobilePhone)) { continue; } var sendMessage = new EyouSoft.BackgroundServices.SmsApi.MSendMessage { CompanyId = t.CompanyId, Mobiles = new[] { new EyouSoft.BackgroundServices.SmsApi.MSmsNumber { Code = t.MobilePhone } }, SendChannel = 0, SendTime = DateTime.Now, SendType = EyouSoft.BackgroundServices.SmsApi.SendType.直接发送, SmsContent = model.Message.Replace("[姓名]", t.Name).Replace("[生日]", t.Birthday.ToString("MM-dd")), UserFullName = string.Empty,//直接包含在内容中 UserId = model.OperatorId }; SmsUtils.GetSmsApi().SendMessage(sendMessage); } }
/// <summary> /// 根据类型获取短信提醒配置,指定点时间等于当前点时间时,更新当天已发送 /// </summary> /// <param name="settingType">提醒配置类型</param> /// <returns></returns> public Queue <MSmsSetting> GetSmsSettingByType(SettingType settingType) { var strSql = new StringBuilder(" SELECT [CompanyId],[Type],[Message],[BeforeDay],[Hour],[IsEnable],[IsSend],[OperatorId],[IssueTime] FROM [tbl_SmsSetting] "); strSql.Append(" where [IsEnable] = @IsEnable "); strSql.Append(" and [IsSend] = @IsSend "); strSql.Append(" and [Type] = @Type "); DbCommand dc = _db.GetSqlStringCommand(strSql.ToString()); _db.AddInParameter(dc, "IsEnable", DbType.AnsiStringFixedLength, "1"); _db.AddInParameter(dc, "IsSend", DbType.AnsiStringFixedLength, "0"); _db.AddInParameter(dc, "Type", DbType.Byte, (int)settingType); var list = new Queue <MSmsSetting>(); MSmsSetting model; using (IDataReader dr = DbHelper.ExecuteReader(dc, _db)) { while (dr.Read()) { int hour = -1; if (!dr.IsDBNull(dr.GetOrdinal("Hour"))) { hour = dr.GetInt32(dr.GetOrdinal("Hour")); } if (hour != DateTime.Now.Hour) { continue; } model = new MSmsSetting(); if (!dr.IsDBNull(dr.GetOrdinal("CompanyId"))) { model.CompanyId = dr.GetString(dr.GetOrdinal("CompanyId")); } if (!dr.IsDBNull(dr.GetOrdinal("Type"))) { model.Type = (SettingType)dr.GetByte(dr.GetOrdinal("Type")); } if (!dr.IsDBNull(dr.GetOrdinal("Message"))) { model.Message = dr.GetString(dr.GetOrdinal("Message")); } if (!dr.IsDBNull(dr.GetOrdinal("BeforeDay"))) { model.BeforeDay = dr.GetInt32(dr.GetOrdinal("BeforeDay")); } model.Hour = hour; if (!dr.IsDBNull(dr.GetOrdinal("IsEnable"))) { model.IsEnabled = GetBoolean(dr.GetString(dr.GetOrdinal("IsEnable"))); } if (!dr.IsDBNull(dr.GetOrdinal("IsSend"))) { model.IsSend = GetBoolean(dr.GetString(dr.GetOrdinal("IsSend"))); } if (!dr.IsDBNull(dr.GetOrdinal("OperatorId"))) { model.OperatorId = dr.GetString(dr.GetOrdinal("OperatorId")); } if (!dr.IsDBNull(dr.GetOrdinal("IssueTime"))) { model.IssueTime = dr.GetDateTime(dr.GetOrdinal("IssueTime")); } SetTodaySend(settingType, model.CompanyId); list.Enqueue(model); } } return(list); }
/// <summary> /// 获取公司短信配置信息 /// </summary> /// <param name="companyId">公司编号</param> /// <param name="types">配置类型集合</param> /// <returns>公司短信配置信息集合</returns> public IList <MSmsSetting> GetSmsSetting(string companyId, params SettingType[] types) { IList <MSmsSetting> list = null; if (string.IsNullOrEmpty(companyId)) { return(list); } MSmsSetting model; var strSql = new StringBuilder(" select CompanyId,[Type],[Message],[BeforeDay],[Hour],[IsEnable],[IsSend],[OperatorId],[IssueTime] from tbl_SmsSetting "); strSql.AppendFormat(" where CompanyId = '{0}' ", companyId); if (types != null) { if (types.Length == 1) { strSql.AppendFormat(" and [Type] = {0} ", (int)types[0]); } else { string strIds = types.Aggregate(string.Empty, (current, t) => current + ((int)t + ",")); strSql.AppendFormat(" and [Type] in ({0}) ", strIds.Trim(',')); } } DbCommand dc = _db.GetSqlStringCommand(strSql.ToString()); using (IDataReader dr = DbHelper.ExecuteReader(dc, _db)) { list = new List <MSmsSetting>(); while (dr.Read()) { model = new MSmsSetting(); if (!dr.IsDBNull(dr.GetOrdinal("CompanyId"))) { model.CompanyId = dr.GetString(dr.GetOrdinal("CompanyId")); } if (!dr.IsDBNull(dr.GetOrdinal("Type"))) { model.Type = (SettingType)dr.GetByte(dr.GetOrdinal("Type")); } if (!dr.IsDBNull(dr.GetOrdinal("Message"))) { model.Message = dr.GetString(dr.GetOrdinal("Message")); } if (!dr.IsDBNull(dr.GetOrdinal("BeforeDay"))) { model.BeforeDay = dr.GetInt32(dr.GetOrdinal("BeforeDay")); } if (!dr.IsDBNull(dr.GetOrdinal("Hour"))) { model.Hour = dr.GetInt32(dr.GetOrdinal("Hour")); } if (!dr.IsDBNull(dr.GetOrdinal("IsEnable")) && dr.GetString(dr.GetOrdinal("IsEnable")) == "1") { model.IsEnabled = true; } if (!dr.IsDBNull(dr.GetOrdinal("IsSend")) && dr.GetString(dr.GetOrdinal("IsSend")) == "1") { model.IsSend = true; } if (!dr.IsDBNull(dr.GetOrdinal("OperatorId"))) { model.OperatorId = dr.GetString(dr.GetOrdinal("OperatorId")); } if (!dr.IsDBNull(dr.GetOrdinal("IssueTime"))) { model.IssueTime = dr.GetDateTime(dr.GetOrdinal("IssueTime")); } list.Add(model); } } return(list); }