Ejemplo n.º 1
0
        /// <summary>
        /// 后台HangFire调用定时任务
        /// </summary>
        /// <param name="settingId"></param>
        public static void ExcuteTimerTask(int settingId)
        {
            //从后台任务列表获取到需要发送的记录
            ConditionSettingModel.SettingModel model = ConditionSettingBLL.GetSendingTaskItem(settingId);

            string batchId = "";

            if (string.IsNullOrEmpty(model.LatestBatchId))
            {
                //从后台设置的任务生成消息批次
                batchId = PreparePushingMsg(model.AccIdSet, model.AccIdCount, 3, model.MobileTitle, model.PubTitle,
                                            model.EmailTitle,
                                            model.SmsContent, model.MobileContent, model.PubContent, model.EmailContent,
                                            model.Remark + "(" + model.SendingDate + "定时发送)", model.Verification, "1");

                //更新任务的批次Id防止重复提交
                ConditionSettingBLL.SetBatchId(settingId, batchId);
            }
            else
            {
                batchId = model.LatestBatchId;
            }

            string uName = Sys_Manage_UserBLL.GetManageUserNameById(model.Operator);

            SendMsgAuto(batchId, model.Operator, uName);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 根据筛选器还原条件到页面
        /// </summary>
        /// <returns></returns>
        public static string RecoverDisplayCondition(string verif)
        {
            ConditionSettingModel.ShowModelList modelList = new ConditionSettingModel.ShowModelList();

            List <ConditionSettingModel.ConditionRecoveryModel> list = ConditionSettingBLL.GetRuleCondition(verif);

            for (int i = 1; i < 7; i++)
            {
                List <ConditionSettingModel.ConditionRecoveryModel> tmpList =
                    list.FindAll(x => x.ConditionGroup == i);

                if (tmpList != null && tmpList.Count > 0)
                {
                    ConditionSettingModel.ShowModel tmpModel = new ConditionSettingModel.ShowModel();
                    tmpModel.ConditionGroup = i;

                    switch (i)
                    {
                    case 1:
                        tmpModel.GroupDesc = "属性信息";
                        break;

                    case 2:
                        tmpModel.GroupDesc = "订单信息";
                        break;

                    case 3:
                        tmpModel.GroupDesc = "业务信息";
                        break;

                    case 4:
                        tmpModel.GroupDesc = "登录信息";
                        break;

                    case 5:
                        tmpModel.GroupDesc = "基础数据信息";
                        break;

                    case 6:
                        tmpModel.GroupDesc = "用户标签";
                        break;

                    default:
                        tmpModel.GroupDesc = "其他信息";
                        break;
                    }

                    tmpModel.GroupList = tmpList;

                    modelList.DataList.Add(tmpModel);
                }
            }

            return(CommonLib.Helper.JsonSerializeObject(modelList));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 后台HangFire调用循环任务
        /// </summary>
        /// <param name="settingId"></param>
        public static void ExcuteRecurringTask(int settingId)
        {
            //从后台任务列表获取到需要发送的记录
            ConditionSettingModel.SettingModel model = ConditionSettingBLL.GetSendingTaskItem(settingId);

            //获取循环任务的Sql
            List <string> sqlSet =
                CommonLib.Helper.JsonDeserializeObject <List <string> >(ConditionSettingBLL.GetSqlJsonById(settingId));

            //拼装Sql组的字典
            Dictionary <int, List <int> > dicData = new Dictionary <int, List <int> >();

            for (int i = 0; i < sqlSet.Count; i++)
            {
                dicData[i] = RuleListBLL.GetAccIdByStr(sqlSet[i]);
            }

            #region 处理产生的集合并合并

            if (dicData.Count > 0)
            {
                List <int> temp = dicData.First().Value;
                foreach (var item in dicData)
                {
                    temp = temp.Intersect(item.Value).ToList();
                }

                if (temp.Count > 0)
                {
                    string accIdSet   = CommonLib.Helper.JsonSerializeObject(temp);
                    int    accIdCount = temp.Count;

                    //从后台设置的任务生成消息批次
                    string batchId = PreparePushingMsg(accIdSet, accIdCount, 4, model.MobileTitle, model.PubTitle,
                                                       model.EmailTitle,
                                                       model.SmsContent, model.MobileContent, model.PubContent, model.EmailContent,
                                                       model.Remark + "(" + model.SendingDate + "循环定时发送)", model.Verification, "1");

                    //更新任务的批次Id防止重复提交
                    ConditionSettingBLL.SetBatchId(settingId, batchId);

                    string uName = Sys_Manage_UserBLL.GetManageUserNameById(model.Operator);

                    SendMsgAuto(batchId, model.Operator, uName);
                }
            }

            #endregion
        }
Ejemplo n.º 4
0
 /// <summary>
 /// 添加后台消息发送任务设置
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public static int AddTaskSetting(ConditionSettingModel.SettingModel model)
 {
     return(ConditionSettingBLL.AddContitionSetting(model));
 }
Ejemplo n.º 5
0
 /// <summary>
 /// 初始化条件设定表记录
 /// </summary>
 /// <param name="uid"></param>
 /// <param name="accIdList"></param>
 /// <param name="verif"></param>
 /// <returns></returns>
 public static int InitialConditionRecord(int uid, string accIdList, int accIdCount, string verif)
 {
     return(ConditionSettingBLL.InitialConditionSetting(uid, accIdList, accIdCount, verif));
 }
Ejemplo n.º 6
0
 /// <summary>
 /// 更新后台消息发送任务设置的激活状态
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public static int SetTaskActive(int id)
 {
     return(ConditionSettingBLL.SetTaskActive(id));
 }