1
This commit is contained in:
@@ -1,18 +1,101 @@
|
||||
package enterprise_wechat
|
||||
|
||||
type CreateGroup struct {
|
||||
AccessToken string `json:"access_token"` // 调用接口凭证 [必填]
|
||||
Scene int `json:"scene"` // 1 - 群的小程序插件, 2 - 群的二维码插件 [必填]
|
||||
ChatIDList []string `json:"chat_id_list"` // 使用该配置的客户群ID列表,支持5个 [必填]
|
||||
import (
|
||||
"errors"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
Remark string `json:"remark"` // 联系方式的备注信息,用于助记,超过30个字符将被截断
|
||||
AutoCreateRoom int `json:"auto_create_room"` // 当群满了后,是否自动新建群。0-否;1-是。 默认为1
|
||||
RoomBaseName string `json:"room_base_name"` // 自动建群的群名前缀
|
||||
RoomBaseID int `json:"room_base_id"` // 自动建群的群起始序号
|
||||
State string `json:"state"` // 企业自定义的state参数,用于区分不同的入群渠道。
|
||||
// 创建成员,将门店老板创建为京西员工
|
||||
func (a *API) CreateBoss2JxStaff(param *CreateBoos2JXStaffReq) error {
|
||||
a.CheckAccessTokenExpiresIn()
|
||||
result, err := a.AccessAPI(WeChatBaseApi, CreateBoosToJxStaff, http.MethodPost, utils.Struct2FlatMap(param))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
errResult := &Err{}
|
||||
if err := utils.Map2StructByJson(result, errResult, false); err != nil {
|
||||
return err
|
||||
}
|
||||
if errResult.ErrCode != 0 {
|
||||
return errors.New(errResult.ErrMsg)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// 创建客户入群方式
|
||||
func (a *API) CreateUserGroup() {
|
||||
|
||||
// 创建会话群聊
|
||||
// 只允许企业自建应用调用,且应用的可见范围必须是根部门;
|
||||
// 群成员人数不可超过管理端配置的“群成员人数上限”,且最大不可超过2000人;
|
||||
// 每企业创建群数不可超过1000/天;
|
||||
func (a *API) CreateAppChat(param *CreateAppChatParamReq) error {
|
||||
a.CheckAccessTokenExpiresIn()
|
||||
data, err := a.AccessAPI(WeChatBaseApi, CreateAppChat, http.MethodPost, utils.Struct2FlatMap(param))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
errResult := &Err{}
|
||||
if err := utils.Map2StructByJson(data, errResult, false); err != nil {
|
||||
return err
|
||||
}
|
||||
if errResult.ErrCode != 0 {
|
||||
return errors.New(errResult.ErrMsg)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// 获取所有的部门列表
|
||||
func (a *API) GetAllDepartmentList() ([]*Department, error) {
|
||||
a.CheckAccessTokenExpiresIn()
|
||||
data, err := a.AccessAPI(WeChatBaseApi, GetAllDepartmentListById, http.MethodGet, map[string]interface{}{"access_token": a.accessToken})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result := &GetAllDepartmentListRes{}
|
||||
if err := utils.Map2StructByJson(data, result, false); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if result.ErrCode != 0 {
|
||||
return nil, errors.New(result.ErrMsg)
|
||||
}
|
||||
|
||||
return result.Department, nil
|
||||
}
|
||||
|
||||
// 获取企业部门用户详细情况
|
||||
func (a *API) GetEnterpriseStaffInfo(department int) ([]*UserList, error) {
|
||||
a.CheckAccessTokenExpiresIn()
|
||||
departmentUserDetail, err := a.AccessAPI(WeChatBaseApi, GetDepartmentUserDetail, http.MethodGet, map[string]interface{}{"department_id": department, "fetch_child": 0})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result := &GetEnterpriseStaffInfoRes{}
|
||||
if err := utils.Map2StructByJson(departmentUserDetail, result, false); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if result.ErrCode != 0 {
|
||||
return nil, errors.New(result.ErrMsg)
|
||||
}
|
||||
|
||||
return result.UserList, nil
|
||||
}
|
||||
|
||||
// 通过手机号获取用户消息
|
||||
func (a *API) GetUserIdByMobile(mobile string) (string, error) {
|
||||
a.CheckAccessTokenExpiresIn()
|
||||
data, err := a.AccessAPI(WeChatBaseApi, GetUserByMobileUrl, http.MethodPost, map[string]interface{}{"mobile": mobile})
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
result := &GetUserByMobileRes{}
|
||||
if err := utils.Map2StructByJson(data, result, false); err != nil {
|
||||
return "", err
|
||||
}
|
||||
if result.ErrCode != 0 {
|
||||
return "", errors.New(result.ErrMsg)
|
||||
}
|
||||
|
||||
return result.UserId, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user