using Quartz; using System; using System.Data; using System.Web; using WX.CRM.BLL.Base; using WX.CRM.BLL.Res; using WX.CRM.BLL.Util; using WX.CRM.Common; namespace WX.CRM.CRMServices.Res { /// /// 将RES_AUTODIAL_POOL表的数据转移到CTI的Mysql自动外呼表中去 /// public class AutoDialJob : IJob { static bool _isNotice = false; public void Execute(JobExecutionContext context) { if (_isNotice) return; _isNotice = true; try { new AutoDial().start(); } catch (Exception e) { WX.CRM.Common.LogHelper.Error("WX.CRM.CRMServices.Res.AutoDialJob().Execute:" + e.ToString()); } finally { _isNotice = false; } } } public class AutoDial { /// /// 启动数同步 /// public void start() { var _num_encypt = new BAS_PARAMETER_BL().GetModel_Patameter("SYS_CALLOUT_NUM_ENCYPTDES"); var _bol_encypt = false; if (_num_encypt != null && _num_encypt.PARAVALUE.ToLower() == "true") { _bol_encypt = true; } string clientid = Utility.GetSettingByKey("CRMClientKey"); AutoDial_BL bl = new AutoDial_BL(); DataTable tab = bl.GetAutoDialPool(); SecurityHelper sHelper = new SecurityHelper(); foreach (DataRow item in tab.Rows) { //LogHelper.Error("oracle号码:" + item["mobile"].ToString()); string mobile = sHelper.decyptData(clientid, item["mobile"].ToString()); //LogHelper.Error("解密号码:"+mobile); string resid = item["resid"].ToString(); try { if (_bol_encypt)//DES加密 { mobile = sHelper.encyptCtiNumStr(mobile.Trim()); } } catch (Exception ex) { LogHelper.Error(ex); } mobile = HttpUtility.UrlEncode(mobile); //LogHelper.Error("CTI号码:" + mobile); bl.InsertDataToMySql(mobile, resid);//号码插入 } if (tab.Rows.Count > 0) bl.ClearAutoDialPool();//数据清理 } } }