by Robin at 20240308
This commit is contained in:
parent
9692680528
commit
47ef06b88f
|
@ -2,6 +2,7 @@ package service
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"math"
|
||||||
"service/api/base"
|
"service/api/base"
|
||||||
"service/api/consts"
|
"service/api/consts"
|
||||||
"service/api/errcode"
|
"service/api/errcode"
|
||||||
|
@ -1245,22 +1246,26 @@ func (s *Service) ApiGetStreamerRecommList(ctx *gin.Context, req *streamerproto.
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取用户游标
|
// 获取用户游标
|
||||||
|
offset := int64(0)
|
||||||
recommListLength := int64(len(recommlist))
|
recommListLength := int64(len(recommlist))
|
||||||
offset, err := s.utilGetUserVisitOffset(ctx, req.Mid, recommListLength)
|
if consts.StreamerRecommThroughput < recommListLength {
|
||||||
|
offset, err = s.utilGetUserVisitOffset(ctx, req.Mid, recommListLength)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("utilGetUserVisitOffset fail, err: %v", err)
|
logger.Error("utilGetUserVisitOffset fail, err: %v", err)
|
||||||
ec = errcode.ErrCodeUserVisitOffsetSrvFail
|
ec = errcode.ErrCodeUserVisitOffsetSrvFail
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 根据用户游标查询得到结果
|
// 根据用户游标查询得到结果
|
||||||
midList := make([]int64, 0)
|
midList := make([]int64, 0)
|
||||||
for i := 0; i < consts.StreamerRecommThroughput; i++ {
|
for i := 0; i < int(math.Min(float64(consts.StreamerRecommThroughput), float64(recommListLength))); i++ {
|
||||||
index := (offset + int64(i)) % recommListLength
|
index := (offset + int64(i)) % recommListLength
|
||||||
midList = append(midList, recommlist[index])
|
midList = append(midList, recommlist[index])
|
||||||
}
|
}
|
||||||
accountList, err := _DefaultAccount.OpListByMids(ctx, &accountproto.OpListByMidsReq{
|
accountList, err := _DefaultAccount.OpListByMids(ctx, &accountproto.OpListByMidsReq{
|
||||||
Mids: midList,
|
Mids: midList,
|
||||||
|
Sort: []string{"_id"},
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("_DefaultAccount OpListByMids fail, err: %v", err)
|
logger.Error("_DefaultAccount OpListByMids fail, err: %v", err)
|
||||||
|
|
|
@ -673,9 +673,10 @@ func (s *Service) utilGetUserVisitOffset(ctx *gin.Context, mid int64, recommlist
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if uservisitoffset == nil {
|
if uservisitoffset == nil {
|
||||||
|
nowoffset := (offset + consts.StreamerRecommThroughput) % recommlistLength
|
||||||
err = _DefaultUserVisitOffset.OpCreate(ctx, &dbstruct.UserVisitOffset{
|
err = _DefaultUserVisitOffset.OpCreate(ctx, &dbstruct.UserVisitOffset{
|
||||||
Id: mid,
|
Id: mid,
|
||||||
StreamerRecommOffset: 0,
|
StreamerRecommOffset: nowoffset,
|
||||||
Ver: 0,
|
Ver: 0,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Reference in New Issue