Files
GoFilm/server/model/Categories.go
2023-06-24 22:37:22 +08:00

56 lines
1.3 KiB
Go

package model
import (
"encoding/json"
"log"
"server/config"
"server/plugin/db"
)
// Category 分类信息
type Category struct {
Id int64 `json:"id"` // 分类ID
Pid int64 `json:"pid"` // 父级分类ID
Name string `json:"name"` // 分类名称
}
// CategoryTree 分类信息树形结构
type CategoryTree struct {
*Category
Children []*CategoryTree `json:"children"` // 子分类信息
}
// SaveCategoryTree 保存影片分类信息
func SaveCategoryTree(tree string) error {
return db.Rdb.Set(db.Cxt, config.CategoryTreeKey, tree, config.CategoryTreeExpired).Err()
}
// GetCategoryTree 获取影片分类信息
func GetCategoryTree() CategoryTree {
data := db.Rdb.Get(db.Cxt, config.CategoryTreeKey).Val()
tree := CategoryTree{}
_ = json.Unmarshal([]byte(data), &tree)
return tree
}
// ExistsCategoryTree 查询分类信息是否存在
func ExistsCategoryTree() bool {
exists, err := db.Rdb.Exists(db.Cxt, config.CategoryTreeKey).Result()
if err != nil {
log.Println("ExistsCategoryTree Error", err)
}
return exists == 1
}
// GetChildrenTree 根据影片Id获取对应分类的子分类信息
func GetChildrenTree(id int64) []*CategoryTree {
tree := GetCategoryTree()
for _, t := range tree.Children {
if t.Id == id {
return t.Children
}
}
return nil
}