caches.go 736 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package utils
  2. import (
  3. "sfis/db"
  4. "sfis/model"
  5. "sync"
  6. )
  7. var (
  8. UserCaches = new(ResourceCache)
  9. ProductCaches = new(ResourceCache)
  10. ApiUrlCache = sync.Map{}
  11. )
  12. type ResourceCache struct {
  13. Data []interface{}
  14. Map sync.Map
  15. }
  16. func FLushUserCaches() {
  17. users := make([]*model.User, 0)
  18. db.GetSFISDB().Find(&users)
  19. UserCaches.Map = sync.Map{}
  20. for _, user := range users {
  21. UserCaches.Map.Store(user.AppID, user)
  22. }
  23. }
  24. func GetUserByAppID(appID string) *model.User {
  25. if m, ok := UserCaches.Map.Load(appID); ok {
  26. _m := m.(*model.User)
  27. return _m
  28. }
  29. return nil
  30. }
  31. func GetProductByID(productID int) *model.Product {
  32. if m, ok := ProductCaches.Map.Load(productID); ok {
  33. _m := m.(*model.Product)
  34. return _m
  35. }
  36. return nil
  37. }