You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
1.9 KiB
86 lines
1.9 KiB
package dao |
|
|
|
import ( |
|
"context" |
|
"strconv" |
|
|
|
"go-common/library/cache/redis" |
|
"go-common/library/log" |
|
) |
|
|
|
const ( |
|
_prefixBuyFlag = "b_" |
|
_prefixApplyFlag = "a_" |
|
) |
|
|
|
func keyBuyFlag(mid int64) string { |
|
return _prefixBuyFlag + strconv.FormatInt(mid, 10) |
|
} |
|
|
|
func keyApplyFlag(code string) string { |
|
return _prefixApplyFlag + code |
|
} |
|
|
|
// pingRedis ping redis. |
|
func (d *Dao) pingRedis(c context.Context) (err error) { |
|
conn := d.redis.Get(c) |
|
defer conn.Close() |
|
if _, err = redis.String(conn.Do("PING")); err != nil { |
|
log.Error("redis.String(conn.Do(PING)) error(%v)", err) |
|
} |
|
return |
|
} |
|
|
|
// SetBuyFlagCache set buy flag cache |
|
func (d *Dao) SetBuyFlagCache(c context.Context, mid int64, f string) (ok bool, err error) { |
|
key := keyBuyFlag(mid) |
|
conn := d.redis.Get(c) |
|
defer conn.Close() |
|
var res interface{} |
|
if res, err = conn.Do("SET", key, f, "EX", d.inviteExpire, "NX"); err != nil { |
|
log.Error("conn.Do(SET, %s, %s, EX, %d, NX)", key, f) |
|
return |
|
} |
|
if res != nil { |
|
ok = true |
|
} |
|
return |
|
} |
|
|
|
// DelBuyFlagCache del buy flag cache |
|
func (d *Dao) DelBuyFlagCache(c context.Context, mid int64) (err error) { |
|
key := keyBuyFlag(mid) |
|
conn := d.redis.Get(c) |
|
defer conn.Close() |
|
if _, err = conn.Do("DEL", key); err != nil { |
|
log.Error("conn.Do(DEL, %s)", key) |
|
} |
|
return |
|
} |
|
|
|
// SetApplyFlagCache set apply flag cache |
|
func (d *Dao) SetApplyFlagCache(c context.Context, code, f string) (ok bool, err error) { |
|
key := keyApplyFlag(code) |
|
conn := d.redis.Get(c) |
|
defer conn.Close() |
|
var res interface{} |
|
if res, err = conn.Do("SET", key, f, "EX", d.inviteExpire, "NX"); err != nil { |
|
log.Error("conn.Do(SET, %s, %s, EX, %d, NX)", key, f, d.inviteExpire) |
|
return |
|
} |
|
if res != nil { |
|
ok = true |
|
} |
|
return |
|
} |
|
|
|
// DelApplyFlagCache del apply Flag Cache |
|
func (d *Dao) DelApplyFlagCache(c context.Context, code string) (err error) { |
|
key := keyApplyFlag(code) |
|
conn := d.redis.Get(c) |
|
defer conn.Close() |
|
if _, err = conn.Do("DEL", key); err != nil { |
|
log.Error("conn.Do(DEL, %s)", key) |
|
} |
|
return |
|
}
|
|
|