public function actionIndex()
 {
     $params = $this->getQuery();
     if (empty($params['startDate']) || empty($params['endDate']) || empty($params['campaignId'])) {
         throw new InvalidParameterException('missing params');
     }
     $params['startDate'] = new MongoDate(TimeUtil::ms2sTime($params['startDate']));
     $params['endDate'] = new MongoDate(TimeUtil::ms2sTime($params['endDate']) + 3600 * 24);
     $accountId = $this->getAccountId();
     $data = [];
     if (!empty($params['type'])) {
         if (!is_array($params['type'])) {
             $types = [$params['type']];
         } else {
             $types = $params['type'];
         }
     } else {
         $types = self::$types;
     }
     //to suport to get all campaign data
     if (MongoId::isValid($params['campaignId'])) {
         $params['campaignId'] = new MongoId($params['campaignId']);
         $data = PromotionCodeAnalysis::getAnalysisData($types, $accountId, $params);
     } else {
         $data = StatsPromotionCodeAnalysis::getAnalysisData($types, $accountId, $params);
     }
     return $data;
 }