94 lines
1.9 KiB
Go
94 lines
1.9 KiB
Go
|
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
|
||
|
}
|