heritage-api/redis/menu-redis.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)
}