/// <summary> /// 获取人员信息并保存 /// </summary> private void getUserInfo( ) { DataTable depart = _bll.getDepart( ); if (depart == null || depart.Rows.Count < 1) { return; } UpdateAccessToken(false); IDingTalkClient client = new DefaultDingTalkClient(Urls.department_user); List <UserResultSet> list = new List <UserResultSet> ( ); _bll.DeleteUser( ); for (int i = 0; i < depart.Rows.Count; i++) { OapiUserSimplelistRequest req = new OapiUserSimplelistRequest( ); req.Lang = "zh_CN"; req.DepartmentId = string.IsNullOrEmpty(depart.Rows [i] ["DBA001"].ToString( )) == true ? 1L : Convert.ToInt64(depart.Rows [i] ["DBA001"].ToString( )); req.Offset = 0L; req.Size = 100L; req.Order = "custom"; req.SetHttpMethod("GET"); OapiUserSimplelistResponse rsp = client.Execute(req, AccessToken.Value); list = XmlUtil.JsonStringToObj <UserResultSet> (rsp.Body); if (list.Count > 0) { foreach (UserResultSet user in list) { if (user.userlist.Count > 0) { isOk = _bll.SaveUser(user.userlist, req.DepartmentId.ToString( )); } } } } if (isOk == false) { Utility.LogHelper.WriteLog("人员信息保存失败"); } //string apiurl = FormatApiUrlWithToken ( Urls . user_list ); //var result = Analyze . Get<UserResultSet> ( apiurl ); //List<UserResultSet> list = XmlUtil . JsonStringToObj<UserResultSet> ( result . Json ); //if ( list . Count > 0 ) //{ // foreach ( UserResultSet user in list ) // { // if ( user . department . Count > 0 ) // { // isOk = _bll . SaveUser ( user . department ); // } // } //} }
/// <summary> /// 获取人员列表 /// </summary> /// <returns></returns> public static OapiUserSimplelistResponse GetUserList(long DepartmentId) { DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/simplelist"); OapiUserSimplelistRequest request = new OapiUserSimplelistRequest(); request.DepartmentId = DepartmentId; request.SetHttpMethod("GET"); OapiUserSimplelistResponse response = client.Execute(request, AccessToken); return(response); }
/// <summary> /// 获取部门用户 /// </summary> /// <param name="accessToken">accessToken</param> /// <param name="departmentId">获取的部门id</param> /// <param name="offSet">支持分页查询,与size参数同时设置时才生效,此参数代表偏移量</param> /// <param name="size">支持分页查询,与offset参数同时设置时才生效,此参数代表分页大小,最大100</param> /// <returns></returns> public OapiUserSimplelistResponse SimpleList(string accessToken, long departmentId, long offSet, long size) { IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/simplelist"); OapiUserSimplelistRequest request = new OapiUserSimplelistRequest(); request.DepartmentId = departmentId; request.Offset = offSet; request.Size = size; request.SetHttpMethod("GET"); OapiUserSimplelistResponse response = client.Execute(request, accessToken); return(response); }
/// <summary> /// 获得部门用户 /// </summary> /// <param name="id"></param> /// <returns></returns> public JObject Simplelist(long id) { var url = $"{m_host}/user/simplelist"; var client = new DefaultDingTalkClient(url); var request = new OapiUserSimplelistRequest(); request.DepartmentId = id; request.Offset = 0; request.Size = 100; request.SetHttpMethod("GET"); var response = client.Execute(request, access_token); var _json = JObject.Parse(response.Body); if (Convert.ToInt32(_json["errcode"].ToString()) != 0) { //LogService.AppendDebugLog(typeof(DingTalkService), $"请求地址[{url}]返回{_json.ToString()}"); } return(_json); }
/// <summary> /// 获取部门用户列表,仅返回UserId和UserName /// </summary> /// <param name="accessToken"></param> /// <param name="parentId"></param> /// <returns></returns> public static List <UserDetailInfo> GetDepartmentUserList(string accessToken, int departmentId = 1) { try { IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/simplelist"); OapiUserSimplelistRequest request = new OapiUserSimplelistRequest(); request.DepartmentId = departmentId; request.Offset = 0L; request.Size = 100L; request.SetHttpMethod("GET"); OapiUserSimplelistResponse response = client.Execute(request, accessToken); if (response != null) { if (response.Errcode == 0) { List <UserDetailInfo> userlist = new List <UserDetailInfo>(); if (response.Userlist != null && response.Userlist.Count > 0) { foreach (OapiUserSimplelistResponse.UserlistDomain info in response.Userlist) { UserDetailInfo user = new UserDetailInfo(); user.UserId = info.Userid; user.UserName = info.Name; userlist.Add(user); } } return(userlist); } else { throw new Exception(response.Errmsg); } } } catch (Exception ex) { throw new Exception(ex.Message); } return(null); }