123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327 |
- using ConsoleApp1.Controller.Sql_controller;
- using DingTalk.Api;
- using DingTalk.Api.Request;
- using DingTalk.Api.Response;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApp1.Controller.DDing_API
- {
- /// <summary>
- /// 钉钉接口类
- /// </summary>
- public class DingdingAPI
- {
- private DateTime dtttime;
- private static HttpHepler http = new HttpHepler();
- //房德
- //AUTHCORPID(被授权方(房德)corpid)
- //private static String auth_corpid = "ding81b4dfad3a436bd735c2f4657eb6378f";
- //CUSTOMKEY
- private static String accessKey = "dingrfl7dbbgi0t1ygdl";
- //CUSTOMSECTET
- private static String accessSecret = "ocqGE5j-fW4yHIdqV2CLH8vTBY34EEoRT-FRh_wPO9uvvZoDDbrUFKdYcdXby1gB";
- private static string access_token = "";
- private static string agentid = "1109021768";
- /// <summary>
- /// 获取Token
- /// </summary>
- /// <returns></returns>·
- public string getAccessToken()
- {
- IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
- OapiGettokenRequest req = new OapiGettokenRequest();
- req.Appkey = accessKey;
- req.Appsecret = accessSecret;
- req.SetHttpMethod("GET");
- OapiGettokenResponse rsp = client.Execute(req, access_token);
- Console.WriteLine(rsp.Body);
- JObject json = JsonConvert.DeserializeObject<JObject>(rsp.Body.ToString());
- access_token = json["access_token"].ToString();
- return access_token;
- }
- public string dttoken()
- {
- if (dtttime.ToString() == "0001/1/1 0:00:00")
- {
- dtttime = DateTime.Now;
- access_token = getAccessToken();
- }
- if (dtttime.ToString() != "0001/1/1 0:00:00" && (dtttime.AddHours(2) < dtttime))
- {
- access_token = getAccessToken();
- }
- return access_token;
- }
- /// <summary>
- /// 获取企业授权信息
- /// </summary>
- /// <returns></returns>
- //public string get_auth_info()
- //{
- // IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/service/get_auth_info");
- // OapiServiceGetAuthInfoRequest req = new OapiServiceGetAuthInfoRequest();
- // req.AuthCorpid = "ding81b4dfad3a436bd735c2f4657eb6378f";
- // OapiServiceGetAuthInfoResponse rsp = client.Execute(req, accessKey, accessSecret, suiteTicket);
- // JObject json = JsonConvert.DeserializeObject<JObject>(rsp.Body.ToString());
- // //string aaa = json["auth_corp_info"]["corpid"].ToString();
- // agentid = json["auth_info"]["agent"][0]["agentid"].ToString();
- // return agentid;
- //}
- /// <summary>
- /// 获取花名册元数据
- /// </summary>
- /// <returns></returns>
- public string smartwork(string token)
- {
- string url = "https://oapi.dingtalk.com/topapi/smartwork/hrm/roster/meta/get?access_token=" + token;
- string dictionary = "{\"agentid\"" + ":" + "\"" + agentid + "\"}";
- var str = http.HttpPost(url, dictionary);
- return str.ToString();
- }
- /// <summary>
- /// 更新员工花名册信息
- /// </summary>
- /// <returns></returns>
- public string employee(Dictionary<string, object> dic)
- {
- try
- {
- IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/update");
- OapiV2UserUpdateRequest req = new OapiV2UserUpdateRequest();
- req.Userid = dic["F0000019"].ToString();
- req.Title = dic["F0000011"].ToString();
- req.DeptIdList = dic["F0000009"].ToString();
- List<OapiV2UserUpdateRequest.DeptOrderDomain> list2 = new List<OapiV2UserUpdateRequest.DeptOrderDomain>();
- OapiV2UserUpdateRequest.DeptOrderDomain obj3 = new OapiV2UserUpdateRequest.DeptOrderDomain();
- list2.Add(obj3);
- obj3.DeptId = Convert.ToInt32(dic["F0000009"].ToString());
- obj3.Order = 1L;
- req.DeptOrderList_ = list2;
- List<OapiV2UserUpdateRequest.DeptTitleDomain> list5 = new List<OapiV2UserUpdateRequest.DeptTitleDomain>();
- OapiV2UserUpdateRequest.DeptTitleDomain obj6 = new OapiV2UserUpdateRequest.DeptTitleDomain();
- list5.Add(obj6);
- obj6.DeptId = Convert.ToInt32(dic["F0000009"].ToString());
- obj6.Title = dic["F0000010"].ToString();
- req.DeptTitleList_ = list5;
- OapiV2UserUpdateResponse rsp = client.Execute(req, access_token);
- Console.WriteLine(rsp.Body);
- return rsp.Body;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 更新花名册信息
- /// </summary>
- /// <param name="Userid">Userid</param>
- /// <param name="GroupId">GroupId</param>
- /// <param name="Value">值</param>
- /// <param name="FieldCode">Code</param>
- /// <returns></returns>
- public string employee(string Userid, string GroupId, string Value, string FieldCode)
- {
- try
- {
- IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/smartwork/hrm/employee/v2/update");
- OapiSmartworkHrmEmployeeV2UpdateRequest req = new OapiSmartworkHrmEmployeeV2UpdateRequest();
- req.Agentid = 1041506050L;
- OapiSmartworkHrmEmployeeV2UpdateRequest.EmpUpdateByCustomParamDomain obj1 = new OapiSmartworkHrmEmployeeV2UpdateRequest.EmpUpdateByCustomParamDomain();
- List<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpGroupFieldVoDomain> list3 = new List<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpGroupFieldVoDomain>();
- OapiSmartworkHrmEmployeeV2UpdateRequest.EmpGroupFieldVoDomain obj4 = new OapiSmartworkHrmEmployeeV2UpdateRequest.EmpGroupFieldVoDomain();
- list3.Add(obj4);
- List<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpListFieldVoDomain> list6 = new List<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpListFieldVoDomain>();
- OapiSmartworkHrmEmployeeV2UpdateRequest.EmpListFieldVoDomain obj7 = new OapiSmartworkHrmEmployeeV2UpdateRequest.EmpListFieldVoDomain();
- list6.Add(obj7);
- List<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpFieldVoDomain> list9 = new List<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpFieldVoDomain>();
- OapiSmartworkHrmEmployeeV2UpdateRequest.EmpFieldVoDomain obj10 = new OapiSmartworkHrmEmployeeV2UpdateRequest.EmpFieldVoDomain();
- list9.Add(obj10);
- obj10.FieldCode = FieldCode;
- obj10.Value = Value;
- obj7.Section = list9;
- obj4.Sections = list6;
- obj4.GroupId = GroupId;
- obj1.Groups = list3;
- obj1.Userid = Userid;
- req.Param_ = obj1;
- OapiSmartworkHrmEmployeeV2UpdateResponse rsp = client.Execute(req, access_token);
- Console.WriteLine(rsp.Body);
- return rsp.Body;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- public string The_Contract(Dictionary<string, object> dic)
- {
- string FieldCode = "", Value = "", Userid = dic["F0000014"].ToString();
- try
- {
- foreach (var item in dic.Keys)
- {
- switch (item)
- {
- case "F0000010": //现合同开始日期
- FieldCode = "sys05-nowContractStartTime";
- Value = dic["F0000010"].ToString();
- The_Contract(Userid, Value, FieldCode);
- break;
- case "F0000011": //现合同结束日期
- FieldCode = "sys05-nowContractEndTime";
- Value = dic["F0000011"].ToString();
- The_Contract(Userid, Value, FieldCode);
- break;
- case "F0000026": //续签期限
- FieldCode = "sys05-contractPeriodType";
- Value = dic["F0000026"].ToString();
- switch (Value)
- {
- case "无":
- Value = "1";
- break;
- case "6个月":
- Value = "2";
- break;
- case "12个月":
- Value = "3";
- break;
- case "24个月":
- Value = "4";
- break;
- case "36个月或以上":
- Value = "5";
- break;
- default:
- break;
- }
- The_Contract(Userid, Value, FieldCode);
- break;
- case "F0000016": //续签次数
- FieldCode = "sys05-contractRenewCount";
- Value = dic["F0000016"].ToString();
- The_Contract(Userid, Value, FieldCode);
- break;
- default:
- break;
- }
- }
- return "Ok";
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 更新花名册信息
- /// </summary>
- /// <returns></returns>
- public string The_Contract(string Userid, string value, string FieldCode)
- {
- IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/smartwork/hrm/employee/update");
- OapiSmartworkHrmEmployeeUpdateRequest req = new OapiSmartworkHrmEmployeeUpdateRequest();
- OapiSmartworkHrmEmployeeUpdateRequest.PreEntryEmployeeAddParamDomain obj1 = new OapiSmartworkHrmEmployeeUpdateRequest.PreEntryEmployeeAddParamDomain();
- obj1.Userid = Userid;
- List<OapiSmartworkHrmEmployeeUpdateRequest.GroupMetaInfoDomain> list3 = new List<OapiSmartworkHrmEmployeeUpdateRequest.GroupMetaInfoDomain>();
- OapiSmartworkHrmEmployeeUpdateRequest.GroupMetaInfoDomain obj4 = new OapiSmartworkHrmEmployeeUpdateRequest.GroupMetaInfoDomain();
- list3.Add(obj4);
- obj4.GroupId = "sys05";
- List<OapiSmartworkHrmEmployeeUpdateRequest.EmpListFieldVODomain> list6 = new List<OapiSmartworkHrmEmployeeUpdateRequest.EmpListFieldVODomain>();
- OapiSmartworkHrmEmployeeUpdateRequest.EmpListFieldVODomain obj7 = new OapiSmartworkHrmEmployeeUpdateRequest.EmpListFieldVODomain();
- list6.Add(obj7);
- List<OapiSmartworkHrmEmployeeUpdateRequest.EmpFieldVoDomain> list9 = new List<OapiSmartworkHrmEmployeeUpdateRequest.EmpFieldVoDomain>();
- OapiSmartworkHrmEmployeeUpdateRequest.EmpFieldVoDomain obj10 = new OapiSmartworkHrmEmployeeUpdateRequest.EmpFieldVoDomain();
- list9.Add(obj10);
- obj10.Value = value;
- obj10.FieldCode = FieldCode; //起始日
- obj7.Section = list9;
- obj4.Sections = list6;
- obj1.Groups = list3;
- req.Param_ = obj1;
- req.Agentid = Convert.ToInt32(agentid);
- OapiSmartworkHrmEmployeeUpdateResponse rsp = client.Execute(req, access_token);
- Console.WriteLine(rsp.Body);
- return rsp.Body;
- }
- /// <summary>
- /// 批量获取员工花名册字段信息
- /// </summary>
- /// <param name="access_token">Token</param>
- /// <param name="userid_list">员工ID列表-最长长度20</param>
- /// <returns></returns>
- public string smartwork_list(string access_token, string userid_list, string field_filter_list)
- {
- IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/smartwork/hrm/employee/list");
- OapiSmartworkHrmEmployeeListRequest req = new OapiSmartworkHrmEmployeeListRequest();
- req.UseridList = userid_list;
- //req.FieldFilterList = field_filter_list.ToString();
- OapiSmartworkHrmEmployeeListResponse rsp = client.Execute(req, access_token);
- return rsp.Body;
- }
- /// <summary>
- /// 查询公司在职员工列表
- /// </summary>
- /// <param name="access_token">Token</param>
- /// <param name="status_list">员工状态</param>
- /// <param name="offset">分页起始值</param>
- /// <param name="size">分页大小</param>
- /// <returns>UserId 员工ID</returns>
- public string smartwork_smartwork(string access_token, string status_list = "2,3,5,-1", int offset = 0, int size = 50)
- {
- IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/smartwork/hrm/employee/queryonjob");
- OapiSmartworkHrmEmployeeQueryonjobRequest req = new OapiSmartworkHrmEmployeeQueryonjobRequest();
- req.StatusList = "2,3,5,-1";
- req.Offset = offset;
- req.Size = size;
- OapiSmartworkHrmEmployeeQueryonjobResponse rsp = client.Execute(req, access_token);
- return rsp.Body;
- }
- /// <summary>
- /// 智能人事获取员工花名册信息
- /// </summary>
- /// <returns></returns>
- public string listemployee(string userid)
- {
- IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/smartwork/hrm/employee/v2/list");
- OapiSmartworkHrmEmployeeV2ListRequest req = new OapiSmartworkHrmEmployeeV2ListRequest();
- req.UseridList = userid;
- req.Agentid = Convert.ToInt32(agentid);
- OapiSmartworkHrmEmployeeV2ListResponse rsp = client.Execute(req, access_token);
- //Console.WriteLine(rsp.Body);
- return rsp.Body;
- }
- }
- }
|