Commit a824a8e4 authored by hujiebin's avatar hujiebin

完成推送

parent 85ea033c
...@@ -259,9 +259,9 @@ func MicAllRPush(model *domain.Model, groupUid string, externalId string) error ...@@ -259,9 +259,9 @@ func MicAllRPush(model *domain.Model, groupUid string, externalId string) error
} }
// //
micContents, err := getMicAllContent(model, groupUid) micContents, err := GetMicAllContent(model, groupUid)
if err != nil { if err != nil {
model.Log.Errorf("MicChangeRPush MicAllRPush getMicAllContent err:%+v, micContents:%v groupUuid:%v, externalId:%v", err, micContents, groupUid, externalId) model.Log.Errorf("MicChangeRPush MicAllRPush GetMicAllContent err:%+v, micContents:%v groupUuid:%v, externalId:%v", err, micContents, groupUid, externalId)
return err return err
} }
for _, micContent := range micContents { for _, micContent := range micContents {
...@@ -319,7 +319,7 @@ func MicRPush(model *domain.Model, txGroupId string, msg GroupSystemMsg) error { ...@@ -319,7 +319,7 @@ func MicRPush(model *domain.Model, txGroupId string, msg GroupSystemMsg) error {
} }
//得使用旧的imGroupId //得使用旧的imGroupId
func getMicAllContent(model *domain.Model, groupUid string) ([]MicContent, error) { func GetMicAllContent(model *domain.Model, groupUid string) ([]MicContent, error) {
txGroupId, err := ToTxGroupId(model, groupUid) txGroupId, err := ToTxGroupId(model, groupUid)
if err != nil { if err != nil {
...@@ -340,6 +340,9 @@ func getMicAllContent(model *domain.Model, groupUid string) ([]MicContent, error ...@@ -340,6 +340,9 @@ func getMicAllContent(model *domain.Model, groupUid string) ([]MicContent, error
userIds := make([]uint64, 0, len(micUsers)) userIds := make([]uint64, 0, len(micUsers))
for _, r := range micUsers { for _, r := range micUsers {
userIds = append(userIds, r.UserId) userIds = append(userIds, r.UserId)
if r.CpUserId > 0 {
userIds = append(userIds, r.CpUserId)
}
} }
model.Log.Infof("MicChangeRPush getMicAllContent groupUid:%v, userIds:%+v", groupUid, userIds) model.Log.Infof("MicChangeRPush getMicAllContent groupUid:%v, userIds:%+v", groupUid, userIds)
...@@ -350,6 +353,13 @@ func getMicAllContent(model *domain.Model, groupUid string) ([]MicContent, error ...@@ -350,6 +353,13 @@ func getMicAllContent(model *domain.Model, groupUid string) ([]MicContent, error
micContents := make([]MicContent, 0, len(mics)) micContents := make([]MicContent, 0, len(mics))
for _, r := range mics { for _, r := range mics {
var micEffect string
cpUserId := micUserMap[r.I].CpUserId
micUserData := micUserDataMap[micUserMap[r.I].UserId]
if cpUserId > 0 {
micEffect = "https://image.whoisamy.shop/hilo/resource/svga/mic_effect_cp.svga"
micUserData.MicEffect = micEffect
}
micContents = append(micContents, MicContent{ micContents = append(micContents, MicContent{
GroupId: txGroupId, GroupId: txGroupId,
I: r.I, I: r.I,
...@@ -359,7 +369,7 @@ func getMicAllContent(model *domain.Model, groupUid string) ([]MicContent, error ...@@ -359,7 +369,7 @@ func getMicAllContent(model *domain.Model, groupUid string) ([]MicContent, error
ExternalId: micUserMap[r.I].ExternalId, ExternalId: micUserMap[r.I].ExternalId,
AgoraId: uint32(micUserMap[r.I].UserId), AgoraId: uint32(micUserMap[r.I].UserId),
Timestamp: time.Now().UnixNano(), Timestamp: time.Now().UnixNano(),
User: micUserDataMap[micUserMap[r.I].UserId], User: micUserData,
}) })
} }
return micContents, nil return micContents, nil
...@@ -448,6 +458,7 @@ func getMicUserDatas(model *domain.Model, userIds []uint64) (map[uint64]*MicUser ...@@ -448,6 +458,7 @@ func getMicUserDatas(model *domain.Model, userIds []uint64) (map[uint64]*MicUser
return nil, err return nil, err
} }
svips, _ := rpc.MGetUserSvip(model, userIds) svips, _ := rpc.MGetUserSvip(model, userIds)
cpRelations, _ := rpc.MGetUserCpRelations(model, userIds)
micUserDataMap := map[uint64]*MicUserData{} micUserDataMap := map[uint64]*MicUserData{}
for _, id := range userIds { for _, id := range userIds {
...@@ -461,11 +472,10 @@ func getMicUserDatas(model *domain.Model, userIds []uint64) (map[uint64]*MicUser ...@@ -461,11 +472,10 @@ func getMicUserDatas(model *domain.Model, userIds []uint64) (map[uint64]*MicUser
} }
var headwearPicUrl string var headwearPicUrl string
var headwearEffectUrl string var headwearEffectUrl string
var reverseHeadwearEffectUrl string var headwearReverseEffectUrl string
if headwearUser, flag := headwearMap[id]; flag { if headwearUser, flag := headwearMap[id]; flag {
headwearPicUrl = resHeadwearMap[headwearUser.HeadwearId].PicUrl headwearPicUrl = resHeadwearMap[headwearUser.HeadwearId].PicUrl
headwearEffectUrl = resHeadwearMap[headwearUser.HeadwearId].EffectUrl headwearEffectUrl = resHeadwearMap[headwearUser.HeadwearId].EffectUrl
reverseHeadwearEffectUrl = resHeadwearMap[headwearUser.HeadwearId].ReverseEffectUrl
} }
micUserDataMap[id] = &MicUserData{ micUserDataMap[id] = &MicUserData{
Id: user.ID, Id: user.ID,
...@@ -478,9 +488,10 @@ func getMicUserDatas(model *domain.Model, userIds []uint64) (map[uint64]*MicUser ...@@ -478,9 +488,10 @@ func getMicUserDatas(model *domain.Model, userIds []uint64) (map[uint64]*MicUser
NobleLeave: nobleMap[id], NobleLeave: nobleMap[id],
HeadwearPicUrl: headwearPicUrl, HeadwearPicUrl: headwearPicUrl,
HeadwearEffectUrl: headwearEffectUrl, HeadwearEffectUrl: headwearEffectUrl,
HeadwearReverseEffectUrl: reverseHeadwearEffectUrl, HeadwearReverseEffectUrl: headwearReverseEffectUrl,
SvipLevel: svips[id].SvipLevel, SvipLevel: svips[id].SvipLevel,
Svip: rpc.CopySimpleSvip(svips[id]), Svip: rpc.CopySimpleSvip(svips[id]),
HeadwearIcon: cpRelations[user.ID].CpUserAvatar,
} }
} }
return micUserDataMap, nil return micUserDataMap, nil
......
package event_s package event_s
import ( import (
"encoding/json"
"git.hilo.cn/hilo-common/domain" "git.hilo.cn/hilo-common/domain"
"git.hilo.cn/hilo-common/rpc" "git.hilo.cn/hilo-common/rpc"
"hilo-group/domain/event/group_ev" "hilo-group/domain/event/group_ev"
"hilo-group/domain/model/group_m"
"hilo-group/myerr/bizerr" "hilo-group/myerr/bizerr"
) )
...@@ -14,6 +16,41 @@ func GroupInMicChangeEvent() { ...@@ -14,6 +16,41 @@ func GroupInMicChangeEvent() {
if !ok { if !ok {
return bizerr.InvalidParameter return bizerr.InvalidParameter
} }
return rpc.SendSocketMicChange(e.UserId) // todo return MicAllRPush(model, e.GroupId, e.UserId, e.ExternalId)
}) })
} }
func MicAllRPush(model *domain.Model, txGroupUid string, userId uint64, externalId string) error {
model.Log.Infof("MicChangeRPush MicAllRPush begin groupUuid:%v, externalId:%v", txGroupUid, externalId)
imGroupId, err := group_m.ToImGroupId(model, txGroupUid)
if err != nil {
model.Log.Errorf("ToImGroupId fail:%v", err)
return err
}
//
micContents, err := group_m.GetMicAllContent(model, imGroupId)
if err != nil {
model.Log.Errorf("MicChangeRPush MicAllRPush getMicAllContent err:%+v, micContents:%v groupUuid:%v, externalId:%v", err, micContents, txGroupUid, externalId)
return err
}
for _, micContent := range micContents {
//麦上是默认值,就不用推
if micContent.Forbid == false && micContent.User == nil && micContent.AgoraId == 0 && micContent.Lock == false && micContent.ExternalId == "" && micContent.MicForbid == false {
model.Log.Infof("MicChangeRPush MicAllRPush default micContent:%v, groupUuid:%v, externalId:%v, micContent:%+v", micContent, txGroupUid, externalId, micContent)
continue
}
micContentStr, err := json.Marshal(micContent)
if err != nil {
model.Log.Errorf("MicChangeRPush MicAllRPush Marshal micContent err:%+v, groupUuid:%v, externalId:%v, micContent:%+v", err, txGroupUid, externalId, string(micContentStr))
continue
}
if err := rpc.SendSocketMicChange(userId, externalId, txGroupUid, uint32(micContent.I), micContent.Lock, micContent.Forbid, micContent.MicForbid, micContent.AgoraId,
micContent.User.Avatar, micContent.User.Nick, uint32(micContent.User.Sex), micContent.User.Code, micContent.User.IsVip, uint32(micContent.User.NobleLeave),
micContent.User.HeadwearPicUrl, micContent.User.HeadwearEffectUrl, micContent.User.HeadwearReverseEffectUrl, uint32(micContent.User.SvipLevel), micContent.User.MicEffect, micContent.User.HeadwearIcon); err != nil {
model.Log.Errorf("MicAllRPush err:%+v, groupUuid:%v, externalId:%v, micContent:%+v", err, txGroupUid, externalId, string(micContentStr))
}
}
model.Log.Infof("MicAllRPush end groupUuid:%v, externalId:%v", txGroupUid, externalId)
return nil
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment