snghistory.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package sngmatch
  2. import (
  3. "bet24.com/log"
  4. "bet24.com/servers/common"
  5. item "bet24.com/servers/micros/item_inventory/proto"
  6. "bet24.com/servers/micros/matches/handler/matchbase"
  7. "fmt"
  8. )
  9. type historyUser struct {
  10. matchbase.MatchUserBrief
  11. enrollFeeItemId int
  12. enrollFeeCount int
  13. enrollTime int
  14. prize []item.ItemPack
  15. }
  16. type snghistory struct {
  17. // 房间信息
  18. matchconfig
  19. MatchNo int
  20. // 开始结束时间
  21. StartTime int64
  22. EndTime int64
  23. // 参赛玩家
  24. EnrollUsers []historyUser
  25. Winners []int
  26. noShowUsers []matchbase.EnrollUser
  27. }
  28. func (h *snghistory) dump(detail bool) {
  29. log.Release(" MatchId[%d] MatchNo[%d] GameName[%s] GameRule[%s] TotalUser[%d],TableUser[%d],Target[%d],Fee[%d],Prizes[%d]",
  30. h.MatchId, h.MatchNo, h.GameName, h.GameRule, h.TotalUser, h.TableUser, h.Target, h.EnrollFee, h.Prizes)
  31. log.Release(" Start[%s] End[%s] Winners %v", common.TimeStampToString(h.StartTime), common.TimeStampToString(h.EndTime), h.Winners)
  32. if !detail {
  33. return
  34. }
  35. for i := 0; i < len(h.EnrollUsers); i++ {
  36. v := h.EnrollUsers[i]
  37. log.Release(" [%d]: %d.%s", v.Rank, v.UserId, v.NickName)
  38. }
  39. }
  40. func (h *snghistory) isUserEnrolled(userId int) bool {
  41. for _, v := range h.EnrollUsers {
  42. if v.UserId == userId {
  43. return true
  44. }
  45. }
  46. return false
  47. }
  48. func (h *snghistory) getUsersDescForDB() string {
  49. var ret string
  50. for _, v := range h.EnrollUsers {
  51. ret = fmt.Sprintf("%s%d,%d,%d,%d,%d;", ret, v.UserId, v.Rank, v.Score, v.enrollFeeItemId, v.enrollFeeCount)
  52. }
  53. return ret
  54. }
  55. func (h *snghistory) setAllEnrolledUsers(users []matchbase.EnrollUser) {
  56. if len(users) == 0 {
  57. return
  58. }
  59. for i := 0; i < len(users); {
  60. if h.isUserEnrolled(users[i].UserId) {
  61. users = append(users[:i], users[i+1:]...)
  62. } else {
  63. i++
  64. }
  65. }
  66. if len(users) == 0 {
  67. return
  68. }
  69. h.noShowUsers = make([]matchbase.EnrollUser, len(users))
  70. copy(h.noShowUsers, users)
  71. }