| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | package svcimport (	"golib/features/mo"	"golib/infra/ii")var (	svc *Service)func InitDefault(client *mo.Client, items ii.Items, perms ii.Permission, log Logger) {	svc = new(Service)	svc.Client = client	svc.Items = items	svc.Perms = perms	svc.Log = log	svc.cache = NewCache(items)	svc.refreshCh = make(chan ii.ItemInfo, 1024)	go svc.handleRefresh()}func Items() ii.Items {	return svc.Items}func AddItemCache(itemName string, user ii.User) {	svc.cache.AddItem(itemName)	service := Svc(user)	rows, err := service.Find(itemName, mo.D{})	if err != nil {		panic(err)	}	svc.cache.SetData(itemName, rows)}func DbClient() *mo.Client {	return svc.Client}func Svc(u ii.User) *Service {	return &Service{		Items:  svc.Items,		Perms:  svc.Perms,		User:   u,		Client: svc.Client,		Log:    svc.Log,		cache:  svc.cache,	}}
 |