dingding

package
v0.0.0-...-eca2909 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 20, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var GetGroupsCmd = &cobra.Command{
	Use:   "getgroups",
	Short: "获取钉钉部门分组列表",
	Run: func(cmd *cobra.Command, args []string) {
		key, _ := cmd.Flags().GetString("key")
		secret, _ := cmd.Flags().GetString("secret")
		dc := NewDC(key, secret)
		depts, err := dc.GetDepts()
		if err != nil {
			logger.Error("获取部门列表失败", err)
		}

		table, err := gotable.Create("ID", "Name", "ParentId", "Remark")
		if err != nil {
			log.Fatal("创建表格失败: ", err)
		}

		for _, dept := range depts {
			_ = table.AddRow([]string{
				strconv.Itoa(dept.Id),
				dept.Name,
				strconv.Itoa(dept.ParentId),
				dept.Remark,
			})
		}
		fmt.Println(table)
	},
}
View Source
var GetUsersCmd = &cobra.Command{
	Use:   "getusers",
	Short: "获取钉钉用户列表",
	Run: func(cmd *cobra.Command, args []string) {
		key, _ := cmd.Flags().GetString("key")
		secret, _ := cmd.Flags().GetString("secret")
		dc := NewDC(key, secret)
		users, err := dc.GetUsers()
		if err != nil {
			logger.Error("获取用户列表失败", err)
		}

		table, err := gotable.Create("UserId", "UnionId", "Name", "Avatar", "StateCode", "ManagerUserId", "Mobile", "HideMobile", "Telephone", "JobNumber", "Title", "WorkPlace", "Remark", "LoginId", "DeptIds", "DeptOrder", "Extension", "HiredDate", "Active", "Admin", "Boss", "ExclusiveAccount", "Leader", "ExclusiveAccountType", "OrgEmail", "Email")
		if err != nil {
			log.Fatal("创建表格失败: ", err)
		}

		for _, user := range users {
			_ = table.AddRow([]string{
				user.UserId,
				user.UnionId,
				user.Name,
				user.Avatar,
				user.StateCode,
				user.ManagerUserId,
				user.Mobile,
				fmt.Sprintf("%t", user.HideMobile),
				user.Telephone,
				user.JobNumber,
				user.Title,
				user.WorkPlace,
				user.Remark,
				user.LoginId,
				fmt.Sprint(user.DeptIds),
				fmt.Sprint(user.DeptOrder),
				user.Extension,
				fmt.Sprint(user.HiredDate),
				strconv.FormatBool(user.Active),
				strconv.FormatBool(user.Admin),
				strconv.FormatBool(user.Boss),
				strconv.FormatBool(user.ExclusiveAccount),
				strconv.FormatBool(user.Leader),
				user.ExclusiveAccountType,
				user.OrgEmail,
				user.Email,
			})
		}
		fmt.Println(table)
	},
}

Functions

This section is empty.

Types

type DC

type DC struct {
	// contains filtered or unexported fields
}

func NewDC

func NewDC(key, secret string) *DC

func (*DC) GetDepts

func (d *DC) GetDepts() (result []*DingTalkDept, err error)

GetDepts 获取部门列表

func (*DC) GetUsers

func (d *DC) GetUsers() ([]*DeptDetailUserInfo, error)

GetUsers 获取部门用户列表

type DeptDetailUserInfo

type DeptDetailUserInfo struct {
	UserId string `json:"userid"`
	// 员工在当前开发者企业账号范围内的唯一标识
	UnionId string `json:"unionid"`
	// 员工名称
	Name string `json:"name"`
	// 头像
	Avatar string `json:"avatar"`
	// 国际电话区号
	StateCode string `json:"state_code"`
	// 员工的直属主管
	ManagerUserId string `json:"manager_userid"`
	// 手机号码
	Mobile string `json:"mobile"`
	// 是否号码隐藏
	HideMobile bool `json:"hide_mobile"`
	// 分机号
	Telephone string `json:"telephone"`
	// 员工工号
	JobNumber string `json:"job_number"`
	// 职位
	Title string `json:"title"`
	// 办公地点
	WorkPlace string `json:"work_place"`
	// 备注
	Remark string `json:"remark"`
	// 专属帐号登录名
	LoginId string `json:"loginId"`
	// 所属部门ID列表
	DeptIds []int `json:"dept_id_list"`
	// 员工在部门中的排序
	DeptOrder int `json:"dept_order"`
	// 员工在对应的部门中的排序
	Extension string `json:"extension"`
	// 入职时间
	HiredDate int `json:"hired_date"`
	// 是否激活了钉钉
	Active bool `json:"active"`
	//是否为企业的管理员:
	//
	//true:是
	//
	//false:不是
	Admin bool `json:"admin"`
	// 是否为企业的老板
	Boss bool `json:"boss"`
	// 是否专属帐号
	ExclusiveAccount bool `json:"exclusive_account"`
	// 是否是部门的主管
	Leader bool `json:"leader"`
	//专属帐号类型:
	//
	//sso:企业自建专属帐号
	//
	//dingtalk:钉钉自建专属帐号
	ExclusiveAccountType string `json:"exclusive_account_type"`
	//员工的企业邮箱
	//
	//如果员工的企业邮箱没有开通,返回信息中不包含该数据
	OrgEmail string `json:"org_email"`
	//员工邮箱
	//
	//企业内部应用如果没有返回该字段,需要检查当前应用通讯录权限中邮箱等个人信息权限是否开启
	//
	//员工信息面板中有邮箱字段值才返回该字段
	//
	//第三方企业应用不返回该参数
	Email string `json:"email"`
}

type DingTalkDept

type DingTalkDept struct {
	Id       int    `json:"dept_id"`
	Name     string `json:"name"`
	Remark   string `json:"remark"`
	ParentId int    `json:"parent_id"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL