package timeslicequery import ( "github.com/nacos-group/nacos-sdk-go/util" "sync" "voucher/internal/biz/cmb" "voucher/internal/biz/mixrepos" "voucher/internal/biz/repo" "voucher/internal/biz/wechatrepo" "voucher/internal/conf" "voucher/internal/data" ) type Query struct { mu sync.RWMutex queryMap map[string]bool bc *conf.Bootstrap rdb *data.Rdb cmb *cmb.Cmb productRepo repo.ProductRepo orderRepo repo.OrderRepo wechatCpnRepo wechatrepo.WechatCpnRepo mqSendMixRepo mixrepos.MQSendMixRepo } func NewQuery( bc *conf.Bootstrap, rdb *data.Rdb, cmb *cmb.Cmb, productRepo repo.ProductRepo, orderRepo repo.OrderRepo, wechatCpnRepo wechatrepo.WechatCpnRepo, mqSendMixRepo mixrepos.MQSendMixRepo) *Query { return &Query{ queryMap: make(map[string]bool), bc: bc, rdb: rdb, cmb: cmb, productRepo: productRepo, orderRepo: orderRepo, wechatCpnRepo: wechatCpnRepo, mqSendMixRepo: mqSendMixRepo} } func (v *Query) uid(no string) string { return util.Md5("query" + no) } func (this *Query) GetAll() map[string]bool { return this.queryMap } func (this *Query) Get(uid string) bool { this.mu.Lock() defer this.mu.Unlock() if _, ok := this.queryMap[uid]; ok { return ok } return false } func (this *Query) Add(uid string) { this.mu.Lock() defer this.mu.Unlock() this.queryMap[uid] = true } func (this *Query) Remove(uid string) { this.mu.Lock() defer this.mu.Unlock() if _, ok := this.queryMap[uid]; ok { delete(this.queryMap, uid) } }