123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- package dao
- import (
- "context"
- "strconv"
- "go-common/app/admin/main/usersuit/model"
- gmc "go-common/library/cache/memcache"
- "go-common/library/log"
- )
- const (
- _prefixActivatedNid = "usma:" // key of activated medal nid
- _prefixOwners = "umos:" // key of owners info
- _prefixRedPoint = "usrp:" // key of red point
- _prefixPopup = "uspp:" // key of new medal popup
- )
- // medalactivated medal nid key.
- func activatedNidKey(mid int64) string {
- return _prefixActivatedNid + strconv.FormatInt(mid, 10)
- }
- // ownersKey medal_owner key.
- func ownersKey(mid int64) string {
- return _prefixOwners + strconv.FormatInt(mid, 10)
- }
- //RedPointKey new medal RedPoint key.
- func RedPointKey(mid int64) string {
- return _prefixRedPoint + strconv.FormatInt(mid, 10)
- }
- // PopupKey new medal popup key.
- func PopupKey(mid int64) string {
- return _prefixPopup + strconv.FormatInt(mid, 10)
- }
- func (d *Dao) pingMC(c context.Context) (err error) {
- conn := d.mc.Get(c)
- defer conn.Close()
- if err = conn.Set(&gmc.Item{Key: "ping", Value: []byte{1}, Expiration: d.mcExpire}); err != nil {
- log.Error("conn.Store(set, ping, 1) error(%v)", err)
- }
- return
- }
- // MedalOwnersCache get medal_owner cache.
- func (d *Dao) MedalOwnersCache(c context.Context, mid int64) (res []*model.MedalOwner, err error) {
- conn := d.mc.Get(c)
- defer conn.Close()
- item, err := conn.Get(ownersKey(mid))
- if err != nil {
- if err == gmc.ErrNotFound {
- res = nil
- err = nil
- return
- }
- log.Error("d.MedalOwnersCache err(%v)", err)
- return
- }
- res = make([]*model.MedalOwner, 0)
- if err = conn.Scan(item, &res); err != nil {
- log.Error("d.MedalOwnersCache err(%v)", err)
- }
- return
- }
- // SetMedalOwnersache set medal_owner cache.
- func (d *Dao) SetMedalOwnersache(c context.Context, mid int64, nos []*model.MedalOwner) (err error) {
- key := ownersKey(mid)
- item := &gmc.Item{Key: key, Object: nos, Expiration: d.mcExpire, Flags: gmc.FlagJSON}
- conn := d.mc.Get(c)
- defer conn.Close()
- if err = conn.Set(item); err != nil {
- log.Error("SetMedalOwnersache err(%v)", err)
- }
- return
- }
- // DelMedalOwnersCache delete medal_owner cache.
- func (d *Dao) DelMedalOwnersCache(c context.Context, mid int64) (err error) {
- key := ownersKey(mid)
- conn := d.mc.Get(c)
- defer conn.Close()
- if err = conn.Delete(key); err != nil {
- if err == gmc.ErrNotFound {
- err = nil
- } else {
- log.Error("d.DelMedalOwnersCache(%s) error(%v)", key, err)
- }
- }
- return
- }
- // MedalActivatedCache get user activated medal nid.
- func (d *Dao) MedalActivatedCache(c context.Context, mid int64) (nid int64, err error) {
- conn := d.mc.Get(c)
- defer conn.Close()
- item, err := conn.Get(activatedNidKey(mid))
- if err != nil {
- if err == gmc.ErrNotFound {
- nid = 0
- err = nil
- return
- }
- log.Error("d.MedalActivatedCache(mid:%d) err(%v)", mid, err)
- return
- }
- if err = conn.Scan(item, &nid); err != nil {
- log.Error("d.MedalActivatedCache(mid:%d) err(%v)", mid, err)
- }
- return
- }
- // SetMedalActivatedCache set activated medal cache.
- func (d *Dao) SetMedalActivatedCache(c context.Context, mid, nid int64) (err error) {
- key := activatedNidKey(mid)
- item := &gmc.Item{Key: key, Object: nid, Expiration: d.mcExpire, Flags: gmc.FlagJSON}
- conn := d.mc.Get(c)
- defer conn.Close()
- if err = conn.Set(item); err != nil {
- log.Error("SetMedalActivatedCache err(%v)", err)
- }
- return
- }
- // DelMedalActivatedCache delete activated medal cache.
- func (d *Dao) DelMedalActivatedCache(c context.Context, mid int64) (err error) {
- key := activatedNidKey(mid)
- conn := d.mc.Get(c)
- defer conn.Close()
- if err = conn.Delete(key); err != nil {
- if err == gmc.ErrNotFound {
- err = nil
- } else {
- log.Error("d.DelMedalActivatedCache(%s) error(%v)", key, err)
- }
- }
- return
- }
- // PopupCache get new medal info popup cache.
- func (d *Dao) PopupCache(c context.Context, mid int64) (nid int64, err error) {
- conn := d.mc.Get(c)
- defer conn.Close()
- item, err := conn.Get(PopupKey(mid))
- if err != nil {
- if err == gmc.ErrNotFound {
- nid = 0
- err = nil
- return
- }
- log.Error("d.PopupCache(mid:%d) err(%v)", mid, err)
- return
- }
- if err = conn.Scan(item, &nid); err != nil {
- log.Error("d.PopupCache(mid:%d) err(%v)", mid, err)
- }
- return
- }
- // SetPopupCache set popup cache.
- func (d *Dao) SetPopupCache(c context.Context, mid, nid int64) (err error) {
- key := PopupKey(mid)
- item := &gmc.Item{Key: key, Object: nid, Expiration: d.pointExpire, Flags: gmc.FlagJSON}
- conn := d.mc.Get(c)
- defer conn.Close()
- if err = conn.Set(item); err != nil {
- log.Error("SetMedalOwnersache err(%v)", err)
- }
- return
- }
- // DelPopupCache delete new medal info popup cache.
- func (d *Dao) DelPopupCache(c context.Context, mid int64) (err error) {
- key := PopupKey(mid)
- conn := d.mc.Get(c)
- defer conn.Close()
- if err = conn.Delete(key); err != nil {
- if err == gmc.ErrNotFound {
- err = nil
- } else {
- log.Error("d.DelPopupCache(%s) error(%v)", key, err)
- }
- }
- return
- }
- // RedPointCache get new medal info red point cache.
- func (d *Dao) RedPointCache(c context.Context, mid int64) (nid int64, err error) {
- conn := d.mc.Get(c)
- defer conn.Close()
- item, err := conn.Get(RedPointKey(mid))
- if err != nil {
- if err == gmc.ErrNotFound {
- err = nil
- return
- }
- log.Error("d.RedPointCache(mid:%d) err(%v)", mid, err)
- return
- }
- if err = conn.Scan(item, &nid); err != nil {
- log.Error("d.RedPointCache(mid:%d) err(%v)", mid, err)
- }
- return
- }
- // SetRedPointCache set red point cache.
- func (d *Dao) SetRedPointCache(c context.Context, mid, nid int64) (err error) {
- key := RedPointKey(mid)
- item := &gmc.Item{Key: key, Object: nid, Expiration: d.pointExpire, Flags: gmc.FlagJSON}
- conn := d.mc.Get(c)
- defer conn.Close()
- if err = conn.Set(item); err != nil {
- log.Error("SetRedPointCache(%d %d) err(%v)", mid, nid, err)
- }
- return
- }
- // DelRedPointCache delete new medal info red point cache.
- func (d *Dao) DelRedPointCache(c context.Context, mid int64) (err error) {
- key := RedPointKey(mid)
- conn := d.mc.Get(c)
- defer conn.Close()
- if err = conn.Delete(key); err != nil {
- if err == gmc.ErrNotFound {
- err = nil
- } else {
- log.Error("d.DelRedPointCache(%d) error(%v)", mid, err)
- }
- }
- return
- }
|