1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package service
- import (
- "fmt"
- "gitlab.alibaba-inc.com/pai_biz_arch/pairec/recconf"
- )
- var scenes = make(map[string]*Scene)
- func GetSence(sceneId string) (*Scene, error) {
- scene, ok := scenes[sceneId]
- if !ok {
- return nil, fmt.Errorf("Scene:not found, SenceId:%s", sceneId)
- }
- return scene, nil
- }
- func Load(conf *recconf.RecommendConfig) {
- for sceneId, categoryConfs := range conf.SceneConfs {
- scene := NewScene(sceneId)
- // scene.Init(sceneConf)
- for categoryName, categoryConf := range categoryConfs {
- // if _, ok := conf.CategoryConfs[categoryName]; !ok {
- // panic(fmt.Sprintf("category name not found, name:%s", categoryName))
- // }
- category := NewCategory(categoryName)
- category.Init(categoryConf)
- scene.AddCategory(categoryName, category)
- }
- scenes[sceneId] = scene
- }
- }
- type Scene struct {
- SceneId string
- Categories map[string]*Category
- }
- func NewScene(senceId string) *Scene {
- scene := Scene{SceneId: senceId}
- scene.Categories = make(map[string]*Category)
- return &scene
- }
- func (s *Scene) Init(config recconf.SceneConfig) {
- }
- func (s *Scene) AddCategory(name string, category *Category) {
- s.Categories[name] = category
- }
- func (s *Scene) GetCategory(name string) (*Category, error) {
- category, ok := s.Categories[name]
- if !ok {
- return s.Categories["default_category"], nil
- }
- return category, nil
- }
|