package models import ( "server/common" "server/db" "github.com/liangdas/mqant/log" "github.com/olivere/elastic/v7" ) // 付费用户数 func GetRecharge(start, end *int64, isNew bool, channel ...*int) int64 { q := NewQ(start, end, nil) q.Filter(elastic.NewRangeQuery("Amount").Gt(0)) if isNew { q.Must(elastic.NewMatchQuery("IsNew", true)) } q.Must(elastic.NewMatchQuery("Type", 1)) getChannelQ(q, channel...) return db.ES().CountCard(common.ESIndexBackPlayerPayData, "UID", q) } // 付费总额 func GetRechargeTotal(start, end *int64, isNew bool, channel ...*int) int64 { q := NewQ(start, end, channel...) if isNew { q.Must(elastic.NewMatchQuery("IsNew", true)) } q.Must(elastic.NewMatchQuery("Type", 1)) total, err := db.ES().SumBy(common.ESIndexBackPlayerPayData, "Amount", q) if err != nil { log.Error("err:%v", err) return 0 } return int64(total) } // 付费玩家数量 Gt func GetPayCount(start, end *int64, channel *int, isNew *bool) int64 { q := NewQ(start, end, nil, channel) if isNew != nil { q.Must(elastic.NewMatchQuery("IsNew", true)) } q.Must(elastic.NewMatchQuery("Type", 1)) q.Filter(elastic.NewRangeQuery("Amount").Gt(0)) return db.ES().CountCard(common.ESIndexBackPlayerPayData, "UID", q) } // 获取付费人数 Gt func GetRechargePlayers(start, end *int64, channel *int, isNew *bool, field string) int64 { q := NewQ(start, end, nil, channel) if isNew != nil { q.Must(elastic.NewMatchQuery("IsNew", *isNew)) } q.Must(elastic.NewMatchQuery("Type", 1)) q.Filter(elastic.NewRangeQuery("Amount").Gt(0)) return db.ES().CountCard(common.ESIndexBackPlayerPayData, field, q) } // 付费总额 func GetRechargeTotalByUid(uid *int) int64 { q := NewQ(nil, nil, nil, nil) if uid != nil { q.Must(elastic.NewMatchQuery("UID", *uid)) } q.Must(elastic.NewMatchQuery("Type", 1)) total, err := db.ES().SumBy(common.ESIndexBackPlayerPayData, "Amount", q) if err != nil { log.Error("err:%v", err) return 0 } return int64(total) } // 退出总额 func GetWithdrawTotalByUid(uid *int) int64 { q := NewQ(nil, nil, nil, nil) if uid != nil { q.Must(elastic.NewMatchQuery("UID", *uid)) } q.Must(elastic.NewMatchQuery("Type", 2)) total, err := db.ES().SumBy(common.ESIndexBackPlayerPayData, "Amount", q) if err != nil { log.Error("err:%v", err) return 0 } return int64(total) } func GetWithdrawPlayer(start, end *int64, channel *int, isNew *bool, firstWithdraw bool) int64 { q := NewQ(start, end, nil, channel) if isNew != nil { q.Must(elastic.NewMatchQuery("IsNew", *isNew)) } if firstWithdraw { q.Filter(elastic.NewRangeQuery("FirstAmount").Gt(0)) } q.Must(elastic.NewMatchQuery("Type", 2)) q.Filter(elastic.NewRangeQuery("Amount").Gt(0)) return db.ES().CountCard(common.ESIndexBackPlayerPayData, "UID", q) } func GetWithdrawCount(start, end *int64, channel *int, isNew *bool, field string) int64 { q := NewQ(start, end, nil, channel) if isNew != nil { q.Must(elastic.NewMatchQuery("IsNew", *isNew)) } q.Must(elastic.NewMatchQuery("Type", 2)) q.Filter(elastic.NewRangeQuery("Amount").Gt(0)) res, err := db.ES().SumBy(common.ESIndexBackPlayerPayData, field, q) if err != nil { log.Error(err.Error()) } return int64(res) } // 获取玩家首充金额 func GetUserFirstRecharge(uid int) int64 { q := NewQ(nil, nil, nil, nil) q.Must(elastic.NewMatchQuery("UID", uid)) q.Must(elastic.NewMatchQuery("Type", 1)) total, err := db.ES().SumBy(common.ESIndexBackPlayerPayData, "FirstAmount", q) if err != nil { log.Error("err:%v", err) return 0 } return int64(total) }