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.
 
 
 
 
 
 

35 lines
1.1 KiB

package handler
import (
"context"
"github.com/TremblingV5/DouTok/applications/favorite/misc"
"github.com/TremblingV5/DouTok/applications/favorite/pack"
"github.com/TremblingV5/DouTok/applications/favorite/service"
"github.com/TremblingV5/DouTok/kitex_gen/favorite"
)
func (s *FavoriteServiceImpl) FavoriteList(ctx context.Context, req *favorite.DouyinFavoriteListRequest) (resp *favorite.DouyinFavoriteListResponse, err error) {
// 1. 查缓存
res, _ := service.QueryFavListInCache(req.UserId)
// 2. 如果缓存有则直接返回
if len(res) > 0 {
return pack.PackFavoriteListResp(int32(misc.Success.ErrCode), misc.Success.ErrMsg, res)
}
// 3. 如果缓存没有则查库
res, err = service.QueryFavListInRDB(req.UserId)
// 4. 将从RDB查询到的数据读入缓存
for _, v := range res {
if err := service.WriteFavoriteInCache(req.UserId, v, true); err != nil {
continue
}
}
if err != nil {
pack.PackFavoriteListResp(int32(misc.SystemErr.ErrCode), misc.SystemErr.ErrMsg, nil)
}
return pack.PackFavoriteListResp(int32(misc.Success.ErrCode), misc.Success.ErrMsg, res)
}