印度包网
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

97 lines
2.0 KiB

package models
import (
"server/db"
"server/modules/backend/values"
"github.com/liangdas/mqant/log"
"github.com/olivere/elastic/v7"
)
func NewQ(start, end *int64, channel ...*int) *elastic.BoolQuery {
q := elastic.NewBoolQuery()
if start != nil {
q.Filter(elastic.NewRangeQuery("Time").Gte(*start))
}
if end != nil {
q.Filter(elastic.NewRangeQuery("Time").Lt(*end))
}
getChannelQ(q, channel...)
return q
}
func NewQt(start, end *int64, channel ...*int) *elastic.BoolQuery {
q := elastic.NewBoolQuery()
if start != nil {
q.Filter(elastic.NewRangeQuery("time").Gte(*start))
}
if end != nil {
q.Filter(elastic.NewRangeQuery("time").Lt(*end))
}
if len(channel) > 0 {
var valueArr []interface{}
for _, v := range channel {
if v == nil {
continue
}
valueArr = append(valueArr, *v)
}
if len(valueArr) > 0 {
q.Must(elastic.NewTermsQuery("ChannelID", valueArr...))
}
}
return q
}
func getChannelQ(q *elastic.BoolQuery, channel ...*int) {
if len(channel) == 0 {
return
}
var arr []interface{}
for _, v := range channel {
if v == nil {
continue
}
arr = append(arr, *v)
}
if len(arr) == 0 {
return
}
q.Filter(elastic.NewTermsQuery("Channel", arr...))
}
// 获取当前在线人数
func GetOnline() map[string]interface{} {
res := make(map[string]interface{})
var OnlineData values.OnlineData
err := db.Redis().HGetAll("online:Total", &OnlineData)
if err != nil {
log.Error(err.Error())
}
res["Total"] = OnlineData
return res
}
func GetOnlineByGameId(gameId int) map[string]values.OnlineData {
data := make(map[string]values.OnlineData)
return data
}
func GetOnlineTotal() values.OnlineData {
var OnlineData values.OnlineData
err := db.Redis().HGetAll("online:Total", &OnlineData)
if err != nil {
log.Error(err.Error())
}
return OnlineData
}
func QueryOne(start, end *int64, channel *int, tableName string, table interface{}) error {
q := NewQ(start, end, nil, channel)
err := db.ES().QueryOne(tableName, q, table)
if err != nil {
return err
}
return nil
}