53 lines
1.0 KiB
Go
53 lines
1.0 KiB
Go
package redis
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"time"
|
|
|
|
"myschools.me/heritage/heritage-api/model"
|
|
|
|
"github.com/sirupsen/logrus"
|
|
)
|
|
|
|
// MenuListKey 菜单列表缓存键
|
|
var MenuListKey = "menu:list_%s"
|
|
|
|
// MenuListSet 将菜单列表放入缓存
|
|
func MenuListSet(obj *string, menus []*model.Menu, expireIn time.Duration) error {
|
|
key := fmt.Sprintf(MenuListKey, *obj)
|
|
err := set(&key, menus, expireIn)
|
|
if err != nil {
|
|
logrus.WithFields(logrus.Fields{
|
|
"func": "MenuListSet",
|
|
}).Warnf("Set: %s", err.Error())
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// MenuListGet 从缓存中获取菜单列表
|
|
func MenuListGet(obj *string) ([]*model.Menu, error) {
|
|
key := fmt.Sprintf(MenuListKey, *obj)
|
|
b, err := getBytes(&key)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if b == nil {
|
|
return nil, nil
|
|
}
|
|
|
|
var menus []*model.Menu
|
|
if err := json.Unmarshal(*b, &menus); err != nil {
|
|
return nil, err
|
|
}
|
|
return menus, nil
|
|
}
|
|
|
|
// MenuListDel 删除菜单列表缓存
|
|
func MenuListDel(obj *string) error {
|
|
key := fmt.Sprintf(MenuListKey, *obj)
|
|
return delete(key)
|
|
}
|