badge.go 799 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package badge
  2. import (
  3. "bet24.com/log"
  4. badge "bet24.com/servers/micros/badge/proto"
  5. "encoding/json"
  6. "time"
  7. )
  8. var mgr *badgeManager
  9. type badgeManager struct {
  10. badge_list []badge.Badge
  11. }
  12. func getBadgeManager() *badgeManager {
  13. if mgr == nil {
  14. mgr = new(badgeManager)
  15. mgr.refreshData()
  16. }
  17. return mgr
  18. }
  19. func (this *badgeManager) refreshData() {
  20. this.load()
  21. time.AfterFunc(1*time.Minute, this.refreshData)
  22. }
  23. func (this *badgeManager) load() {
  24. data := badge.GetSysBadgeList()
  25. if err := json.Unmarshal([]byte(data), &this.badge_list); err != nil {
  26. log.Error("badge.load data unmarshal fail %v", err)
  27. }
  28. return
  29. }
  30. func (this *badgeManager) getBadgeName(badgeId int) string {
  31. for _, v := range this.badge_list {
  32. if v.BadgeId == badgeId {
  33. return v.BadgeName
  34. }
  35. }
  36. return ""
  37. }