player_channel.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package service
  2. import (
  3. "context"
  4. "gadmin/config"
  5. "gadmin/internal/admin/consts"
  6. "gadmin/internal/gorm/query"
  7. "github.com/sirupsen/logrus"
  8. )
  9. // PlayerChannel 玩家渠道绑定关系
  10. var PlayerChannel = new(sPlayerChannel)
  11. type sPlayerChannel struct{}
  12. // PlayerIds 选项
  13. func (s *sPlayerChannel) PlayerIds(ctx context.Context, channelId string) (list []int64) {
  14. rdb := query.Use(config.DB).PlayerChannel
  15. m := rdb.WithContext(ctx)
  16. switch channelId {
  17. case consts.ChannelIdNone:
  18. // 不选择渠道
  19. case consts.ChannelIdAllAdv, consts.ChannelIdAllWx, consts.ChannelIdAllTT:
  20. m = m.Where(rdb.ChannelID.In(Channel.GetIdsByType(channelId)...))
  21. default:
  22. // 指定渠道
  23. m = m.Where(rdb.ChannelID.Eq(channelId))
  24. }
  25. if err := m.Pluck(rdb.Playerid, &list); err != nil {
  26. logrus.Warnf("service.PlayerIds err:%+v", err)
  27. return nil
  28. }
  29. return
  30. }
  31. func (s *sPlayerChannel) GetChannelId(userId int64) string {
  32. rdb := query.Use(config.DB).PlayerChannel
  33. result, err := rdb.Where(rdb.Playerid.Eq(userId)).First()
  34. if err != nil {
  35. return "0"
  36. }
  37. if result == nil {
  38. return "0"
  39. }
  40. return result.ChannelID
  41. }