From c050fa447ad86bd37d1c18f078e85a375929ea85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 7 Feb 2023 17:47:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BC=81=E4=B8=9A=E5=BE=AE?= =?UTF-8?q?=E4=BF=A1=E6=9F=A5=E8=AF=A2=E6=89=80=E6=9C=89=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E4=BA=BA=E5=91=98=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platformapi/enterprise_wechat/create_group.go | 22 +---------- .../enterprise_wechat/department_list.go | 37 +++++++++++++++++++ .../enterprise_wechat/enterprise_test.go | 8 ++++ .../enterprise_wechat/wechat_client.go | 3 +- platformapi/enterprise_wechat/wechat_model.go | 19 ++++++---- 5 files changed, 60 insertions(+), 29 deletions(-) create mode 100644 platformapi/enterprise_wechat/department_list.go diff --git a/platformapi/enterprise_wechat/create_group.go b/platformapi/enterprise_wechat/create_group.go index 89c08d5e..36ae9d33 100644 --- a/platformapi/enterprise_wechat/create_group.go +++ b/platformapi/enterprise_wechat/create_group.go @@ -47,7 +47,8 @@ func (a *API) CreateAppChat(param *CreateAppChatParamReq) error { // 获取所有的部门列表 func (a *API) GetAllDepartmentList() ([]*Department, error) { a.CheckAccessTokenExpiresIn() - data, err := a.AccessAPI(WeChatBaseApi, GetAllDepartmentListById, http.MethodGet, map[string]interface{}{"access_token": a.accessToken}) + param := map[string]interface{}{"access_token": a.accessToken} + data, err := a.AccessAPI(WeChatBaseApi, GetAllDepartmentListById, http.MethodGet, param) if err != nil { return nil, err } @@ -62,25 +63,6 @@ func (a *API) GetAllDepartmentList() ([]*Department, error) { 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() diff --git a/platformapi/enterprise_wechat/department_list.go b/platformapi/enterprise_wechat/department_list.go new file mode 100644 index 00000000..13a10ebe --- /dev/null +++ b/platformapi/enterprise_wechat/department_list.go @@ -0,0 +1,37 @@ +package enterprise_wechat + +import ( + "fmt" + "git.rosy.net.cn/baseapi/utils" + "net/http" + + "errors" +) + +// GetDepartmentList 获取部门id列表 +func (a *API) GetDepartmentList() { + a.CheckAccessTokenExpiresIn() + param := map[string]interface{}{"access_token": a.accessToken} + departmentList, err := a.AccessAPI(WeChatBaseApi, GetDepartmentList, http.MethodGet, param) + fmt.Println(departmentList) + fmt.Println(err) +} + +// GetEnterpriseStaffInfo 获取企业部门用户详细情况 +func (a *API) GetEnterpriseStaffInfo(department int) ([]*UserList, error) { + a.CheckAccessTokenExpiresIn() + departmentUserDetail, err := a.AccessAPI(WeChatBaseApi, GetDepartmentUserDetail, http.MethodGet, map[string]interface{}{"fetch_child": 1, "department_id": department, "access_token": a.accessToken}) + 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 +} diff --git a/platformapi/enterprise_wechat/enterprise_test.go b/platformapi/enterprise_wechat/enterprise_test.go index e3dc6a05..b7a75cfc 100644 --- a/platformapi/enterprise_wechat/enterprise_test.go +++ b/platformapi/enterprise_wechat/enterprise_test.go @@ -129,3 +129,11 @@ func TestGetUserId(t *testing.T) { phone, err := api.GetUserIdByMobile("18981810340") globals.SugarLogger.Debugf("phone := %s,err :=%s", phone, err) } + +func TestDepartmentList(t *testing.T) { + api.GetDepartmentList() +} + +func TestGetEnterpriseStaffInfo(t *testing.T) { + api.GetEnterpriseStaffInfo(7) +} diff --git a/platformapi/enterprise_wechat/wechat_client.go b/platformapi/enterprise_wechat/wechat_client.go index 00052e35..6a57b2b5 100644 --- a/platformapi/enterprise_wechat/wechat_client.go +++ b/platformapi/enterprise_wechat/wechat_client.go @@ -108,7 +108,8 @@ func (a *API) AccessAPI(baseUrl, actionApi, method string, bizParams map[string] fullURL := utils.GenerateGetURL(baseUrl, actionApi, map[string]interface{}{"access_token": a.accessToken}) request, _ = http.NewRequest(http.MethodPost, fullURL, strings.NewReader(string(data))) } else { - request, _ = http.NewRequest(http.MethodGet, utils.GenerateGetURL(baseUrl, actionApi, bizParams), nil) + getUrl := utils.GenerateGetURL(baseUrl, actionApi, bizParams) + request, _ = http.NewRequest(http.MethodGet, getUrl, nil) } request.Header.Set("Content-Type", "application/json") return request diff --git a/platformapi/enterprise_wechat/wechat_model.go b/platformapi/enterprise_wechat/wechat_model.go index 27ff1945..2ae4f381 100644 --- a/platformapi/enterprise_wechat/wechat_model.go +++ b/platformapi/enterprise_wechat/wechat_model.go @@ -7,18 +7,21 @@ import ( ) const ( - WeChatBaseApi = "https://qyapi.weixin.qq.com" // 企业微信基础访问链接 + 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" // 给用户发送消息 + 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