refactor: 优化islLked的获取方式并将部分相同代码提取为一个函数

This commit is contained in:
Leon
2025-12-23 18:45:39 +08:00
parent 23b4babc23
commit f884167db8
3 changed files with 56 additions and 67 deletions

View File

@@ -34,3 +34,23 @@ func (r *LikeRepository) IsLiked(ctx context.Context, videoID, accountID uint) (
}
return count > 0, nil
}
func (r *LikeRepository) BatchGetLiked(ctx context.Context, videoIDs []uint, accountID uint) (map[uint]bool, error) {
likeMap := make(map[uint]bool)
if len(videoIDs) == 0 {
return likeMap, nil
}
if accountID == 0 {
return likeMap, nil
}
var likes []Like
err := r.db.WithContext(ctx).Model(&Like{}).
Where("video_id IN ? AND account_id = ?", videoIDs, accountID).
Find(&likes).Error
if err != nil {
return nil, err
}
for _, like := range likes {
likeMap[like.VideoID] = true
}
return likeMap, nil
}