This commit is contained in:
邹宗楠
2022-05-25 16:44:01 +08:00
parent 8e8d03c5fa
commit 8b1f8c79d6
5 changed files with 325 additions and 26 deletions

View File

@@ -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
}