modify:平均游戏时长查询优化
This commit is contained in:
parent
08023bcdea
commit
bb8af52a6b
|
@ -45,7 +45,7 @@ func GetNewPayerIds(plt string, startTime, endTime string) ([]int, error) {
|
||||||
return ret, nil
|
return ret, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetPayerIds(plt string, startTime, endTime string) ([]int, error) {
|
func GetPayerIds(plt string, startTime, endTime string, gamefreeid int) ([]int, error) {
|
||||||
s, e := common.StrRFC3339TimeToTime(startTime), common.StrRFC3339TimeToTime(endTime)
|
s, e := common.StrRFC3339TimeToTime(startTime), common.StrRFC3339TimeToTime(endTime)
|
||||||
c, err := mymongo.GetLogCollection(plt, mongomodel.LogGamePlayerListLog)
|
c, err := mymongo.GetLogCollection(plt, mongomodel.LogGamePlayerListLog)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -54,7 +54,7 @@ func GetPayerIds(plt string, startTime, endTime string) ([]int, error) {
|
||||||
|
|
||||||
var res []struct{ Snid int }
|
var res []struct{ Snid int }
|
||||||
dd, err := c.Aggregate(context.TODO(), bson.A{
|
dd, err := c.Aggregate(context.TODO(), bson.A{
|
||||||
bson.M{"$match": bson.M{"time": bson.M{"$gte": s, "$lt": e}}},
|
bson.M{"$match": bson.M{"time": bson.M{"$gte": s, "$lt": e}, "gamefreeid": gamefreeid}},
|
||||||
bson.M{"$group": bson.M{"_id": "$snid", "snid": bson.M{"$first": "$snid"}}},
|
bson.M{"$group": bson.M{"_id": "$snid", "snid": bson.M{"$first": "$snid"}}},
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -36,7 +36,10 @@ func NewPlayerGameTime(plt string, ids []int, startTime, endTime string, gamefre
|
||||||
if gamefreeid > 0 {
|
if gamefreeid > 0 {
|
||||||
where["gamefreeid"] = gamefreeid
|
where["gamefreeid"] = gamefreeid
|
||||||
}
|
}
|
||||||
cur, err := c.Find(context.TODO(), where, options.Find().SetProjection(bson.M{"gamedetailedlogid": 1}))
|
cur, err := c.Aggregate(context.Background(), bson.A{
|
||||||
|
bson.M{"$match": where},
|
||||||
|
bson.M{"$group": bson.M{"_id": "$gamedetailedlogid", "gamedetailedlogid": bson.M{"$first": "$gamedetailedlogid"}}},
|
||||||
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Logger.Errorf("find player gamedetailedlogid get err: %v", err)
|
logger.Logger.Errorf("find player gamedetailedlogid get err: %v", err)
|
||||||
return 0, 0, err
|
return 0, 0, err
|
||||||
|
@ -108,7 +111,7 @@ func PlayerGameTimeAvg(plt string, startTime, endTime string, gamefreeid int) (i
|
||||||
if s.IsZero() || e.IsZero() {
|
if s.IsZero() || e.IsZero() {
|
||||||
return 0, 0, fmt.Errorf("time format error")
|
return 0, 0, fmt.Errorf("time format error")
|
||||||
}
|
}
|
||||||
ids, err := GetPayerIds(plt, startTime, endTime)
|
ids, err := GetPayerIds(plt, startTime, endTime, gamefreeid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, 0, err
|
return 0, 0, err
|
||||||
}
|
}
|
||||||
|
@ -123,12 +126,5 @@ func PlayerGameTimeAvg(plt string, startTime, endTime string, gamefreeid int) (i
|
||||||
return 0, 0, nil
|
return 0, 0, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
b, err := PlayingGameCount(plt, ids, startTime, endTime, gamefreeid)
|
return len(ids), a, err
|
||||||
if err != nil {
|
|
||||||
return 0, 0, err
|
|
||||||
}
|
|
||||||
if b == 0 {
|
|
||||||
return 0, 0, nil
|
|
||||||
}
|
|
||||||
return b, a, err
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue