ComplianceServer/oldcode/CRMServices/Res_AlloCate/ResReSetRuleLog.cs

99 lines
3.0 KiB
C#

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;
}
}
}
}