func()

in experiments/client_traffic_ctrl_tasks.go [121:169]


func (e *ExperimentClient) GetTrafficControlTaskMetaData(env string, currentTimestamp int64) []model.TrafficControlTask {
	if currentTimestamp == 0 {
		currentTimestamp = time.Now().Unix()
	}

	traffics := make([]model.TrafficControlTask, 0)

	var data = make(map[string][]model.TrafficControlTask, 0)

	if env == common.Environment_Prepub_Desc {
		data = e.prepubSceneTrafficControlTaskData
	} else if env == common.Environment_Product_Desc {
		data = e.productSceneTrafficControlTaskData
	} else {
		return nil
	}

	for _, sceneTraffics := range data {
		for i, task := range sceneTraffics {
			if task.ExecutionTime != "Permanent" {
				startTime, _ := time.Parse(time.RFC3339, task.StartTime)
				endTime, _ := time.Parse(time.RFC3339, task.EndTime)

				if env == common.Environment_Product_Desc {
					if task.ProductStatus == common.TrafficCtrlTask_Running_Status && startTime.Unix() <= currentTimestamp && currentTimestamp < endTime.Unix() {
						traffics = append(traffics, sceneTraffics[i])
					}
				} else if env == common.Environment_Prepub_Desc {
					if task.PrepubStatus == common.TrafficCtrlTask_Running_Status && startTime.Unix() <= currentTimestamp && currentTimestamp < endTime.Unix() {
						traffics = append(traffics, sceneTraffics[i])
					}

				}
			} else {
				if env == common.Environment_Product_Desc {
					if task.ProductStatus == common.TrafficCtrlTask_Running_Status {
						traffics = append(traffics, sceneTraffics[i])
					}
				} else if env == common.Environment_Prepub_Desc {
					if task.PrepubStatus == common.TrafficCtrlTask_Running_Status {
						traffics = append(traffics, sceneTraffics[i])
					}
				}
			}

		}
	}
	return traffics
}