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.
234 lines
5.4 KiB
234 lines
5.4 KiB
package dao |
|
|
|
import ( |
|
"context" |
|
|
|
activityService "go-common/app/service/live/activity/api/liverpc/v1" |
|
rankdbService "go-common/app/service/live/rankdb/api/liverpc/v1" |
|
rcService "go-common/app/service/live/rc/api/liverpc/v1" |
|
roomService "go-common/app/service/live/room/api/liverpc/v2" |
|
userextService "go-common/app/service/live/userext/api/liverpc/v1" |
|
acctountService "go-common/app/service/main/account/api" |
|
"go-common/library/log" |
|
|
|
"github.com/pkg/errors" |
|
) |
|
|
|
//CommentTitle 头衔信息 |
|
type CommentTitle struct { |
|
OldTitle string `json:"oldtitle"` |
|
Title string `json:"title"` |
|
} |
|
|
|
//GetUnameColor 获取用户的昵称颜色 |
|
func (u *UserInfo) GetUnameColor(ctx context.Context, uid int64, rid int64) error { |
|
req := &userextService.ColorGetUnameColorReq{ |
|
Uid: uid, |
|
RoomId: rid, |
|
} |
|
resq, err := UserExtServiceClient.V1Color.GetUnameColor(ctx, req) |
|
if err != nil { |
|
if errors.Cause(err) != context.Canceled { |
|
log.Error("DM: UserExt GetUnameColor err: %v", err) |
|
} |
|
u.lock.Lock() |
|
u.UnameColor = "" |
|
u.lock.Unlock() |
|
return nil |
|
} |
|
if resq.Code != 0 { |
|
log.Error("DM: UserExt GetUnameColor errror code: %d", resq.Code) |
|
u.lock.Lock() |
|
u.UnameColor = "" |
|
u.lock.Unlock() |
|
return nil |
|
} |
|
u.lock.Lock() |
|
u.UnameColor = resq.Data.UnameColor |
|
u.lock.Unlock() |
|
return nil |
|
} |
|
|
|
//GetSpeicalMedal 获取特殊勋章 |
|
func (f *FansMedalInfo) GetSpeicalMedal(ctx context.Context, uid int64, rid int64) error { |
|
//更新special |
|
req := &activityService.UnionFansGetSpecialMedalReq{ |
|
Uid: uid, |
|
Ruid: rid, |
|
} |
|
resq, err := ActivityServiceClient.V1UnionFans.GetSpecialMedal(ctx, req) |
|
if err != nil { |
|
if errors.Cause(err) != context.Canceled { |
|
log.Error("DM: GetSpecialMedal err: %v", err) |
|
} |
|
f.lock.Lock() |
|
f.SpecialMedal = "" |
|
f.lock.Unlock() |
|
return nil |
|
} |
|
if resq.Code != 0 { |
|
log.Error("DM: GetSpecialMedal err code: %d", resq.Code) |
|
f.lock.Lock() |
|
f.SpecialMedal = "" |
|
f.lock.Unlock() |
|
return nil |
|
} |
|
f.lock.Lock() |
|
f.SpecialMedal = resq.Data.SpecialMedal |
|
f.lock.Unlock() |
|
return nil |
|
} |
|
|
|
//GetUserLevelRank 获取用户等级RANK |
|
func (u *UserInfo) GetUserLevelRank(ctx context.Context, uid int64) error { |
|
defer u.lock.Unlock() |
|
req := &rankdbService.UserRankGetUserRankReq{ |
|
Uid: uid, |
|
Type: "user_level", |
|
} |
|
resq, err := RankdbServiceClient.V1UserRank.GetUserRank(ctx, req) |
|
if err != nil { |
|
if errors.Cause(err) != context.Canceled { |
|
log.Error("DM: GetUserRank err: %v", err) |
|
} |
|
u.lock.Lock() |
|
u.ULevelRank = 1000000 |
|
return nil |
|
} |
|
if resq.Code != 0 { |
|
log.Error("DM: GetUserRank error code: %d", resq.Code) |
|
u.lock.Lock() |
|
u.ULevelRank = 1000000 |
|
return nil |
|
} |
|
u.lock.Lock() |
|
u.ULevelRank = resq.Data.Rank |
|
return nil |
|
} |
|
|
|
//GetCommentTitle 获取头衔 |
|
func (c *CommentTitle) GetCommentTitle(ctx context.Context) error { |
|
req := &rcService.UserTitleGetCommentTitleReq{} |
|
resq, err := RcServiceClient.V1UserTitle.GetCommentTitle(ctx, req) |
|
if err != nil { |
|
if errors.Cause(err) != context.Canceled { |
|
log.Error("DM: GetCommentTitle err: %v", err) |
|
} |
|
c.OldTitle = "" |
|
c.Title = "" |
|
return nil |
|
} |
|
if resq.Code != 0 { |
|
log.Error("DM: GetCommentTitle error code: %d", resq.Code) |
|
c.OldTitle = "" |
|
c.Title = "" |
|
return nil |
|
} |
|
if len(resq.Data) == 0 { |
|
c.OldTitle = "" |
|
c.Title = "" |
|
return nil |
|
} |
|
|
|
c.OldTitle = resq.Data[0] |
|
c.Title = resq.Data[1] |
|
return nil |
|
} |
|
|
|
//GetMedalanchorName 获取勋章对应主播的昵称 |
|
func (f *FansMedalInfo) GetMedalanchorName(ctx context.Context, uid int64) error { |
|
if uid == 0 { |
|
f.RUName = "" |
|
return nil |
|
} |
|
|
|
req := &acctountService.MidReq{ |
|
Mid: uid, |
|
} |
|
resp, err := ac.Profile3(ctx, req) |
|
if err != nil { |
|
log.Error("DM: acctountService Profile3 err: %v", err) |
|
f.lock.Lock() |
|
f.RUName = "" |
|
f.lock.Unlock() |
|
return nil |
|
} |
|
f.lock.Lock() |
|
f.RUName = resp.Profile.Name |
|
f.lock.Unlock() |
|
return nil |
|
} |
|
|
|
//GetMedalRoomid 获取勋章对应主播的房间 |
|
func (f *FansMedalInfo) GetMedalRoomid(ctx context.Context, uid int64) error { |
|
if uid == 0 { |
|
f.lock.Lock() |
|
f.RoomID = 0 |
|
f.lock.Unlock() |
|
return nil |
|
} |
|
req := &roomService.RoomRoomIdByUidReq{ |
|
Uid: uid, |
|
} |
|
resp, err := RoomServiceClient.V2Room.RoomIdByUid(ctx, req) |
|
if err != nil { |
|
log.Error("DM: room RoomIdByUid err: %v", err) |
|
f.lock.Lock() |
|
f.RoomID = 0 |
|
f.lock.Unlock() |
|
return nil |
|
} |
|
if resp.Code == 404 { |
|
f.lock.Lock() |
|
f.RoomID = 0 |
|
f.lock.Unlock() |
|
return nil |
|
} |
|
|
|
if resp.Code != 0 { |
|
log.Error("DM: room RoomIdByUid err code: %d", resp.Code) |
|
f.lock.Lock() |
|
f.RoomID = 0 |
|
f.lock.Unlock() |
|
return nil |
|
} |
|
f.lock.Lock() |
|
f.RoomID = resp.Data.RoomId |
|
f.lock.Unlock() |
|
return nil |
|
} |
|
|
|
//GetUserBubble 判断用户是否有气泡 |
|
func (u *UserInfo) GetUserBubble(ctx context.Context, uid int64, roomid int64, bubble int64, guardLevel int) error { |
|
req := &userextService.BubbleGetBubbleReq{ |
|
Uid: uid, |
|
RoomId: roomid, |
|
BubbleId: bubble, |
|
GuardLevel: int64(guardLevel), |
|
} |
|
defer u.lock.Unlock() |
|
resp, err := UserExtServiceClient.V1Bubble.GetBubble(ctx, req) |
|
if err != nil { |
|
if errors.Cause(err) != context.Canceled { |
|
log.Error("DM: userext Bubble check err: %v", err) |
|
} |
|
u.lock.Lock() |
|
u.Bubble = bubble |
|
return nil |
|
} |
|
if resp.Code != 0 { |
|
log.Error("DM: userext Bubble check err code: %d", resp.Code) |
|
u.lock.Lock() |
|
u.Bubble = bubble |
|
return nil |
|
} |
|
if resp.Data == nil { |
|
log.Error("DM: userext Bubble check err not data") |
|
u.lock.Lock() |
|
u.Bubble = bubble |
|
return nil |
|
} |
|
u.lock.Lock() |
|
u.Bubble = resp.Data.Bubble |
|
return nil |
|
}
|
|
|