using Newtonsoft.Json; using Quartz; using System; using System.Collections.Generic; using System.Text; using WX.CRM.BLL.Base; using WX.CRM.BLL.Res; using WX.CRM.BLL.Util; using WX.CRM.Common; using WX.CRM.Model.Entity; namespace WX.CRM.CRMServices.Res_AlloCate { public class ResAllocateAct { //http://post.hc.dn8188.com/Rights/WeworkExternalUser2EidEST.html?content=&sign=&clientid= //string addUrl = "http://post.hc.dn8188.com/Rights/WeworkExternalUser2EidEST.html"; string addUrl = "http://post.hc.dn8188.com/Rights/AssignUser2eid.html"; //http://post.hc.dn8188.com/Rights/WeworkExternalUser2EidESTdelete.html?content=&sign=&clientid= //string deleteUrl = "http://post.hc.dn8188.com/Rights/WeworkExternalUser2EidESTdelete.html"; RES_MYALLOCATERES_ACT_BL _resMyAllocateAct = new RES_MYALLOCATERES_ACT_BL(); RES_SALES_RULE_BL _rule = new RES_SALES_RULE_BL(); SecurityHelper sHelper = new SecurityHelper(); string channel = Common.Utility.GetSettingOrNullByKey("Channel"); BAS_PARAMETER_BL _para = new BAS_PARAMETER_BL(); public void Start() { LogHelper.Info("提交资源归属开始!"); try { if (string.IsNullOrEmpty(channel)) { LogHelper.Info("渠道配置错误!"); } var list = _resMyAllocateAct.List(); foreach (var item in list) { //if (!string.IsNullOrEmpty(item.SOFTUSERNAME)) //{ //var curItem = new List() { new WeworkExternalUser2EidEST(item.SOFTUSERNAME, item.UNIONID, Convert.ToInt32(item.EID), Convert.ToInt32(channel), item.CTIME) }; var curItem = new List(); var info = new WeworkExternalUser2EidEST { resid = item.RESID, unionid = item.UNIONID, eid = Convert.ToInt32(item.EID), channel = Convert.ToInt32(channel), ctime = item.CTIME }; if (!string.IsNullOrEmpty(item.SOFTUSERNAME)) { //curItem.Add(new WeworkExternalUser2EidEST("com.dongniu", item.SOFTUSERNAME, item.RESID, item.UNIONID, Convert.ToInt32(item.EID), Convert.ToInt32(channel), item.CTIME)); info.appid = "com.dongniu"; info.appuserid = item.SOFTUSERNAME; } else { //curItem.Add(new WeworkExternalUser2EidEST("com.web", item.RESID, item.RESID, item.UNIONID, Convert.ToInt32(item.EID), Convert.ToInt32(channel), item.CTIME)); info.appid = "com.web"; info.appuserid = item.RESID; } if (item.ACT == "add") { info.type = 1; } else if (item.ACT == "update") { info.type = 0; } else if (item.ACT == "delete") { info.type = 4; } else { info.type = -1;//不执行 continue; } var rule = _rule.Get(p => p.EID == item.EID); if (rule != null) { info.groupid = Convert.ToInt32(rule.SALEGROUPID.Value); } var param = _para.GetModel_Patameter("IgnoreManager"); if (param != null) { if (!string.IsNullOrEmpty(param.PARAVALUE)) { var manageList = param.PARAVALUE.Split(','); foreach (var manage in manageList) { if (manage == info.eid.ToString()) { info.type = 4; } } } } curItem.Add(info); var time = (long)Utility.ConvertDateTimeInt(DateTime.Now); var message = JsonConvert.SerializeObject(new { account = "dn.crm", time }); var para = sHelper.createSignEncodingStr(message); var addUrlUp = addUrl + "?" + para; var rsp = Utility.HttpPostData(addUrlUp, JsonConvert.SerializeObject(curItem), Encoding.UTF8); var ret = JsonConvert.DeserializeAnonymousType(rsp, new { errcode = -1, errmsg = string.Empty }); if (ret.errcode == 0) { try { var act = new RES_MYALLOCATERES_ACT { ID = item.ID, RESID = item.RESID, SOFTUSERNAME = item.SOFTUSERNAME, UNIONID = item.UNIONID, EID = item.EID, CHANNEL = decimal.Parse(channel), CTIME = item.CTIME, ISEXE = 1, ACT = item.ACT, OLDEID = item.OLDEID }; _resMyAllocateAct.Update(act); } catch (Exception ex) { LogHelper.Error("更新上传关系记录失败:" + item.ToJson() + "---" + ex.ToString()); } } /* if (item.ACT == "add") { var addUrlUp = addUrl + "?" + para; var rsp = Utility.HttpPostData(addUrlUp, JsonConvert.SerializeObject(curItem), Encoding.UTF8); var ret = JsonConvert.DeserializeAnonymousType(rsp, new { errcode = -1, errmsg = string.Empty }); if (ret.errcode == 0) { try { var info = new RES_MYALLOCATERES_ACT { ID = item.ID, RESID = item.RESID, SOFTUSERNAME = item.SOFTUSERNAME, UNIONID = item.UNIONID, EID = item.EID, CHANNEL = decimal.Parse(channel), CTIME = item.CTIME, ISEXE = 1, ACT = item.ACT, OLDEID = item.OLDEID }; _resMyAllocateAct.Update(info); } catch (Exception ex) { LogHelper.Error("更新上传关系记录失败:" + item.ToJson() + "---" + ex.ToString()); } } } else if (item.ACT == "update") { var deleteUrlUp = deleteUrl + "?" + para; var rsp = Utility.HttpPostData(deleteUrlUp, JsonConvert.SerializeObject(curItem), Encoding.UTF8); var ret = JsonConvert.DeserializeAnonymousType(rsp, new { errcode = -1, errmsg = string.Empty }); if (ret.errcode == 0) { var time2 = (long)Utility.ConvertDateTimeInt(DateTime.Now); var message2 = JsonConvert.SerializeObject(new { account = "dn.crm", time = time2 }); var para2 = sHelper.createSignEncodingStr(message2); var addUrlUp = addUrl + "?" + para2; var rsp2 = Utility.HttpPostData(addUrlUp, JsonConvert.SerializeObject(curItem), Encoding.UTF8); var ret2 = JsonConvert.DeserializeAnonymousType(rsp2, new { errcode = -1, errmsg = string.Empty }); if (ret2.errcode == 0) { try { var info = new RES_MYALLOCATERES_ACT { ID = item.ID, RESID = item.RESID, SOFTUSERNAME = item.SOFTUSERNAME, UNIONID = item.UNIONID, EID = item.EID, CHANNEL = decimal.Parse(channel), CTIME = item.CTIME, ISEXE = 1, ACT = item.ACT, OLDEID = item.OLDEID }; _resMyAllocateAct.Update(info); } catch (Exception ex) { LogHelper.Error("更新上传关系记录失败:" + item.ToJson() + "---" + ex.ToString()); } } } } else if (item.ACT == "delete") { var deleteUrlUp = deleteUrl + "?" + para; var rsp = Utility.HttpPostData(deleteUrlUp, JsonConvert.SerializeObject(curItem), Encoding.UTF8); var ret = JsonConvert.DeserializeAnonymousType(rsp, new { errcode = -1, errmsg = string.Empty }); if (ret.errcode == 0) { try { var info = new RES_MYALLOCATERES_ACT { ID = item.ID, RESID = item.RESID, SOFTUSERNAME = item.SOFTUSERNAME, UNIONID = item.UNIONID, EID = item.EID, CHANNEL = decimal.Parse(channel), CTIME = item.CTIME, ISEXE = 1, ACT = item.ACT, OLDEID = item.OLDEID }; _resMyAllocateAct.Update(info); } catch (Exception ex) { LogHelper.Error("更新上传关系记录失败:" + item.ToJson() + "---" + ex.ToString()); } } } */ } } catch (Exception ex) { LogHelper.Error(ex); } LogHelper.Info("提交资源归属结束!"); } } public class WeworkExternalUser2EidEST { public WeworkExternalUser2EidEST() { } public WeworkExternalUser2EidEST(string appid, string appuserid, string resid, string unionid, int eid, int channel, DateTime ctime) { this.appid = appid; this.appuserid = appuserid; this.resid = resid; //this.softusername = softusername; this.unionid = unionid; this.eid = eid; this.channel = channel; this.ctime = ctime; } public string appid { get; set; } public string appuserid { get; set; } public string resid { get; set; } //public string softusername { get; set; } public string unionid { get; set; } public int eid { get; set; } public int channel { get; set; } public DateTime ctime { get; set; } public int groupid { get; set; } //客服组 public int type { get; set; } //0、组内更新(删除当前用户的原所有关系、然后新增当前关系) 4、组内删除(删除用户与所有客服的关系) 1、组内新增(新增用户与当前客服的关系,但不删除用户与其它客服原有的关系),2、组内删除(删除当前用户与客服的关系,不删除当前用户与其它客服的关系) //public int deptid { get; set; } } public class ResAllocateActJob : IJob { static bool _isNotice = false; public void Execute(JobExecutionContext context) { if (_isNotice) return; _isNotice = true; try { new ResAllocateAct().Start(); } catch (Exception e) { WX.CRM.Common.LogHelper.Error("WX.CRM.CRMServices.Res_AlloCate.ResAllocateActJob.ResAllocateAct().Execute:" + e); } finally { _isNotice = false; } } } }