/// <summary> /// 获取当前钉钉用户信息 /// </summary> /// <param name="userId"></param> /// <param name="corpId"></param> /// <param name="corpSecret"></param> /// <returns></returns> public async Task <DingDingUser> GetCurrentDDUserInfoAsync(string userId) { DingDingUser user = null; if (!string.IsNullOrEmpty(userId)) { var token = await GetAccessTokenAsync(); var userInfo = await GetUserInfoAsync(token, userId); if (userInfo != null) { var depart = await GetDepartmentInfoByIdAsync(token, userInfo.department?.First()); user = new DingDingUser { UserId = userInfo.userid, Email = userInfo.email, UserName = userInfo.name, Departments = new[] { depart?.Name }, DepartIds = new[] { depart?.Id.ToString() }, }; } } return(user); }
private async Task <DingDingUser> GetCurrentDDUserInfoAsync(string userId) { DingDingUser user = null; if (!string.IsNullOrEmpty(userId)) { var key = $"dduser_{userId}"; var keyValues = await _redis.HMGetAsync(key, DingDingUser.GetFields()); user = keyValues.GetUserInfoFromDictionary(); if (string.IsNullOrWhiteSpace(user?.UserId) || string.IsNullOrWhiteSpace(user?.UserName)) { user = await _ddHelper.GetCurrentDDUserInfoAsync(userId); if (user != null) { await _redis.HMSetAsync(key, user.ToKeyValues()); } } } return(user); }
private List <long> GetCurrentDDUserDepartIds(DingDingUser ddUser, long?parentId = null) { var result = new List <long>(); if (ddUser != null) { var departments = // parentId.HasValue ? _departService.Find(d => d.Id == parentId.Value) : _departService.Find(o => ddUser.Departments.Any(d => d == o.DepartName)); if (departments != null) { result.AddRange(departments.Select(o => o.Id).ToList()); //foreach (var department in departments) //{ // if (department.ParentId != null) // { // result.AddRange(GetCurrentDDUserDepartIds(ddUser, department.ParentId)); // } //} } } return(result); }
public void SetCurrentDingDingUser(DingDingUser user) { _ddUser = user; }