diff --git a/statistics/task/task/bankruptcy.go b/statistics/task/task/bankruptcy.go index b1d144a..74b1ea0 100644 --- a/statistics/task/task/bankruptcy.go +++ b/statistics/task/task/bankruptcy.go @@ -45,7 +45,7 @@ func GetNewPayerIds(plt string, startTime, endTime string) ([]int, error) { 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) c, err := mymongo.GetLogCollection(plt, mongomodel.LogGamePlayerListLog) if err != nil { @@ -54,7 +54,7 @@ func GetPayerIds(plt string, startTime, endTime string) ([]int, error) { var res []struct{ Snid int } 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"}}}, }) if err != nil { diff --git a/statistics/task/task/gametime.go b/statistics/task/task/gametime.go index cc73a3b..47b32fa 100644 --- a/statistics/task/task/gametime.go +++ b/statistics/task/task/gametime.go @@ -36,7 +36,10 @@ func NewPlayerGameTime(plt string, ids []int, startTime, endTime string, gamefre if gamefreeid > 0 { 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 { logger.Logger.Errorf("find player gamedetailedlogid get err: %v", err) return 0, 0, err @@ -108,7 +111,7 @@ func PlayerGameTimeAvg(plt string, startTime, endTime string, gamefreeid int) (i if s.IsZero() || e.IsZero() { return 0, 0, fmt.Errorf("time format error") } - ids, err := GetPayerIds(plt, startTime, endTime) + ids, err := GetPayerIds(plt, startTime, endTime, gamefreeid) if err != nil { return 0, 0, err } @@ -123,12 +126,5 @@ func PlayerGameTimeAvg(plt string, startTime, endTime string, gamefreeid int) (i return 0, 0, nil } - b, err := PlayingGameCount(plt, ids, startTime, endTime, gamefreeid) - if err != nil { - return 0, 0, err - } - if b == 0 { - return 0, 0, nil - } - return b, a, err + return len(ids), a, err }