You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
1.5 KiB
Go

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()
}