package utils import ( "sfis/db" "sfis/model" "sync" ) var ( UserCaches = new(ResourceCache) ProductCaches = new(ResourceCache) ApiUrlCache = sync.Map{} ) type ResourceCache struct { Data []interface{} Map sync.Map } func FLushUserCaches() { users := make([]*model.User, 0) db.GetSFISDB().Find(&users) UserCaches.Map = sync.Map{} for _, user := range users { UserCaches.Map.Store(user.AppID, user) } } func GetUserByAppID(appID string) *model.User { if m, ok := UserCaches.Map.Load(appID); ok { _m := m.(*model.User) return _m } return nil } func GetProductByID(productID int) *model.Product { if m, ok := ProductCaches.Map.Load(productID); ok { _m := m.(*model.Product) return _m } return nil }