124 lines
2.7 KiB
Go
124 lines
2.7 KiB
Go
|
package dao
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"fmt"
|
||
|
|
||
|
"go-common/app/job/main/member/model"
|
||
|
"go-common/library/cache/memcache"
|
||
|
"go-common/library/log"
|
||
|
"strconv"
|
||
|
|
||
|
errors "github.com/pkg/errors"
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
_expPrefix = "exp_%d"
|
||
|
_expExpire = 86400
|
||
|
)
|
||
|
|
||
|
func expKey(mid int64) string {
|
||
|
return fmt.Sprintf(_expPrefix, mid)
|
||
|
}
|
||
|
|
||
|
func (d *Dao) mcBaseKey(mid int64) (key string) {
|
||
|
return fmt.Sprintf(model.CacheKeyBase, mid)
|
||
|
}
|
||
|
|
||
|
func (d *Dao) moralKey(mid int64) (key string) {
|
||
|
return fmt.Sprintf(model.CacheKeyMoral, mid)
|
||
|
}
|
||
|
|
||
|
// SetStartCache set data import start
|
||
|
func (d *Dao) SetStartCache(c context.Context, mid int64, key string) (err error) {
|
||
|
conn := d.mc.Get(c)
|
||
|
defer conn.Close()
|
||
|
if conn.Set(&memcache.Item{
|
||
|
Key: key,
|
||
|
Object: mid,
|
||
|
Flags: memcache.FlagJSON,
|
||
|
Expiration: 0,
|
||
|
}); err != nil {
|
||
|
log.Error("conn.Set(%s, %d) error(%v)", key, mid, err)
|
||
|
}
|
||
|
return
|
||
|
}
|
||
|
|
||
|
// DelMoralCache delete moral cache.
|
||
|
func (d *Dao) DelMoralCache(c context.Context, mid int64) (err error) {
|
||
|
key := d.moralKey(mid)
|
||
|
conn := d.mc.Get(c)
|
||
|
defer conn.Close()
|
||
|
if err = conn.Delete(key); err != nil {
|
||
|
if err == memcache.ErrNotFound {
|
||
|
err = nil
|
||
|
return
|
||
|
}
|
||
|
log.Error("conn.Delete(%s) error(%v)", key, err)
|
||
|
}
|
||
|
return
|
||
|
}
|
||
|
|
||
|
// DelBaseInfoCache delete baseInfo cache.
|
||
|
func (d *Dao) DelBaseInfoCache(c context.Context, mid int64) (err error) {
|
||
|
key := d.mcBaseKey(mid)
|
||
|
conn := d.mc.Get(c)
|
||
|
defer conn.Close()
|
||
|
if err = conn.Delete(key); err != nil {
|
||
|
if err == memcache.ErrNotFound {
|
||
|
err = nil
|
||
|
return
|
||
|
}
|
||
|
log.Error("conn.Delete(%s) error(%v)", key, err)
|
||
|
}
|
||
|
return
|
||
|
}
|
||
|
|
||
|
// SetExpCache set user exp cache.
|
||
|
func (d *Dao) SetExpCache(c context.Context, mid, exp int64) (err error) {
|
||
|
conn := d.mc.Get(c)
|
||
|
defer conn.Close()
|
||
|
if err = conn.Set(&memcache.Item{
|
||
|
Key: expKey(mid),
|
||
|
Value: []byte(strconv.FormatInt(exp, 10)),
|
||
|
Expiration: _expExpire,
|
||
|
}); err != nil {
|
||
|
log.Error("setexpcache mid %d err %v ", mid, err)
|
||
|
}
|
||
|
return
|
||
|
}
|
||
|
|
||
|
func realnameInfoKey(mid int64) string {
|
||
|
return fmt.Sprintf("realname_info_%d", mid)
|
||
|
}
|
||
|
|
||
|
func realnameApplyStatusKey(mid int64) string {
|
||
|
return fmt.Sprintf("realname_apply_%d", mid)
|
||
|
}
|
||
|
|
||
|
// DeleteRealnameCache delete all realname cache
|
||
|
func (d *Dao) DeleteRealnameCache(c context.Context, mid int64) (err error) {
|
||
|
var (
|
||
|
key1 = realnameInfoKey(mid)
|
||
|
key2 = realnameApplyStatusKey(mid)
|
||
|
conn = d.mc.Get(c)
|
||
|
)
|
||
|
defer conn.Close()
|
||
|
if err = conn.Delete(key1); err != nil {
|
||
|
if err != memcache.ErrNotFound {
|
||
|
err = errors.Wrapf(err, "conn.Delete(%s)", key1)
|
||
|
return
|
||
|
}
|
||
|
err = nil
|
||
|
}
|
||
|
if err = conn.Delete(key2); err != nil {
|
||
|
if err == memcache.ErrNotFound {
|
||
|
err = nil
|
||
|
} else {
|
||
|
err = errors.Wrapf(err, "conn.Delete(%s)", key2)
|
||
|
}
|
||
|
return
|
||
|
}
|
||
|
return
|
||
|
}
|