using Newtonsoft.Json; using Quartz; using System; using System.Linq; using System.Text; using WX.CRM.BLL.Res; using WX.CRM.Common; namespace WX.CRM.CRMServices.Res_AlloCate { public class ResReSetRuleLog { string url = Common.Utility.GetSettingOrNullByKey("ReSetRuleUrl"); string channel = Utility.GetSettingOrNullByKey("Channel"); RES_RESETRULELOG_BL _resetRuleLog = new RES_RESETRULELOG_BL(); //SecurityHelper sHelper = new SecurityHelper(); public void Start() { try { if (string.IsNullOrEmpty(url)) { LogHelper.Info("ReSetRuleUrl未配置"); return; } if (string.IsNullOrEmpty(channel)) { LogHelper.Info("Channel未配置"); return; } //LogHelper.Info("ResReSetRuleLog Start"); var logs = _resetRuleLog.GetList(p => p.ISEXE == 0); //LogHelper.Info("ResReSetRuleLog load"); if (!logs.Any()) { return; } var log = logs.OrderByDescending(p => p.RESETTIME).FirstOrDefault(); if (log != null) { //时间到了,执行 if (log.RESETTIME <= DateTime.Now) { var reqUrl = url + "?ch=" + channel + "&sid=0"; //LogHelper.Info("requrl:" + reqUrl); var rsp = Utility.PostData(reqUrl, Encoding.UTF8); var rspObj = JsonConvert.DeserializeAnonymousType(rsp, new { result = false, retcode = 0, retmsg = string.Empty }); LogHelper.Info("重置规则结果:" + rspObj.ToJson()); if (rspObj.result) { _resetRuleLog.Exec(log.ID); } } //else //{ // //LogHelper.Info("log.RESETTIME:" + log.RESETTIME.ToString() + "---DateTime.Now" + DateTime.Now.ToString()); //} } } catch (Exception ex) { LogHelper.Error(ex); } } } public class ResReSetRuleLogJob : IJob { static bool _isNotice = false; public void Execute(JobExecutionContext context) { if (_isNotice) return; _isNotice = true; try { new ResReSetRuleLog().Start(); } catch (Exception e) { WX.CRM.Common.LogHelper.Error("WX.CRM.CRMServices.Res_AlloCate.WwHhuserActJob.WwHhuserAct().Execute:" + e); } finally { _isNotice = false; } } } }