|
|
package im_service
import ( "encoding/json" "errors" "fmt" "hudongzhuanjia/libs/im" "hudongzhuanjia/logger" "hudongzhuanjia/models" "hudongzhuanjia/utils" )
// 定义一些通知或者数据状态
type NoticeStatus int
const NoticeLiveRedPackStart NoticeStatus = 256 // 通知直播用户红包开始了
const NoticeLiveRedPackEnd NoticeStatus = 257 // 通知直播用户红包结束了
const NoticeLiveRedPackGet NoticeStatus = 258 // 某人摇中红包
const NoticeShakeRedPackStart NoticeStatus = 259 // 通知摇红包开始了
const NoticeShakeRedPackEnd NoticeStatus = 260 // 通知摇红包结束了
const NoticeReward NoticeStatus = 261 // 打赏
const NoticeLotteryDrawStart = 262 // 抽奖开始
const NoticeLotteryDrawStop = 263 // 抽奖结束
const NoticeLotteryDrawResult = 264 // 抽奖结果
const NoticeLotteryDrawRollStart = 265 // 开始滚动
const NoticeLotteryDrawRollStop = 266 // 停止滚动
const NoticeLiveGoodBuy = 267 // 商品购买通知
func SendNoticeByActivityId(activityId int64, _type 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, int(_type), data, members...) }
func SendGroupCustomMessage(userId interface{}, activityId int64, _type NoticeStatus, data map[string]interface{}) error { live := new(models.LiveConfig) exist, err := live.GetByActivityId(activityId) if err != nil || !exist { err = fmt.Errorf("直播信息异常: err-> %v, exist->%v, activity_id-> %v", err, exist, activityId) logger.Error(err.Error()) return err }
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", FromAccount: fmt.Sprint(userId), MsgBody: []im.MsgBody{ { MsgType: "TIMCustomElem", MsgContent: im.MsgBodyContent{ Data: string(bs), Desc: fmt.Sprint(_type), Ext: "", Sound: "", }, }, }, }) }
|