in user-center-wecom/company.go [101:137]
func (c *Company) ListUser() (err error) {
token, err := c.Work.GetOauth().GetAccessToken()
if err != nil {
return fmt.Errorf("get access token failed: %w", err)
}
log.Debugf("get access token success")
for _, department := range c.DepartmentMapping {
log.Debugf("try to get department user list: %d %s", department.Id, department.Name)
resp, err := resty.New().R().Get(fmt.Sprintf("https://qyapi.weixin.qq.com/cgi-bin/user/simplelist?department_id=%d&access_token=%s",
department.Id, token))
if err != nil {
log.Errorf("get department user list failed: %v", err)
continue
}
if gjson.Get(resp.String(), "errcode").Int() != 0 {
log.Errorf("get department user list failed: %v", resp.String())
continue
}
userList := gjson.Get(resp.String(), "userlist").String()
var employees []*Employee
err = json.Unmarshal([]byte(userList), &employees)
if err != nil {
log.Errorf("unmarshal userList failed: %w", err)
continue
}
log.Debugf("get department user list: %d", len(employees))
for _, employee := range employees {
c.EmployeeMapping[employee.Userid] = employee
log.Debugf(employee.Userid)
}
}
log.Debugf("all user amount: %d", len(c.EmployeeMapping))
return nil
}