func GetTrainRecord(coll string, page, num int) *types.QueryResult { recordLock.RLock() data := processedRecord[coll] recordLock.RUnlock() next := -1 result := make([]types.TrainRecord, 1) record := types.TrainRecord{} record.Desc = data.Desc if 0 <= page*num && page*num < len(data.TimeStamp) { if (page+1)*num <= len(data.TimeStamp) { next = page + 1 record.TimeStamp = data.TimeStamp[page*num : (page+1)*num] } else { record.TimeStamp = data.TimeStamp[page*num:] } if (page+1)*num <= len(data.Speed) { record.Speed = data.Speed[page*num : (page+1)*num] } else { record.Speed = data.Speed[page*num:] } record.CurSpeed = data.CurSpeed record.HIRun = data.HIRun if (page+1)*num <= len(data.Distance) { record.Distance = data.Distance[page*num : (page+1)*num] } else { record.Distance = data.Distance[page*num:] } record.CurDistance = data.CurDistance record.DistWithSpeed = data.DistWithSpeed record.DistWithHR = data.DistWithHR if (page+1)*num <= len(data.HeartRate) { record.HeartRate = data.HeartRate[page*num : (page+1)*num] } else { record.HeartRate = data.HeartRate[page*num:] } record.CurHeartRate = data.CurHeartRate record.HeartRateElapse = data.HeartRateElapse record.HRWithSpeed = data.HRWithSpeed if (page+1)*num <= len(data.Position) { record.Position = data.Position[page*num : (page+1)*num] } else { record.Position = data.Position[page*num:] } } result[0] = record return &types.QueryResult{result, len(data.TimeStamp), page - 1, page, next} }