331 lines
14 KiB
C#
331 lines
14 KiB
C#
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";
|
||
private 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";
|
||
|
||
private RES_MYALLOCATERES_ACT_BL _resMyAllocateAct = new RES_MYALLOCATERES_ACT_BL();
|
||
private RES_SALES_RULE_BL _rule = new RES_SALES_RULE_BL();
|
||
|
||
private SecurityHelper sHelper = new SecurityHelper();
|
||
|
||
private string channel = Common.Utility.GetSettingOrNullByKey("Channel");
|
||
|
||
private 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<WeworkExternalUser2EidEST>() { new WeworkExternalUser2EidEST(item.SOFTUSERNAME, item.UNIONID, Convert.ToInt32(item.EID), Convert.ToInt32(channel), item.CTIME) };
|
||
var curItem = new List<WeworkExternalUser2EidEST>();
|
||
|
||
var info = new WeworkExternalUser2EidEST
|
||
{
|
||
resid = item.RESID,
|
||
unionid = item.UNIONID,
|
||
eid = Convert.ToInt32(item.EID),
|
||
channel = Convert.ToInt32(channel),
|
||
ctime = item.CTIME,
|
||
umid = item.UMID
|
||
};
|
||
|
||
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 umid { 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
|
||
{
|
||
private 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;
|
||
}
|
||
}
|
||
}
|
||
} |