diff --git a/doc/api/work.md b/doc/api/work.md index 3be65c7f3..445d6c0f3 100644 --- a/doc/api/work.md +++ b/doc/api/work.md @@ -90,10 +90,12 @@ host: https://qyapi.weixin.qq.com/ | 名称 | 请求方式 | URL | 是否已实现 | 使用方法 | 贡献者 | |:---------:|------|:----------------------------------------| ---------- | ------------------------------- |----------| | 获取子部门ID列表 | GET | /cgi-bin/department/simplelist | YES | (r *Client) DepartmentSimpleList| MARKWANG | +| 获取部门列表 | GET | /cgi-bin/department/list | YES | (r *Client) DepartmentList| just5325, ourines | | 获取部门成员 | GET | /cgi-bin/user/simplelist | YES | (r *Client) UserSimpleList | MARKWANG | | 获取成员ID列表 | Post | /cgi-bin/user/list_id | YES | (r *Client) UserListId | MARKWANG | + ## 素材管理 [官方文档](https://developer.work.weixin.qq.com/document/path/91054) diff --git a/work/addresslist/department.go b/work/addresslist/department.go index 3b41c38ea..b2feca0bf 100644 --- a/work/addresslist/department.go +++ b/work/addresslist/department.go @@ -12,7 +12,8 @@ const ( // departmentSimpleListURL 获取子部门ID列表 departmentSimpleListURL = "https://qyapi.weixin.qq.com/cgi-bin/department/simplelist?access_token=%s&id=%d" // departmentListURL 获取部门列表 - departmentListURL = "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=%s" + departmentListURL = "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=%s" + departmentListByIDURL = "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=%s&id=%d" // departmentGetURL 获取单个部门详情 https://qyapi.weixin.qq.com/cgi-bin/department/get?access_token=ACCESS_TOKEN&id=ID departmentGetURL = "https://qyapi.weixin.qq.com/cgi-bin/department/get?access_token=%s&id=%d" ) @@ -106,13 +107,31 @@ func (r *Client) DepartmentSimpleList(departmentID int) ([]*DepartmentID, error) // DepartmentList 获取部门列表 // @desc https://developer.work.weixin.qq.com/document/path/90208 func (r *Client) DepartmentList() ([]*Department, error) { + return r.DepartmentListByID(0) +} + +// DepartmentListByID 获取部门列表 +// +// departmentID 部门id。获取指定部门及其下的子部门(以及子部门的子部门等等,递归) +// +// @desc https://developer.work.weixin.qq.com/document/path/90208 +func (r *Client) DepartmentListByID(departmentID int) ([]*Department, error) { + var formatURL string + // 获取accessToken accessToken, err := r.GetAccessToken() if err != nil { return nil, err } + + if departmentID > 0 { + formatURL = fmt.Sprintf(departmentListByIDURL, accessToken, departmentID) + } else { + formatURL = fmt.Sprintf(departmentListURL, accessToken) + } + // 发起http请求 - response, err := util.HTTPGet(fmt.Sprintf(departmentListURL, accessToken)) + response, err := util.HTTPGet(formatURL) if err != nil { return nil, err }