using CRM.Core.BLL.Base; using CRM.Core.BLL.EventBus.Events; using CRM.Core.BLL.Util; using CRM.Core.BLL.Wx; using CRM.Core.Common.EventBus; using CRM.Core.Common.WebHelper; using CRM.Core.DTO; using System; using System.Collections.Generic; using System.Linq; using System.Text; using WX.CRM.Common; namespace CRM.Core.BLL.EventBus.EventHandlers { public class RejectContractEventHandler : IEventHandler { private readonly SecurityHelper sHelper = new SecurityHelper(); private readonly WX_SZZYORDER_BL _order = new WX_SZZYORDER_BL(); private readonly Bas_ActLog_BL _actLog = new Bas_ActLog_BL(); private CACHE_BL _cache = new CACHE_BL(); public void Handle(RejectContractEvent @event) { try { LogHelper.Info("合同审核事件推送执行:" + @event.ToJson()); var env = Utility.GetSettingOrNullByKey("env"); var order = _order.Get(p => p.ORDERID == @event.OrderId); if (order != null) { try { var status = "0"; if (!string.IsNullOrWhiteSpace(@event.RejectRemark)) { var rejectArr = @event.RejectRemark.Split(new char[3] { '#', '#', '#' }, StringSplitOptions.RemoveEmptyEntries); status = rejectArr[0].Replace("[", "").Replace("]", ""); } var orderId = Convert.ToInt64(order.SZZYORDERID.Value); var content = new { orderId, status }; var paraYP = JsonHelper.ObjDivertToJson(sHelper.createAjaxSignEncodingStr(JsonHelper.ObjDivertToJson(content), SecurityHelper.OrderClientIdKey)); //LogHelper.Info("paraYP:" + paraYP.ToString()); var ypurl = "https://r2.soft.dn8188.com/contract_sign_crm/updatecompliancestatus"; if (!string.IsNullOrEmpty(env)) { ypurl = "http://192.168.11.141:10004/contract_sign_crm/updatecompliancestatus"; } var retmsg = Utility.PostAjaxData(ypurl, paraYP, Encoding.UTF8);//返回信息 LogHelper.Info("优品接口调用返回数据json=>:" + retmsg); } catch (Exception ee) { LogHelper.Error("优品接口调用错误:" + ee.ToString()); } try { if (string.IsNullOrEmpty(env)) { var status = "0"; if (!string.IsNullOrWhiteSpace(@event.RejectRemark)) { var rejectArr = @event.RejectRemark.Split(new char[3] { '#', '#', '#' }, StringSplitOptions.RemoveEmptyEntries); status = rejectArr[0].Replace("[", "").Replace("]", ""); } var orderId = Convert.ToInt64(order.SZZYORDERID.Value); var username = order.SOFTUSERNAME; var productcode = order.PRODUCTCODE; var content = new { username, orderId, productcode, status }; var paraYP = JsonHelper.ObjDivertToJson(sHelper.createAjaxSignEncodingStr(JsonHelper.ObjDivertToJson(content), SecurityHelper.OrderClientIdKey)); //LogHelper.Info("paraYP2:" + paraYP.ToString()); var retmsg = Utility.PostAjaxData("http://post.hc.dn8188.com/Rights/signback.html", paraYP, Encoding.UTF8);//返回信息 LogHelper.Info("企微接口调用返回数据json=>:" + retmsg); } } catch (Exception exx) { LogHelper.Error("企微接口调用错误:" + exx.ToString()); } try { //http://post.hc.dn8188.com/Rights/orderback.html var noticeUrl = Utility.GetSettingByKey("noticeUrl"); if (!string.IsNullOrEmpty(noticeUrl)) { Utility.GetData(noticeUrl, "orderid=" + @event.OrderId.ToString() + "&type=3&values=" + @event.Status, Encoding.UTF8); } } catch (Exception exx) { LogHelper.Error("通知前端错误:" + exx.ToString()); } var pt1Channel = _cache.GetValue_Parameter("pt1Channel"); if (!string.IsNullOrEmpty(pt1Channel)) { try { var arrChannel = pt1Channel.Split('|'); foreach (var channel in arrChannel) { var itemChannel = channel.Split(','); var min = Convert.ToInt32(itemChannel[0]); var max = Convert.ToInt32(itemChannel[1]); if (order.CHANNEL >= min && order.CHANNEL <= max) { var Username = "donggao"; var Password = "clyuQwhLcUgQfV1r"; var Authorization = "Basic " + Utility.StrToBase64(Username + ":" + Password); //LogHelper.Info("Authorization:" + Authorization); var orderNo = order.outorderno; var thirdOrderNo = Convert.ToInt64(order.SZZYORDERID.Value); var status = "1"; var dics = new Dictionary { { "orderNo", orderNo }, { "thirdOrderNo", thirdOrderNo.ToString() }, //{ "reasonIdList", reasonIdList.ToJson() } }; var reasonIdList = new List(); if (@event.Status == -1) { var rejectArr = @event.RejectRemark.Split(new char[3] { '#', '#', '#' }, StringSplitOptions.RemoveEmptyEntries); var rejectStr = rejectArr[0].Replace("[", "").Replace("]", ""); if (!rejectStr.StartsWith("7")) { reasonIdList = (new List(rejectStr.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)).Select(x => Convert.ToInt32(x))).ToList(); status = "2"; } } dics.Add("status", status); dics.Add("reasonIdList", reasonIdList.ToJson()); var param = Utility.GetParamSrc(dics); //LogHelper.Info("param:" + param); var sign = Utility.EncryptMD5(param).ToUpper(); //LogHelper.Info("sign:" + sign); var tnbPara = new { orderNo, thirdOrderNo, reasonIdList, status, sign }; LogHelper.Info("tnbPara:" + tnbPara.ToJson()); if (string.IsNullOrEmpty(env)) { var res = Utility.PostAjaxData("http://tnbapi.dn8188.com/orders/ruleAudit", tnbPara.ToJson(), Authorization, true); //var res = Utility.PostAjaxData("http://test-tnbapi.dn8188.com/orders/ruleAudit", tnbPara.ToJson(), Authorization, true); LogHelper.Info("res:" + res); } } } } catch (Exception exx) { LogHelper.Error("淘牛帮接口调用错误:" + exx.ToString()); } } else { if ((order.CHANNEL >= 25000 && order.CHANNEL <= 26199) || (order.CHANNEL >= 3900 && order.CHANNEL <= 3999)) { try { var Username = "donggao"; var Password = "clyuQwhLcUgQfV1r"; var Authorization = "Basic " + Utility.StrToBase64(Username + ":" + Password); //LogHelper.Info("Authorization:" + Authorization); var orderNo = order.outorderno; var thirdOrderNo = Convert.ToInt64(order.SZZYORDERID.Value); var status = "1"; var dics = new Dictionary { { "orderNo", orderNo }, { "thirdOrderNo", thirdOrderNo.ToString() }, //{ "reasonIdList", reasonIdList.ToJson() } }; var reasonIdList = new List(); if (@event.Status == -1) { var rejectArr = @event.RejectRemark.Split(new char[3] { '#', '#', '#' }, StringSplitOptions.RemoveEmptyEntries); var rejectStr = rejectArr[0].Replace("[", "").Replace("]", ""); if (!rejectStr.StartsWith("7")) { reasonIdList = (new List(rejectStr.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)).Select(x => Convert.ToInt32(x))).ToList(); status = "2"; } } dics.Add("status", status); dics.Add("reasonIdList", reasonIdList.ToJson()); var param = Utility.GetParamSrc(dics); //LogHelper.Info("param:" + param); var sign = Utility.EncryptMD5(param).ToUpper(); //LogHelper.Info("sign:" + sign); var tnbPara = new { orderNo, thirdOrderNo, reasonIdList, status, sign }; LogHelper.Info("tnbPara:" + tnbPara.ToJson() + ",channel:" + order.CHANNEL); if (string.IsNullOrEmpty(env)) { var res = Utility.PostAjaxData("http://tnbapi.dn8188.com/orders/ruleAudit", tnbPara.ToJson(), Authorization, true); //var res = Utility.PostAjaxData("http://test-tnbapi.dn8188.com/orders/ruleAudit", tnbPara.ToJson(), Authorization, true); LogHelper.Info("res:" + res); } } catch (Exception exx) { LogHelper.Error("淘牛帮接口调用错误:" + exx.ToString()); } } } } var host = Utility.GetSettingOrNullByKey("DataSyncApiUrl"); var url = host + "/api/DataSync"; var para = new SYNC_PUSH_DTO() { bidatatype = "Client_RejectContract", deptcode = @event.DeptCode, jsontext = new { @event.OrderId, @event.Status, @event.RejectRemark, @event.IdCard, @event.Name }.ToJson() }; var rep = Utility.PostAjaxData(url, para.ToJson(), Encoding.UTF8); var ret = Utility.JSONToObject(rep); if (!ret.result) LogHelper.Error("接口 SignContractEventHandler 写入失败!"); if (@event.OperaId.HasValue) { var info = new Model.Entity.Bas_ActLog() { ActType = 2, ActTypeName = "合同审核", Operaor = @event.OperaId.Value, OperatorName = @event.OperaName, Status = @event.Status, OperationTime = DateTime.Now, OrderId = @event.OrderId }; if (@event.Status == 2) { info.Remark = "合同审核通过"; } else if (@event.Status == -1) { info.Remark = "合同审核驳回"; } else { info.Remark = "未知"; } _actLog.Add(info); } } catch (Exception ex) { LogHelper.Error("签约事件推送错误:" + ex.ToString()); } } } }