137 lines
3.7 KiB
Go
137 lines
3.7 KiB
Go
package group
|
|
|
|
import (
|
|
"gitee.ltd/lxh/xybot/base"
|
|
"strings"
|
|
)
|
|
|
|
// AddChatroomMember
|
|
// @description: 添加群聊成员(群聊最多40人)
|
|
// @receiver s
|
|
// @param chatroom
|
|
// @param inviteWxId
|
|
// @return err
|
|
func (s service) AddChatroomMember(chatroom string, inviteWxId string) (err error) {
|
|
var result base.Response[base.EmptyResponse]
|
|
_, err = s.client.R().
|
|
SetHeader("WeChatId", s.robotInfo.GetId()).
|
|
SetResult(&result).
|
|
SetBody(map[string]any{
|
|
"Wxid": s.robotInfo.GetId(),
|
|
"Chatroom": chatroom,
|
|
"InviteWxids": inviteWxId,
|
|
}).Post("/AddChatroomMember")
|
|
err = result.CheckError(err)
|
|
return
|
|
}
|
|
|
|
// InviteChatroomMember
|
|
// @description: 邀请群聊成员(群聊大于40人)
|
|
// @receiver s
|
|
// @param chatroom
|
|
// @param inviteWxIds
|
|
// @return err
|
|
func (s service) InviteChatroomMember(chatroom string, inviteWxIds []string) (err error) {
|
|
var result base.Response[base.EmptyResponse]
|
|
_, err = s.client.R().
|
|
SetHeader("WeChatId", s.robotInfo.GetId()).
|
|
SetResult(&result).
|
|
SetBody(map[string]any{
|
|
"Wxid": s.robotInfo.GetId(),
|
|
"Chatroom": chatroom,
|
|
"InviteWxids": strings.Join(inviteWxIds, ","),
|
|
}).Post("/InviteChatroomMember")
|
|
err = result.CheckError(err)
|
|
return
|
|
}
|
|
|
|
// GetChatroomInfo
|
|
// @description: 获取群聊详情 这个接口不建议用,没多大卵用
|
|
// @receiver s
|
|
// @param chatroom
|
|
// @return info
|
|
// @return err
|
|
func (s service) GetChatroomInfo(chatroom string) (info GetChatroomInfoResponse, err error) {
|
|
var result base.Response[GetChatroomInfoResponse]
|
|
_, err = s.client.R().
|
|
SetHeader("WeChatId", s.robotInfo.GetId()).
|
|
SetResult(&result).
|
|
SetBody(map[string]any{
|
|
"Wxid": s.robotInfo.GetId(),
|
|
"Chatroom": chatroom,
|
|
}).Post("/GetChatroomInfo")
|
|
if err = result.CheckError(err); err != nil {
|
|
return
|
|
}
|
|
info = result.Data
|
|
return
|
|
}
|
|
|
|
// GetChatroomInfoNoAnnounce
|
|
// @description: 获取群聊详情(不包含群公告)
|
|
// @receiver s
|
|
// @param chatroom
|
|
// @return info
|
|
// @return err
|
|
func (s service) GetChatroomInfoNoAnnounce(chatroom []string) (info []ChatroomInfoItem, err error) {
|
|
var result base.Response[GetChatroomInfoNoAnnounce]
|
|
_, err = s.client.R().
|
|
SetHeader("WeChatId", s.robotInfo.GetId()).
|
|
SetResult(&result).
|
|
SetBody(map[string]any{
|
|
"Wxid": s.robotInfo.GetId(),
|
|
"Chatroom": strings.Join(chatroom, ","),
|
|
}).Post("/GetChatroomInfoNoAnnounce")
|
|
if err = result.CheckError(err); err != nil {
|
|
return
|
|
}
|
|
info = result.Data.ContactList
|
|
return
|
|
}
|
|
|
|
// GetChatroomMemberDetail
|
|
// @description: 获取群聊成员详情
|
|
// @receiver s
|
|
// @param chatroom
|
|
// @return members
|
|
// @return err
|
|
func (s service) GetChatroomMemberDetail(chatroom string) (members []ChatRoomMemberItem, err error) {
|
|
var result base.Response[GetChatroomMemberDetailResponse]
|
|
_, err = s.client.R().
|
|
SetHeader("WeChatId", s.robotInfo.GetId()).
|
|
SetResult(&result).
|
|
SetBody(map[string]any{
|
|
"Wxid": s.robotInfo.GetId(),
|
|
"Chatroom": chatroom,
|
|
}).Post("/GetChatroomMemberDetail")
|
|
if err = result.CheckError(err); err != nil {
|
|
return
|
|
}
|
|
members = result.Data.NewChatroomData.ChatRoomMember
|
|
return
|
|
}
|
|
|
|
// GetChatroomQRCode
|
|
// @description: 获取群二维码
|
|
// @receiver s
|
|
// @param chatroom
|
|
// @return imgBase64Str
|
|
// @return notify
|
|
// @return err
|
|
func (s service) GetChatroomQRCode(chatroom string) (imgBase64Str, notify string, err error) {
|
|
var result base.Response[GetChatroomQRCodeResponse]
|
|
_, err = s.client.R().
|
|
SetHeader("WeChatId", s.robotInfo.GetId()).
|
|
SetResult(&result).
|
|
SetBody(map[string]any{
|
|
"Wxid": s.robotInfo.GetId(),
|
|
"Chatroom": chatroom,
|
|
}).Post("/GetChatroomQRCode")
|
|
if err = result.CheckError(err); err != nil {
|
|
return
|
|
}
|
|
imgBase64Str = result.Data.Qrcode.Buffer
|
|
notify = result.Data.RevokeQrcodeWording
|
|
return
|
|
}
|