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