package vidtotal import ( "91porn-server/common/timeutil/timerange" "91porn-server/models/s/statvidmod" "91porn-server/models/s/statvidtotalmod" "go.mongodb.org/mongo-driver/bson/primitive" ) type ObjectID = primitive.ObjectID type TimeRange = timerange.TimeRange type VideoTotalIncDoc = statvidtotalmod.IncDoc type VideoTotalIncDocMap = statvidtotalmod.IncDocMap type RecordAtGTEAndLTMatch = statvidmod.RecordAtGTEAndLTMatch func getVideoTotalIncDocMap(timeRange TimeRange) (VideoTotalIncDocMap, error) { recordAtGTEAndLTMatch := RecordAtGTEAndLTMatch{GTE: &timeRange.Head, LT: &timeRange.Tail} groupList, err := statvidmod.SumByRecordAt(recordAtGTEAndLTMatch) if err != nil { return nil, err } m := toVideoTotalIncDocMap(groupList) return m, nil } func toVideoTotalIncDocMap(groupList []statvidmod.SumGroup) VideoTotalIncDocMap { m := make(VideoTotalIncDocMap, len(groupList)) for _, v := range groupList { _, ok := m[v.Vid] if !ok { m[v.Vid] = &VideoTotalIncDoc{} } doc := m[v.Vid] doc.Income = v.Income doc.PayCount = v.PayCount doc.PlayCount = v.PlayCount doc.PayPlayCount = v.PayPlayCount doc.Tax = v.Tax } return m }