예제 #1
0
        /// <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);
            }
        }
예제 #2
0
        /// <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);
        }
예제 #3
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);
            }
        }
예제 #4
0
        /// <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);
        }
예제 #5
0
        /// <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);
        }