package stocks import ( "context" "joybuywork/internal/app" "joybuywork/internal/consts/ckey" ) type Cleaner struct { ctx context.Context ids []int64 } func NewCleaner(ctx context.Context, ids ...int64) Cleaner { return Cleaner{ ctx: ctx, ids: ids, } } // ClearCampaign 清空活动总预算库存 func (s Cleaner) ClearCampaign() { if len(s.ids) == 0 { return } var keys = make([]string, 0, len(s.ids)) for _, cpnId := range s.ids { keys = append(keys, ckey.FissionCampaignPool(cpnId)) } app.Redis.Cache.Del(s.ctx, keys...) } // ClearReward 清空奖品库存 func (s Cleaner) ClearReward() { if len(s.ids) == 0 { return } var keys = make([]string, 0, len(s.ids)) for _, rewardId := range s.ids { keys = append(keys, ckey.FissionCampaignRewardStock(rewardId)) } app.Redis.Cache.Del(s.ctx, keys...) } // ClearRewardSelect 清空奖品选择 func (s Cleaner) ClearRewardSelect() { if len(s.ids) == 0 { return } var keys = make([]string, 0, len(s.ids)) for _, rewardId := range s.ids { keys = append(keys, ckey.FissionCampaignRewardSelectStock(rewardId)) } app.Redis.Cache.Del(s.ctx, keys...) } // ClearItem 清空奖品库存 func (s Cleaner) ClearItem() { if len(s.ids) == 0 { return } var keys = make([]string, 0, len(s.ids)) for _, rewardId := range s.ids { keys = append(keys, ckey.MallItemStock(rewardId)) } app.Redis.Cache.Del(s.ctx, keys...) } // ClearAllReward 清空所有奖品相关的库存 func (s Cleaner) ClearAllReward() { s.ClearRewardSelect() s.ClearReward() }