Exemple #1
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="pc">pc</param>
        /// <returns>影响的记录行数</returns>
        public int DeleteMultiple(ParameterCollection pc)
        {
            int ret = 0;

            AutoDialerTaskNumberInfoModel autodialertasknumberinfo = new AutoDialerTaskNumberInfoModel();

            ret = DbUtil.Current.DeleteMultiple(autodialertasknumberinfo, pc);

            return(ret);
        }
Exemple #2
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="autodialertasknumberinfo">实体</param>
        /// <param name="pc">pc</param>
        /// <returns>影响的记录行数</returns>
        public int UpdateMultiple(AutoDialerTaskNumberInfoModel autodialertasknumberinfo, ParameterCollection pc)
        {
            int ret = 0;

            autodialertasknumberinfo.ModifiedBy = SessionUtil.Current.UserId;
            autodialertasknumberinfo.ModifiedOn = DateTime.Now;

            ret = DbUtil.Current.UpdateMultiple(autodialertasknumberinfo, pc);

            return(ret);
        }
Exemple #3
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="autodialertasknumberinfo">实体</param>
        /// <returns>影响的记录行数</returns>
        public int Update(AutoDialerTaskNumberInfoModel autodialertasknumberinfo)
        {
            int ret = 0;

            autodialertasknumberinfo.ModifiedBy = SessionUtil.Current.UserId;
            autodialertasknumberinfo.ModifiedOn = DateTime.Now;

            ret = DbUtil.Current.Update(autodialertasknumberinfo);

            return(ret);
        }
Exemple #4
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="autodialernumberid"></param>
        /// <returns>影响的记录行数</returns>
        public int Delete(string autodialernumberid)
        {
            int ret = 0;

            AutoDialerTaskNumberInfoModel autodialertasknumberinfo = new AutoDialerTaskNumberInfoModel();

            autodialertasknumberinfo.AutoDialerNumberId = autodialernumberid;

            ret = DbUtil.Current.Delete(autodialertasknumberinfo);

            return(ret);
        }
Exemple #5
0
        /// <summary>
        /// 根据条件获取实体集合
        /// </summary>
        /// <param name="pc">pc</param>
        /// <param name="obc">obc</param>
        /// <returns>实体</returns>
        public List <AutoDialerTaskNumberInfoModel> RetrieveMultiple(ParameterCollection pc, OrderByCollection obc)
        {
            List <AutoDialerTaskNumberInfoModel> autodialertasknumberinfos = new List <AutoDialerTaskNumberInfoModel>();

            AutoDialerTaskNumberInfoModel autodialertasknumberinfo = new AutoDialerTaskNumberInfoModel();
            DataTable dt = DbUtil.Current.RetrieveMultiple(autodialertasknumberinfo, pc, obc);

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                autodialertasknumberinfo = new AutoDialerTaskNumberInfoModel();
                autodialertasknumberinfo.ConvertFrom(dt, i);
                autodialertasknumberinfos.Add(autodialertasknumberinfo);
            }

            return(autodialertasknumberinfos);
        }
Exemple #6
0
        /// <summary>
        /// 根据主键获取实体
        /// </summary>
        /// <param name="autodialernumberid"></param>
        /// <returns>实体</returns>
        public AutoDialerTaskNumberInfoModel Retrieve(string autodialernumberid)
        {
            AutoDialerTaskNumberInfoModel autodialertasknumberinfo = new AutoDialerTaskNumberInfoModel();

            autodialertasknumberinfo.AutoDialerNumberId = autodialernumberid;

            DataTable dt = DbUtil.Current.Retrieve(autodialertasknumberinfo);

            if (dt.Rows.Count < 1)
            {
                return(null);
            }

            autodialertasknumberinfo.ConvertFrom(dt);

            return(autodialertasknumberinfo);
        }
        /// <summary>
        /// 添加自动外呼任务外呼号码条目。
        /// </summary>
        /// <param name="taskId"></param>
        /// <param name="numberList"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        public bool AddAutoDialerTaskNumbers(string taskId, List <string> numberList, out int nowTotal, out string message)
        {
            bool result = false;

            nowTotal = 0;
            message  = "操作失败,请与管理员联系";

            AutoDialerTaskInfoModel taskInfo = Retrieve(taskId);

            if (taskInfo == null)
            {
                message = "操作失败,当前任务ID不存在";
                return(false);
            }

            nowTotal = Convert.ToInt32(taskInfo.DialerNumberTotal);

            if (taskInfo.Status == 1)
            {
                message = "操作失败,当前任务正在执行中";
                return(false);
            }

            #region 往TF_CMS数据库中插入数据

            if (numberList != null && numberList.Count > 0)
            {
                string insertSql = @"
INSERT INTO [DIALER_INFO]
           ([DIALER_ID]
           ,[PHONE]
           ,[DIALER_TYPE]
           ,[BEGIN_TIME]
           ,[INTERVAL]
           ,[TIMES]
           ,[GENERATE_TIME]
           ,[AGENT_ID]
           ,[PRIORITY]
           ,[LOCK_ID]
           ,[LOCK_TIME]
           ,[LOCK_PORT]
           ,[FREE_ID]
           ,[TRANSFER_AGENT]
           ,[FILE_NAME]
           ,[TTS_TEXT]
           ,[CONTENT]
           ,[EVENT_ID]
           ,[MONEY_DATE]
           ,[TOTAL_MONEY]
           ,[NBH])
     VALUES
           ($numberId$,								-- 外拨任务编号
            $number$,			                    -- 外拨号码
            '',                                     -- 1,                                   -- 外拨类型
            $begintime$,                            -- 外拨开始时间
            $interval$,                             -- 外拨时间间隔
            $trycount$,                             -- 外拨失败重试次数
            GETDATE(),                              -- 外拨任务添加时间,可默认为记录添加当前的系统时间
            '',                                     -- null,                                -- 座席ID(预留字段)
            $priority$,                             -- 优先级(需赋初值,1即可)
            0,                                      -- 是否锁定(需赋初值,0即可)
            '1900-1-1',                             -- 任务锁定时间(需赋初值,1900-1-1即可)
            -1,                                     -- null,                                -- 锁定端口
            $projectId$,                            -- 对应的外拨任务ProjectID
            '0',                                    -- 是否转接座席
            null,                                   -- 任务关联文件(预留字段)
            null,                                   -- 外拨成功播放的TTS内容(预留字段)
            null,                                   -- 任务关联文字内容
            null,                                   -- 事件编号(预留字段)
            null,                                   -- 计费日期(预留字段)
            null,                                   -- 总费用(预留字段)
            0)                                      -- 每小时费用(预留字段,需赋初值,0即可)

";

                try
                {
                    DbUtil.IBPDBManager.BeginTransaction();
                    DbUtil.IVRDBManager.BeginTransaction();

                    AutoDialerTaskNumberInfoModel ibpNumberInfo = null;

                    ParameterCollection ivrpc = new ParameterCollection();
                    int counter = 0;

                    foreach (string numberInfo in numberList)
                    {
                        if (string.IsNullOrEmpty(numberInfo))
                        {
                            continue;
                        }
                        ibpNumberInfo = new AutoDialerTaskNumberInfoModel();
                        ibpNumberInfo.AutoDialerNumberId = Guid.NewGuid().ToString();
                        ibpNumberInfo.AutodialerTaskId   = taskInfo.AutoDialerTaskId;
                        ibpNumberInfo.IvrDialerProjectId = taskInfo.IvrDialerProjectId;
                        ibpNumberInfo.DialerNumber       = numberInfo.Replace("\r", "").Replace("\n", "").Replace("\t", "");

                        if (AutoDialerTaskNumberInfoService.Instance.Create(ibpNumberInfo) == 1)
                        {
                            ivrpc.Clear();
                            ivrpc.Add("numberId", ibpNumberInfo.AutoDialerNumberId);
                            ivrpc.Add("number", ibpNumberInfo.DialerNumber);
                            ivrpc.Add("begintime", taskInfo.BeginTime);
                            ivrpc.Add("interval", taskInfo.Interval);
                            ivrpc.Add("trycount", taskInfo.RetryCount);
                            ivrpc.Add("priority", taskInfo.Priority);
                            ivrpc.Add("projectId", taskInfo.IvrDialerProjectId);

                            if (DbUtil.IVRDBManager.IData.ExecuteNonQuery(insertSql, ivrpc) != 1)
                            {
                                DbUtil.IBPDBManager.RollbackTransaction();
                                DbUtil.IVRDBManager.RollbackTransaction();
                                message = "操作失败,往IVR系统数据库传递自动外呼号码失败";
                                return(false);
                            }

                            counter++;
                        }
                        else
                        {
                            DbUtil.IBPDBManager.RollbackTransaction();
                            DbUtil.IVRDBManager.RollbackTransaction();
                            message = "操作失败,往IBP系统数据库传递自动外呼号码失败";
                            return(false);
                        }
                    }

                    string totalSql        = @"SELECT COUNT(1) FROM auto_dialer_task_number_info WHERE autodialer_task_id = $taskId$";
                    ParameterCollection pc = new ParameterCollection();
                    pc.Add("taskId", taskInfo.AutoDialerTaskId);

                    nowTotal = Convert.ToInt32(DbUtil.IBPDBManager.IData.ExecuteScalar(totalSql, pc));

                    string updateSql = "UPDATE auto_dialer_task_info SET dialer_number_total = $total$ WHERE auto_dialer_task_id =  $taskId$";
                    pc.Add("total", nowTotal);

                    if (DbUtil.IBPDBManager.IData.ExecuteNonQuery(updateSql, pc) == 1)
                    {
                        DbUtil.IBPDBManager.CommitTransaction();
                        DbUtil.IVRDBManager.CommitTransaction();

                        message = string.Format("成功插入自动外呼号码共 {0} 行", counter);
                        result  = true;
                    }
                    else
                    {
                        DbUtil.IBPDBManager.RollbackTransaction();
                        DbUtil.IVRDBManager.RollbackTransaction();
                        message = "操作失败,更新IBP系统自动外呼号码总数失败";
                        return(false);
                    }
                }
                catch (Exception ex)
                {
                    DbUtil.IVRDBManager.RollbackTransaction();
                    DbUtil.IBPDBManager.RollbackTransaction();
                    message = "操作失败,往IVR系统数据库传递自动外呼号码异常";
                    LogUtil.Error("往IVR系统数据库传递自动外呼号码异常", ex);
                    return(false);
                }
            }

            #endregion


            return(result);
        }