/// <summary> /// 按部门上传通讯录 /// </summary> /// <param name="api"></param> /// <param name="listOrg"></param> /// <param name="userList"></param> /// <param name="joDeps"></param> /// <param name="parentId"></param> private void UploadTXL(WeiXinApi api, IList <WX_OrganizationUnitDto> orgList, JToken joDeps, JToken joUsers, long parentId) { //企业微信在UBP中的父级ID var depParentId = "-1"; //查找微信里面的上级 var parentOrg = orgList.SingleOrDefault(o => o.Id == parentId); if (parentOrg != null) { var parentDep = joDeps.SingleOrDefault(d => d["id"].ToString() == parentOrg.WeiXinDepId); if (parentDep != null) { depParentId = parentDep["id"].ToString(); } } //var depParentId = "-1"; ////查找出上级名称 然通过名称 找出对应微信部门的ID //var parentOrg = listOrg.SingleOrDefault(o => o.Id == parentId); //if (parentOrg != null) //{ // var parentDep = joDeps.SingleOrDefault(d => d["name"].ToString() == parentOrg.DisplayName); // if (parentDep != null) // depParentId = parentDep["id"].ToString(); //} var listO = orgList.Where(a => (a.ParentId ?? 0) == parentId).ToList(); foreach (var item in listO) { if (depParentId != "-1" && joDeps.Count(d => d["id"].ToString() == item.WeiXinDepId) == 0) {//有父级ID,但是自己是没有创建过的 var dep = api.CreateDepartment(item.DisplayName, depParentId); //获取用户 var userList = _wx_OrganizationUnitAppService.GetOrganizationUnitAllUsers(item.Id); foreach (var user in userList.Result) { if (joUsers.Count(u => u["userid"].ToString() == user.UserName) == 0) {//创建用户 api.CreateUser(user.UserName, user.Surname + user.Name, dep["id"].ToString(), user.EmailAddress); } } } if (joDeps.Count(d => d["name"].ToString() == item.DisplayName) > 0) {//如果没有找到父级ID,但是在微信中已经存在的就直接创建用户 var dep = joDeps.SingleOrDefault(d => d["name"].ToString() == item.DisplayName); var userList = _wx_OrganizationUnitAppService.GetOrganizationUnitAllUsers(item.Id); foreach (var user in userList.Result) { if (joUsers.Count(u => u["userid"].ToString() == user.UserName) == 0) {//创建用户 api.CreateUser(user.UserName, user.Surname + user.Name, dep["id"].ToString(), user.EmailAddress); } } } UploadTXL(api, orgList, joDeps, joUsers, item.Id); } }