diff --git a/domain/model/recommend_m/gift.go b/domain/model/recommend_m/gift.go index 0ca4f3f91e99fde119f11188a2bf1eeb3c9f5566..01cf680d9fa901b0b387b3db3f77d79f20fc2e49 100644 --- a/domain/model/recommend_m/gift.go +++ b/domain/model/recommend_m/gift.go @@ -23,12 +23,24 @@ func GetPastTop50SendGiftUsers(model *domain.Model) []recommendUserGift { if data, err := recommendUserGiftCache.Get(recommendUserGiftKey); err == nil { return data.([]recommendUserGift) } + limitUserIds, _ := GetBillboardLimitUserList(model) var res []recommendUserGift if err := model.DB().Table("gift_operate").Select("send_user_id,SUM(send_user_diamond) send_user_diamond"). - Where("created_time >= ?", time.Now().Add(-time.Hour*12)).Group("send_user_id"). + Where("created_time >= ?", time.Now().Add(-time.Hour*12)). + Where("send_user_id NOT in ?", limitUserIds). + Group("send_user_id"). Having("send_user_diamond > 100000").Order("send_user_diamond DESC").Limit(34).Find(&res).Error; err != nil { model.Log.Errorf("GetPastTop50SendGiftUsers fail:%v", err) } recommendUserGiftCache.SetWithExpire(recommendUserGiftKey, res, time.Minute*5) return res } + +// 榜单黑名单 +func GetBillboardLimitUserList(model *domain.Model) ([]uint64, error) { + var userIds []uint64 + if err := model.Db.Table("billboard_limit_user").Select("user_id").Find(&userIds).Error; err != nil { + return nil, err + } + return userIds, nil +}