go-common/app/service/live/dao-anchor/dao/redisKey.go
2019-04-22 18:49:16 +08:00

81 lines
2.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package dao
import (
"context"
"fmt"
"strconv"
"go-common/app/service/live/dao-anchor/api/grpc/v1"
"go-common/library/log"
)
type redisKeyResp struct {
RedisKey string `json:"redis_key"`
TimeOut int `json:"time_out"`
}
//RoomRecordListForLive 房间侧开播记录相关历史数据存3天
func (d *Dao) LRoomLiveRecordList(content string, roomId int64, liveTime int64) (resp *redisKeyResp) {
resp = &redisKeyResp{}
if liveTime <= 0 {
roomInfo, err := d.FetchRoomByIDs(context.TODO(), &v1.RoomByIDsReq{RoomIds: []int64{roomId}, Fields: []string{"live_start_time"}})
if err != nil || roomInfo.RoomDataSet == nil {
log.Error("LRoomLiveRecordList_err:err=%v;info=%v", err, roomInfo)
return
}
liveTime = roomInfo.RoomDataSet[roomId].LiveStartTime
}
contentType := content + "_" + strconv.Itoa(int(liveTime))
resp.RedisKey = fmt.Sprintf(contentType+"_list_%d", roomId)
resp.TimeOut = 24 * 60 * 60 * 3
return
}
//RoomRecordList 房间侧记录相关历史数据存1天
func (d *Dao) LRoomRecordList(contentType string, roomId int64) (resp *redisKeyResp) {
resp = &redisKeyResp{}
resp.RedisKey = fmt.Sprintf(contentType+"_list_%d", roomId)
resp.TimeOut = 24 * 60 * 60
return
}
//RoomRecordCurrent 房间侧实时数据记录,存一个小时
func (d *Dao) SRoomRecordCurrent(content string, roomId int64) (resp *redisKeyResp) {
resp = &redisKeyResp{}
resp.RedisKey = fmt.Sprintf(content+"_key_%d", roomId)
resp.TimeOut = 60 * 60
return
}
//主播侧开播记录相关历史数据存3天
func (d *Dao) LUserLiveRecordList(content string, uid int64, liveTime int64) (resp *redisKeyResp) {
resp = &redisKeyResp{}
if liveTime <= 0 {
roomInfo, err := d.FetchRoomByIDs(context.TODO(), &v1.RoomByIDsReq{Uids: []int64{uid}, Fields: []string{"live_start_time"}})
if err != nil {
log.Error("LRoomLiveRecordList_err:err=%v;info=%v", err, roomInfo)
return
}
}
contentType := content + "_" + strconv.Itoa(int(liveTime))
resp.RedisKey = fmt.Sprintf(contentType+"_list_%d", uid)
resp.TimeOut = 24 * 60 * 60 * 3
return
}
//主播侧记录相关历史数据存1天
func (d *Dao) LUserRecordList(contentType string, uid int64) (resp *redisKeyResp) {
resp = &redisKeyResp{}
resp.RedisKey = fmt.Sprintf(contentType+"_list_%d", uid)
resp.TimeOut = 24 * 60 * 60
return
}
//UserRecordCurrent 主播侧实时数据记录,存一个小时
func (d *Dao) SUserRecordCurrent(content string, uid int64) (resp *redisKeyResp) {
resp = &redisKeyResp{}
resp.RedisKey = fmt.Sprintf(content+"_key_%d", uid)
resp.TimeOut = 60 * 60
return
}