/// <summary> /// 获取微信里面的部门信息 用于下载的时候显示用 /// </summary> /// <param name="input"></param> /// <returns></returns> public DataTable GetWeiXinDepartmentInfo(WeiXinConfigOutputDto input) { WeiXinApi api = new WeiXinApi(_cacheManager.GetCache("WeiXinApi"), input.CorpId, input.TXL_Secret, "1"); //获取部门信息 JObject joDepInfo = api.GetDepartment(); DataTable dt = new DataTable(); dt.Columns.Add("id"); dt.Columns.Add("name"); dt.Columns.Add("parentid"); dt.Columns.Add("userNum"); var joDeps = joDepInfo["department"]; for (int i = 0; i < joDeps.Count(); i++) { DataRow row = dt.NewRow(); row["id"] = joDeps[i]["id"].ToString(); row["name"] = joDeps[i]["name"].ToString(); row["parentid"] = joDeps[i]["parentid"].ToString(); JObject joUsers = api.GetUserInfoSimpleList(row["id"].ToString()); row["userNum"] = joUsers["userlist"].Count().ToString(); dt.Rows.Add(row); } return(dt); }
/// <summary> /// 下载通讯录 /// </summary> /// <param name="input"></param> /// <param name="txlIds"></param> /// <returns></returns> public async Task <bool> DownTXL(WeiXinConfigDownTXL input) { var entity = await _WeiXinConfigManager.GetWeiXinConfigByIdAsync(input.Id); WeiXinApi api = new WeiXinApi(_cacheManager.GetCache("WeiXinApi"), entity.CorpId, entity.TXL_Secret, "1"); //获取本次同步的部门列表 JObject joDepInfo = api.GetDepartment(); var joDeps = joDepInfo["department"].Where(d => input.DepIds.Contains(d["id"].ToString())).ToList(); DownTXL(api, entity.CorpId, joDeps, "0"); return(true); }
/// <summary> /// 上传通讯录 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <bool> UploadTXL(WeiXinConfigDownTXL input) { var entity = await _WeiXinConfigManager.GetWeiXinConfigByIdAsync(input.Id); WeiXinApi api = new WeiXinApi(_cacheManager.GetCache("WeiXinApi"), entity.CorpId, entity.TXL_Secret, "1"); //获取部门列表 var joDeps = api.GetDepartment()["department"]; //获取微信所有用户 var joUsers = api.GetUserInfoList("1", 1)["userlist"]; var orgList = _wx_OrganizationUnitAppService.GetAllOrganizationUnitsByCorpId(input.CorpId); var listO = orgList.Where(o => input.DepIds.Contains(o.Id.ToString())).ToList(); //var userList = _userAppService.GetAllUsers().Result.ToList(); UploadTXL(api, listO, joDeps, joUsers, 0); return(true); }