TG.WXCRM.V4/CRMServices/Res_AlloCate/ResAllocateAct.cs

331 lines
14 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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