player_attr.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. package service
  2. import (
  3. "gadmin/config"
  4. "gadmin/internal/admin/consts"
  5. "gadmin/internal/admin/forms"
  6. "gadmin/internal/gorm/model"
  7. "gadmin/internal/gorm/query"
  8. "gadmin/utility/player"
  9. "gadmin/utility/serializer"
  10. "github.com/gin-gonic/gin"
  11. )
  12. var PlayerAttr = new(sPlayerAttr)
  13. type sPlayerAttr struct{}
  14. func (s *sPlayerAttr) Get(ctx *gin.Context, req forms.PlayerAttrGetReq) serializer.Response {
  15. type M2 struct {
  16. *model.PlayerAttr
  17. AdvCount int64 `json:"advCount"`
  18. CT int64 `json:"create_time"`
  19. OnlineDuration string `json:"onlineDuration"`
  20. }
  21. DB, err := player.GetDBByUserId(req.Playerid)
  22. if err != nil {
  23. return serializer.Err(consts.CodeParamErr, "GetDBByUserId err", err)
  24. }
  25. var (
  26. q = query.Use(config.GDBGroup[DB]).PlayerAttr
  27. m = q.WithContext(ctx).Where(q.Playerid.Eq(req.Playerid))
  28. models *model.PlayerAttr
  29. m2 = new(M2)
  30. //l = query.Use(config.DB).AdvertisementLog
  31. //o = query.Use(config.DB).OnlineDurationLog
  32. )
  33. if err = m.Scan(&models); err != nil {
  34. return serializer.Err(consts.CodeParamErr, "查询出错 ", err)
  35. }
  36. m2.PlayerAttr = models
  37. m2.CT = models.CreateTime.Unix()
  38. /*m2.AdvCount, err = l.WithContext(ctx).Where(l.UserID.Eq(req.Playerid), l.EventID.Eq(4)).Count()
  39. if err != nil {
  40. return serializer.Err(consts.CodeParamErr, "查询出错 Count", err)
  41. }
  42. type OnlineResult struct {
  43. Total int64
  44. }
  45. var onlineResult OnlineResult
  46. err = o.WithContext(ctx).Select(o.Duration.Sum().As("total")).Where(o.UserID.Eq(req.Playerid)).Scan(&onlineResult)
  47. if err != nil {
  48. return serializer.Err(consts.CodeParamErr, "查询出错 onlineResult", err)
  49. }
  50. m2.OnlineDuration = utility.ConvertTimeUnit(onlineResult.Total)*/
  51. return serializer.Suc(m2)
  52. }
  53. func (s *sPlayerAttr) GetAll(ctx *gin.Context, req forms.PlayerAttrGetAllReq) serializer.Response {
  54. result := make([]*model.PlayerAttr, 0)
  55. for _, db := range config.GDBGroup {
  56. var (
  57. models *model.PlayerAttr
  58. q = query.Use(db).PlayerAttr
  59. m = q.WithContext(ctx).Where(q.AccID.Eq(req.AccId))
  60. )
  61. if err := m.Scan(&models); err != nil {
  62. return serializer.Err(consts.CodeParamErr, "查询出错 ", err)
  63. }
  64. if models == nil {
  65. continue
  66. }
  67. result = append(result, models)
  68. }
  69. return serializer.Suc(result)
  70. }
  71. func (s *sPlayerAttr) LevelRanking(ctx *gin.Context, req forms.LevelRankingReq) serializer.Response {
  72. type mods struct {
  73. model.PlayerAttr
  74. //NickName string `json:"nickName"`
  75. }
  76. DB, err := player.GetDBByServerID(req.ServerId)
  77. if err != nil {
  78. return serializer.Err(consts.CodeParamErr, "LevelRanking GetDBByUserId err", err)
  79. }
  80. var (
  81. q = query.Use(config.GDBGroup[DB]).PlayerAttr
  82. m = q.WithContext(ctx)
  83. models forms.ListRes
  84. lists []mods
  85. )
  86. m = m.Limit(100).Order(q.Level.Desc())
  87. req.Page, req.PerPage, _ = forms.CalculatePage(req.Page, req.PerPage)
  88. if err := m.Limit(100).Scan(&lists); err != nil {
  89. return serializer.Err(consts.CodeParamErr, "查询出错 lists", err)
  90. }
  91. for i := 0; i < len(lists); i++ {
  92. lists[i].ID = int64(i + 1)
  93. //user := data.GetUser(lists[i].Playerid)
  94. //if user != nil {
  95. // lists[i].NickName = user.NickName
  96. //}
  97. //
  98. //lists[i].NickName = lists[i].NickName
  99. }
  100. models.List = lists
  101. models.Page = req.Page
  102. models.PerPage = req.PerPage
  103. models.PageCount = 0
  104. return serializer.Suc(models)
  105. }