package com.malk.service.dingtalk; import java.util.Date; import java.util.List; import java.util.Map; /** * 钉钉通讯录管理 * * @apiNote https://open.dingtalk.com/document/orgapp/contacts-overview */ public interface DDClient_Contacts { /** * 获取子部门ID列表 [获取企业部门下的所有直属子部门列表] */ List listSubDepartmentId(String access_token, long dept_id); /** * 获取部门列表 */ List listSubDepartmentDetail(String access_token, long dept_id); /** * 获取全部架构内部门_全部 ID [是否包含一级部门] */ List getDepartmentId_all(String access_token, boolean containsTop); List getDepartmentId_all(String access_token, boolean containsTop, long deptId); /** * 获取全部架构内部门_全部 detail [是否包含一级部门] */ List getDepartmentDetail_all(String access_token, boolean containsTop); /** * 获取部门用户userid列表 [无需分页] */ List listDepartmentUserId(String access_token, long dept_id); /** * 查询用户详情 * - * [入职时间 需要再在花名册添加员工可见, 接口才会返回] * [手机号\邮箱等, 只有应用开通通讯录邮箱等个人信息权限,才会返回该字段: 如个人邮箱 fieldEmail] * ppExt: 企业邮箱org_email, 若无则字段不返回; 手机号telephone无值, 但mobile会返回 */ Map getUserInfoById(String access_token, String userId); /** * 根据手机号查询用户 [手机号查询仅返回userid, 查询详情后返回] */ Map getUserInfoByMobile(String access_token, String mobile); /** * 删除用户 */ boolean deleteUser(String access_token, String userId); /** * 查询离职记录列表 * * @param startTime 开始时间: 格式:YYYY-MM-DDTHH:mm:ssZ(ISO 8601/RFC 3339) * @param extInfo maxResults, 每页最大条目数,最大值50. nextToken 分页游标. endTime 结束时间, 默认当前时间, 查询跨度不能超过365天 */ List> getLeaveEmployeeRecords(String access_token, Date startTime, Map extInfo); /** * 获取指定用户的所有父部门列表 */ Map listParentByUser(String access_token, String userId); /** * 创建用户 [24小时只能收到一次邀请通知, 若是频繁退出再进入, 可关闭邀请确认后自动加入, 路径: 设置 - 安全中心 - 隐私开关 - 团队添加我时需要我的确认 - 关闭] */ Map createUser(String access_token, String name, String mobile, List dept_id_list, Map body_ext); /** * 创建钉钉自建企业账号 [邮箱为必填] */ Map createUser_dingTalk(String access_token, String login_id, String init_password, String name, List dept_id_list, Map body_ext); /** * 创建部门 */ Map createDepartment(String access_token, String name, long parent_id, Map body_ext); /** * 获取部门详情 */ Map getDepartmentInfo(String access_token, long dept_id); /** * 获取员工人数 * * @param only_active 是否包含未激活钉钉人数 */ int getUserCount(String access_token, boolean only_active); }