53 lines
2.0 KiB
Go
53 lines
2.0 KiB
Go
package room
|
||
|
||
import (
|
||
"context"
|
||
"fmt"
|
||
"time"
|
||
|
||
"github.com/pkg/errors"
|
||
|
||
"go-common/app/interface/live/app-interface/conf"
|
||
cDao "go-common/app/interface/live/app-interface/dao"
|
||
roomV2 "go-common/app/service/live/room/api/liverpc/v2"
|
||
"go-common/library/ecode"
|
||
"go-common/library/log"
|
||
rpcCtx "go-common/library/net/rpc/liverpc/context"
|
||
)
|
||
|
||
// GetRoomInfoByIds
|
||
func (d *Dao) GetRoomInfoByIds(ctx context.Context, roomIds []int64, fields []string, from string) (multiRoomListResp map[int64]*roomV2.RoomGetByIdsResp_RoomInfo, err error) {
|
||
multiRoomListResp = make(map[int64]*roomV2.RoomGetByIdsResp_RoomInfo)
|
||
getByIdsTimeout := time.Duration(conf.GetTimeout("getByIds", 100)) * time.Millisecond
|
||
multiRoomList, getByIdsError := cDao.RoomApi.V2Room.GetByIds(rpcCtx.WithTimeout(ctx, getByIdsTimeout), &roomV2.RoomGetByIdsReq{
|
||
Ids: roomIds,
|
||
NeedBroadcastType: 1,
|
||
NeedUinfo: 1,
|
||
Fields: fields,
|
||
From: from,
|
||
})
|
||
|
||
if getByIdsError != nil {
|
||
log.Error("[GetRoomInfoByIds]room.v2.getByIds rpc error:%+v", getByIdsError)
|
||
// 这个是推荐房间列表的基础信息,如果失败需要cancel,不然返回值会很奇怪
|
||
err = errors.WithMessage(ecode.GetRoomError, fmt.Sprintf("room.v2.getByIds rpc error:%+v", getByIdsError))
|
||
return
|
||
}
|
||
if multiRoomList.Code != 0 {
|
||
log.Error("[GetRoomInfoByIds]room.v2.getByIds response error,code:%d,msg:%s", multiRoomList.Code, multiRoomList.Msg)
|
||
// 这个是推荐房间列表的基础信息,如果失败需要cancel,不然返回值会很奇怪
|
||
err = errors.WithMessage(ecode.GetRoomError, fmt.Sprintf("room.v2.getByIds response error,code:%d,msg:%s", multiRoomList.Code, multiRoomList.Msg))
|
||
return
|
||
}
|
||
|
||
if multiRoomList.Data == nil {
|
||
log.Error("[GetRoomInfoByIds]room.v2.getByIds empty error")
|
||
// 这个是推荐房间列表的基础信息,如果失败需要cancel,不然返回值会很奇怪
|
||
err = errors.WithMessage(ecode.GetRoomEmptyError, "room.v2.getByIds empty error")
|
||
return
|
||
}
|
||
multiRoomListResp = multiRoomList.Data
|
||
|
||
return
|
||
}
|