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.
93 lines
1.9 KiB
93 lines
1.9 KiB
package dao |
|
|
|
import ( |
|
"encoding/json" |
|
|
|
"context" |
|
"go-common/app/admin/main/tv/model" |
|
"go-common/library/cache/memcache" |
|
) |
|
|
|
//SiMcOutKey is used for tv search intervene key with MC |
|
const SiMcOutKey = "_tv_search" |
|
|
|
//SiMcStateKey is used for tv search intervene publish status key with MC |
|
const SiMcStateKey = "_tv_search_state" |
|
|
|
// SetSearchInterv is used for setting search inter rank cache |
|
func (d *Dao) SetSearchInterv(c context.Context, rank []*model.OutSearchInter) (err error) { |
|
var ( |
|
conn memcache.Conn |
|
item *memcache.Item |
|
bs []byte |
|
) |
|
bs, err = json.Marshal(rank) |
|
if err != nil { |
|
return |
|
} |
|
conn = d.mc.Get(c) |
|
defer conn.Close() |
|
item = &memcache.Item{ |
|
Key: SiMcOutKey, |
|
Value: bs, |
|
Expiration: 0, |
|
} |
|
err = conn.Set(item) |
|
return |
|
} |
|
|
|
// GetSearchInterv is used for getting search inter rank cache |
|
func (d *Dao) GetSearchInterv(c context.Context) (rank []*model.OutSearchInter, err error) { |
|
var ( |
|
conn memcache.Conn |
|
item *memcache.Item |
|
) |
|
conn = d.mc.Get(c) |
|
defer conn.Close() |
|
if item, err = conn.Get(SiMcOutKey); err != nil { |
|
return |
|
} |
|
if err = json.Unmarshal(item.Value, &rank); err != nil { |
|
return |
|
} |
|
return |
|
} |
|
|
|
// SetPublishCache is used for setting publish status |
|
func (d *Dao) SetPublishCache(c context.Context, state *model.PublishStatus) (err error) { |
|
var ( |
|
conn memcache.Conn |
|
item *memcache.Item |
|
bs []byte |
|
) |
|
bs, err = json.Marshal(state) |
|
if err != nil { |
|
return |
|
} |
|
conn = d.mc.Get(c) |
|
defer conn.Close() |
|
item = &memcache.Item{ |
|
Key: SiMcStateKey, |
|
Value: bs, |
|
Expiration: 0, |
|
} |
|
err = conn.Set(item) |
|
return |
|
} |
|
|
|
// GetPublishCache is used for getting search inter rank cache |
|
func (d *Dao) GetPublishCache(c context.Context) (state *model.PublishStatus, err error) { |
|
var ( |
|
conn memcache.Conn |
|
item *memcache.Item |
|
) |
|
conn = d.mc.Get(c) |
|
defer conn.Close() |
|
if item, err = conn.Get(SiMcStateKey); err != nil { |
|
return |
|
} |
|
if err = json.Unmarshal(item.Value, &state); err != nil { |
|
return |
|
} |
|
return |
|
}
|
|
|