108 lines
4.0 KiB
Go
108 lines
4.0 KiB
Go
package enterprise_wechat
|
||
|
||
import (
|
||
"git.rosy.net.cn/baseapi/platformapi"
|
||
"net/http"
|
||
"sync"
|
||
)
|
||
|
||
const (
|
||
WeChatBaseApi = "https://qyapi.weixin.qq.com" // 企业微信基础访问链接
|
||
ParentDepartmentId = 7 // 企业微信全职人员文件夹id
|
||
|
||
// api接口
|
||
GetToken = "cgi-bin/gettoken" // 获取token
|
||
CreateAppChat = "cgi-bin/appchat/create" // 创建会话群聊
|
||
GetAllDepartmentListById = "cgi-bin/department/list" // 获取所有的部门
|
||
CreateBoosToJxStaff = "cgi-bin/user/create" // 将京西老板创建为企业员工
|
||
GetDepartmentUserDetail = "cgi-bin/user/list" // 获取部门用户详细情况
|
||
GetUserByMobileUrl = "cgi-bin/user/getuserid" // 通过手机号获取用户id
|
||
SendMsgToUser = "cgi-bin/message/send" // 给用户发送消息
|
||
GetDepartmentList = "cgi-bin/department/simplelist" // 获取部门子id列表
|
||
|
||
EnterpriseTicketInfo = "/suite/receive" // 企业微信服务器会定时(每十分钟)推送ticket
|
||
|
||
)
|
||
|
||
// 注册请求api
|
||
type API struct {
|
||
corpId string // 企业号
|
||
corpSecret string // 秘钥
|
||
accessToken string // token
|
||
expiresIn int64 // token过期时间
|
||
locker sync.RWMutex
|
||
client *http.Client
|
||
config *platformapi.APIConfig
|
||
}
|
||
|
||
// 创建群聊
|
||
type CreateAppChatParamReq struct {
|
||
UserList []string `json:"userlist"` // 成员列表(至少两个)
|
||
Name string `json:"name"` // 群聊名,最多50个utf8字符,超过将截断
|
||
Owner string `json:"owner"` // 群主id
|
||
ChatId string `json:"chatid"` // 群聊的唯一标志,不能与已有的群重复
|
||
}
|
||
|
||
// 获取所有的部门
|
||
type Department struct {
|
||
ID int `json:"id"` // id
|
||
Name string `json:"name"` // 名称
|
||
ParentId int `json:"parentid"` // 父部门id
|
||
Order int `json:"order"` // 排序
|
||
DepartmentLeader []string `json:"department_leader"` // 部门负责人的UserID;第三方仅通讯录应用可获取
|
||
}
|
||
type GetAllDepartmentListRes struct {
|
||
ErrCode int `json:"errcode"`
|
||
ErrMsg string `json:"errmsg"`
|
||
Department []*Department `json:"department"`
|
||
}
|
||
|
||
// 错误消息
|
||
type Err struct {
|
||
ErrCode int `json:"errcode"`
|
||
ErrMsg string `json:"errmsg"`
|
||
ChatId string `json:"chatid"` // 群聊的唯一标志,不能与已有的群重复
|
||
}
|
||
|
||
// 获取部门全部用户详细信息
|
||
|
||
type GetEnterpriseStaffInfoRes struct {
|
||
ErrCode int `json:"errcode"`
|
||
ErrMsg string `json:"errmsg"`
|
||
UserList []*UserList `json:"userlist"`
|
||
}
|
||
|
||
type UserList struct {
|
||
Userid string `json:"userid"`
|
||
Name string `json:"name"`
|
||
Department []int `json:"department"`
|
||
Position string `json:"position"`
|
||
Mobile string `json:"mobile"`
|
||
Gender string `json:"gender"`
|
||
Email string `json:"email"`
|
||
Avatar string `json:"avatar"`
|
||
Status int `json:"status"`
|
||
Enable int `json:"enable"`
|
||
IsLeader int `json:"isleader"`
|
||
ExtAttr Extattr `json:"extattr"`
|
||
HideMobile int `json:"hide_mobile"`
|
||
Telephone string `json:"telephone"`
|
||
Order []int `json:"order"`
|
||
ExternalProfile ExternalProfile `json:"external_profile"`
|
||
MainDepartment int `json:"main_department"`
|
||
QrCode string `json:"qr_code"`
|
||
Alias string `json:"alias"`
|
||
IsLeaderInDept []int `json:"is_leader_in_dept"`
|
||
Address string `json:"address"`
|
||
ThumbAvatar string `json:"thumb_avatar"`
|
||
DirectLeader []string `json:"direct_leader"`
|
||
BizMail string `json:"biz_mail"`
|
||
}
|
||
|
||
// 手机号获取用户信息
|
||
type GetUserByMobileRes struct {
|
||
ErrCode int `json:"errcode"`
|
||
ErrMsg string `json:"errmsg"`
|
||
UserId string `json:"userid"`
|
||
}
|