You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.3 KiB
57 lines
1.3 KiB
package im_service
|
|
|
|
import (
|
|
"encoding/json"
|
|
"errors"
|
|
"fmt"
|
|
"hudongzhuanjia/libs/im"
|
|
"hudongzhuanjia/models"
|
|
"hudongzhuanjia/utils"
|
|
"strconv"
|
|
)
|
|
|
|
func SendNoticeByActivityId(activityId int64, _type im.NoticeStatus, data map[string]interface{}, members ...string) error {
|
|
live := new(models.LiveConfig)
|
|
exist, err := live.GetByActivityId(activityId)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if !exist {
|
|
return errors.New("直播信息不存在")
|
|
}
|
|
groupId := fmt.Sprintf("%v%d%d", live.LiveRoomId, live.Id, live.ActivityId)
|
|
return im.SendGroupSystemNotification(groupId, _type, data, members...)
|
|
}
|
|
|
|
func SendGroupCustomMessage(activityId int64, _type im.NoticeStatus, data map[string]interface{}) error {
|
|
live := new(models.LiveConfig)
|
|
exist, err := live.GetByActivityId(activityId)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if !exist {
|
|
return errors.New("直播信息不存在")
|
|
}
|
|
bs, err := json.Marshal(data)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
groupId := fmt.Sprintf("%v%d%d", live.LiveRoomId, live.Id, live.ActivityId)
|
|
return im.SendGroupMessage(&im.SendGroupMessageParam{
|
|
GroupId: groupId,
|
|
Random: utils.RandomInt(6),
|
|
MsgPriority: "High",
|
|
MsgBody: []im.MsgBody{
|
|
{
|
|
MsgType: "TIMCustomElem",
|
|
MsgContent: im.MsgBodyContent{
|
|
Data: string(bs),
|
|
Desc: strconv.Itoa(int(_type)),
|
|
Ext: "",
|
|
Sound: "",
|
|
},
|
|
},
|
|
},
|
|
})
|
|
}
|