spreadmgr.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package spread
  2. import (
  3. "encoding/json"
  4. "bet24.com/log"
  5. "bet24.com/servers/common"
  6. "bet24.com/servers/coreservice/friend"
  7. inventory "bet24.com/servers/micros/item_inventory/proto"
  8. item "bet24.com/servers/micros/item_inventory/proto"
  9. user "bet24.com/servers/micros/userservices/proto"
  10. )
  11. const award string = `[{"ItemId":1,"Count":100000}]`
  12. type spreadmgr struct {
  13. items []item.ItemPack
  14. }
  15. func newSpreadMgr() *spreadmgr {
  16. obj := new(spreadmgr)
  17. obj.loadAward()
  18. log.Debug("spread manager running")
  19. return obj
  20. }
  21. func (s *spreadmgr) loadAward() {
  22. if err := json.Unmarshal([]byte(award), &s.items); err != nil {
  23. log.Error("spread loadAwards unmarshal fail %v", err)
  24. }
  25. return
  26. }
  27. func (s *spreadmgr) apply(userId, code int) (int, []item.ItemPack) {
  28. retCode := apply(userId, code)
  29. if retCode != 1 {
  30. return retCode, nil
  31. }
  32. inventory.AddItems(userId, s.items, "申请会员奖励", common.LOGTYPE_SPREAD)
  33. return retCode, s.items
  34. }
  35. func (s *spreadmgr) getMembers(code, pageIndex, pageSize int) (int, []*spreadMember) {
  36. recordCount, list := getMembers(code, pageIndex, pageSize)
  37. for _, v := range list {
  38. u := user.GetUserInfo(v.UserID)
  39. if u == nil {
  40. log.Error("spread.getMembers userId=%d ==> %+v", v.UserID, v)
  41. continue
  42. }
  43. v.NickName = u.NickName
  44. v.Sex = u.Sex
  45. v.FaceId = u.FaceId
  46. v.FaceUrl = u.FaceUrl
  47. v.VipLevel = u.Vip
  48. v.IsFriend = friend.IfFriend(code, v.UserID)
  49. }
  50. return recordCount, list
  51. }
  52. func (s *spreadmgr) gift(code, fromUserId int) (int, []item.ItemPack) {
  53. retCode := gift(code, fromUserId)
  54. if retCode != 1 {
  55. return retCode, nil
  56. }
  57. inventory.AddItems(code, s.items, "邀请会员奖励", common.LOGTYPE_SPREAD)
  58. return retCode, s.items
  59. }
  60. func (s *spreadmgr) checkTip(code int) bool {
  61. _, list := getMembers(code, 1, 100000)
  62. for _, v := range list {
  63. if v.IsGift == 0 {
  64. return true
  65. }
  66. }
  67. return false
  68. }